Launch
Graduation and LP locks
What happens in the transaction that sells the last curve token.
Trigger
The curve graduates the moment tokensSold == curveSupply — with the defaults, when 12,400 USDG has been raised. It happens inside the buy (or batch settlement) that crosses the line; the creator does nothing, and there is no separate migration step anyone could delay.
What the transaction does
- Sends the graduation fee (2% of the raise) to the treasury.
- Deposits the creator's chosen floor share (0–20%) into the floor reserve.
- Creates (or reuses) the token/USDG Uniswap V2 pair. If someone pre-created and skewed the pair, the curve first swaps against it to bring its price to the curve price — whoever seeded the pair pays for the mispricing — so a migration can't be blocked or mis-priced.
- Adds the remaining USDG and the reserved 200M tokens as liquidity.
- Burns the LP tokens (sent to
0x…dEaD) or locks them in the locker for the period the creator chose, with the creator as lock owner. The lock id is emitted inGraduatedand shown on the token page. - Burns any leftover tokens and sends leftover USDG to the floor reserve, so nothing stays in the curve except unclaimed batch fills.
Opening price on the DEX
The pool is seeded with raise − graduation fee − floor share USDG against 200M tokens. With the defaults and a 10% floor that is ≈ 10,900 USDG, an opening price of ≈ 0.0000546 USDG per token (about 10% under the curve's final price of ≈ 0.0000609, because the fee and floor come out of the pool). With no floor the pool opens within a fraction of a percent of the curve price.
After graduation
The app's trade panel switches to the Uniswap V2 pool (swapExactTokensForTokens through the router); the indexer follows the pair's Swap and Sync events so the chart, volume and holders keep updating. The curve contract stays only to serve claimBatch for anyone who has not collected a batch fill.