> ## Documentation Index
> Fetch the complete documentation index at: https://docs.inkyswap.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bonding to Uniswap V4

> What happens when a V2 token raises its target and bonds to a Uniswap V4 pool.

When a V2 token raises its target ETH, the curve closes and the remaining liquidity migrates to a Uniswap V4 pool with the InkyPump V2 hook attached. This is the bond event. It happens atomically in the transaction that pushes the cumulative raise over the target.

## What gets created at bonding

The contract creates one new Uniswap V4 pool:

| Field        | Value                                                                |
| ------------ | -------------------------------------------------------------------- |
| Token A      | The launched token                                                   |
| Token B      | WETH (`0x4200000000000000000000000000000000000006`)                  |
| Fee          | 0.1 percent (1000 in V4 fee units)                                   |
| Tick spacing | 60                                                                   |
| Hook         | The InkyPump V2 hook at `0x4cC8F6d5B7cE150CCC0A9B7664532B1283b96AC4` |

The pool is seeded with two things at creation:

1. All ETH raised through the curve, paired with
2. The liquidity supply of tokens computed by `SaleSplitCalculator` at launch

The pool opens at a price chosen so it matches the marginal price at the end of the curve. There is no price jump at the bond.

## What happens to the curve

After bonding, the curve contract stops accepting buys and sells. Any `buy` or `sell` call against the launch reverts. Trading moves entirely to the V4 pool.

The launch state stays readable. You can still call `getLaunchState(launchId)` and read everything about the curve.

## What changes for traders

Before bonding, traders called `buy` or `sell` on the InkyPump V2 hook with a launch ID.

After bonding, traders swap against the V4 pool through the Uniswap Universal Router at `0x551134e92e537cEAa217c2ef63210Af3CE96a065`. The InkyPump UI handles this switch automatically. From a user perspective the trade page looks the same and the buttons still say "Buy" and "Sell".

Fees also change. Before bonding it was 2 percent total. After bonding it is 0.1 percent on the V4 pool.

## What changes for the creator

The variable fee split still applies, but now it routes through the V4 hook on every swap instead of through the curve. The creator continues to earn from trades. The split is still controlled by `creatorFeeSplitBps`.

The buyback portion still flows to a buyback that buys and burns the token from the pool.

Withdrawal is still done with `withdrawFees()` on the hook.

## How to tell if a token has bonded

Three signals:

1. Call `getLaunchState(launchId)` on the hook. The returned struct has a flag indicating whether the launch is finalized.
2. Listen for the `LaunchFinalized` event. It is emitted in the same transaction as the bond.
3. In the UI, the bonding curve card on the trade page shows "BONDED" instead of a live progress percentage, and the chart switches from the curve to the V4 pool price.

## Why a 0.1 percent fee

V4 pools use parts per million for fees. 1000 corresponds to 0.1 percent. The choice is low enough to keep swaps cheap and high enough to feed the buyback and creator revenue after bonding.
