Appearance
Graduation
Graduation is the moment a launch stops trading on its curve and becomes a Uniswap V4 pool. It happens when the curve has sold every token it was ever going to sell.
What gets seeded
At graduation the curve holds G ETH (the graduation target) and the reserved tokens R. The pool is opened at the curve's closing price (V + G) / R, so the ETH can only pair with
poolTokens = R · G / (V + G)tokens. The remainder, R · V / (V + G), is burned. With the default config that is 16% of supply in the pool and 4% burned. Nothing is left in a wallet that could later return to the market.
The position
The locker adds liquidity directly through the PoolManager as a single full-range position owned by HanokLiquidityLocker. The locker has no function that removes liquidity, collects it, or transfers the position. It is not a promise; the code path does not exist.
Pool key:
| Field | Value |
|---|---|
currency0 / currency1 | The token and ETH (address(0)), sorted by address; ETH is always currency0 |
fee | 0 — the hook charges Hanok's fees instead |
tickSpacing | From the launch config (60 by default) |
hooks | HanokHook |
Who triggers it
Normally the buy that sells the curve out. The curve calls HanokFactory.graduate inside that trade and swallows any failure so the trade itself never reverts. If it fails (typically gas), the curve emits GraduationDeferred and:
HanokFactory.graduate(token)can be called by anyone, andHanokRoutercalls it automatically before the next trade on that token.
Closing the curve and seeding the pool happen in one transaction, so a failed seed leaves the curve intact rather than half-drained.
If graduation cannot complete
If a launch sits sold out for 7 days without graduating, sells reopen on the curve. Trading simply resumes there until the curve sells out again. No privileged wallet can take custody of the reserves at any point.
After graduation
- The launch's phase becomes
Graduatedand itspoolIdis recorded on the factory. - Trading continues on Uniswap V4 at the same fee rates, charged by the hook.
- The token contract is unchanged: same address, same balances.