Graduation
What happens when a curve fills: the pool, the locked liquidity and where the supply ends up.
When a token graduates
A token graduates when its bonding curve has collected 5 ETH. Nobody has to press a button or wait for a review: the buy that reaches the target graduates the token automatically, in that same transaction.
If that buy is larger than what the curve still needs, it fills only the remaining tokens and refunds the rest of your ETH in the same transaction. You never overpay for a curve that is already full.
- Graduation target (ETH collected)
- 5 ETH≈ $11.9K
- Market cap at graduation
- 25.69 ETH≈ $61.2K14.3× the starting market cap
What happens, step by step
Graduation is one sequence of contract calls. Either every step completes or none of them do.
- 1The curve closesThe curve stops trading. From now on it rejects buys and sells, and hands its ETH and remaining tokens over to build the pool.
- 2A Uniswap v4 pool is createdA new pool pairs native ETH with the token. It opens at the curve’s last price, so the price doesn’t jump when trading moves from the curve to the pool.
- 3Liquidity goes inThe curve’s 5 ETH and 194.64M tokens are added as a single full-range position. Full range means the pool can quote a price at any level, however far the price moves.
- 4The position is lockedThe liquidity position is owned by the liquidity locker, a contract with no way to withdraw it. The 70.07M tokens that don’t fit in the pool at that price stay in the locker as well, never sold.
Where the supply ends up
The full 1,000,000,000 supply is accounted for at graduation. Part of it was bought on the curve, part goes into the pool with the 5 ETH, and the rest stays in the locker so the pool opens at exactly the curve’s last price.
- 735.29M · 73.5%Bought on the curve
- 194.64M · 19.5%In the Uniswap pool with 5 ETH
- 70.07M · 7%Kept in the locker, never sold
The tokens kept in the locker are not a reserve for anyone. They exist only because the pool needs a specific ratio of ETH to tokens to open at the right price. No function can move them out.
Locked forever
- The locker has no withdraw function. It can add the liquidity once, at graduation, and nothing else. There is no owner who could take it out later.
- The pool refuses removals. Even if someone found another route, Gamapad’s hook contract rejects every attempt to remove liquidity from these pools.
- Locked, not burned. The position stays in the locker contract for good, where anyone can see it on the explorer. It keeps providing liquidity to traders forever.
After graduation
For holders, graduation is seamless. You don’t need to claim, migrate or swap anything.
- Same token. The token contract, its address and every balance stay exactly as they were.
- Same page. Trading carries on from the token page. The route in the trade panel changes from Bonding curve to Uniswap v4, and trades go through Gamapad’s router into the pool.
- Same fees. The standard fee and the token’s creator tax apply in the pool just as they did on the curve.
- The curve is done. It no longer accepts trades. Selling now happens in the pool, at the pool’s price.
A graduated token’s page shows a Pool details card with everything you need to look the pool up yourself:
- Pool ID, the identifier of the pool inside Uniswap v4
- The Uniswap v4 PoolManager contract that holds the pool
- Gamapad’s hook contract attached to the pool
- The graduation transaction
- The liquidity lock contract
- A link to view the pool on Uniswap, where available
If graduation doesn’t go through
Graduation normally finishes inside the buy that fills the curve. If the move to Uniswap can’t finish there, the buy still goes through and the token shows as Graduating.
- Your funds stay put. The ETH stays in the curve, and the tokens stay where they are.
- Anyone can finish it. The trade panel shows a Complete graduation button. Whoever presses it pays only the gas, and the token graduates in that transaction.
- Selling still works. A sell takes the curve back below its target, and the token returns to normal trading on the curve.
- Buying is paused. New buys wait until graduation completes, then continue in the pool.
How to verify it yourself
You don’t have to take our word for any of this. Everything above can be checked on-chain in a few minutes.
- 1Open Pool detailsOn a graduated token’s page, expand Pool details. Note the pool ID and open the graduation transaction.
- 2Read the transaction logsOn the block explorer, look at the logs of the graduation transaction. The PoolManager’s
Initializeevent carries the same pool ID. - 3Check the liquidityThe
ModifyLiquidityevent in the same transaction shows the ETH and tokens that went into the pool. The pool amounts on the card are read straight from the PoolManager on-chain. - 4Check the lockOpen the liquidity locker’s address on the explorer. Its code has no function that withdraws or transfers a position. The full list of addresses is on Contracts.