Project launches
Graduation and the locked pool
What happens when a curve reaches its target: the pool it seeds, the liquidity nobody can withdraw, and what is burned.
Status#
Graduation targets#
A launch picks its target from GraduationLadder at creation. Lower rungs are open to every creator; higher rungs need a creator tier read from CreatorRegistry. The target is permanent for the launch.
| Target | Lowest creator tier |
|---|---|
| 2 · 4 · 6 · 8 · 10 ETH | Any |
| 25 ETH | Gold |
| 50 ETH | Platinum |
| 100 ETH | Diamond |
Every target is non-zero and even. A gated rung refuses a creator with no tier answer or a stale one. The owner may replace the ladder; existing launches keep the target they took.
What graduate() does#
BondingCurve.graduate() is permissionless and open for 3 days after the curve completes. In one transaction:
| # | Step | On failure |
|---|---|---|
| 1 | Tokens donated to the curve are burned; transfers unlock | Reverts |
| 2 | The raise and 250,000,000 + unsold curve tokens go to the adapter, sized from the curve’s storage, never its balance | Reverts |
| 3 | A LaunchLiquidityLocker clone is created for the launch | Reverts |
| 4 | The locker is registered on TradeFeeSplitter with the post-graduation shares | Reverts |
| 5 | The KOL roster is copied to the locker on KolSplitter | Reverts |
| 6 | The referrer is copied to the locker on ReferralLedger | Logged (ReferralNotCarried), graduation continues |
| 7 | The pool opens at the curve’s closing price and the position is minted to the locker | Reverts |
| 8 | Leftover tokens are burned | Reverts |
| 9 | The creator’s graduation spins are recorded: one per 2 ETH of raise (production) | Logged (GraduationSpinsNotRecorded), graduation stands |
The pool#
| Property | Value |
|---|---|
| Venue | Uniswap V4, no hook |
| Pair | The raise currency (ETH or the listed ERC-20) as currency0, the launch token |
| Pool fee | 1% (production), or a fallback tier one pip above — see below |
| Tick spacing | 60 |
| Range | Full range: never out of range, earns on every trade through every router |
| Opening price | The curve’s completion price, T / 250,000,000 |
| Which fee tier was used | V4GraduationAdapter.poolFeeOf(token) |
The locker: no withdraw#
| Question | Answer |
|---|---|
| Can the liquidity be withdrawn? | No. There is no withdraw, no position transfer, no owner and no rescue — not a timelock, an absent code path. |
| What can anyone call? | collectFees(), which collects fees with a zero liquidity change |
| Token side of the fees | Burned in full |
| Currency side of the fees | Sent in full to TradeFeeSplitter — see Creator fees |
| If forwarding fails | The collection reverts and the fees stay in the position |
What is burned#
Every burn calls burn() and re-reads totalSupply(), reverting with BurnDidNotReduceSupply unless supply fell by exactly the amount. Nothing is ever sent to a dead address.
| Site | What |
|---|---|
| Curve, at graduation | Tokens anyone sent to the curve beyond its accounting |
| Adapter, at graduation | Tokens left over after the full-range mint |
| Locker, on every collection | The token side of the pool’s fees |
| Milestone reserve | What remains after the last row, by the permissionless burnRemainder() |
| Quest allocation | Burned once the curve has graduated (or its refund hatch opened) if the token qualifies for no quest route — QuestFundingGate.settleLaunchAllocation |
A squatted pool and fallback tiers#
A pool key is public before graduation, so anyone can initialise the pool at a wrong price. The adapter swaps a squatted pool back to the target price inside the graduation. When it cannot:
| Rule | Value |
|---|---|
| Tiers scanned | 10: lpFee, lpFee + 1, … one pip apart, each a distinct pool |
| Chosen | The first tier that can be opened at the target price |
| A failed tier | Rolls back completely; at most 1,000,000 gas each |
| All ten blocked | AllFeeTiersBlocked; nothing persists and anyone may retry |
| Currency freed by a correction | Minted as a single-sided support position owned by the locker, never forwarded as fee |
If graduation never succeeds within 3 days, holders redeem from the curve — see the refund hatch.