Platform › Project launches › Graduation and the locked pool

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.

Version
1.0
Updated
2026-10-14
Source
Launchpad contract sources · Launchpad contracts — design reference, parts 1 and 2

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.

Production ladder (ETH; an ERC-20 launch converts the rung into its currency)
TargetLowest creator tier
2 · 4 · 6 · 8 · 10 ETHAny
25 ETHGold
50 ETHPlatinum
100 ETHDiamond

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:

One graduation, in order
#StepOn failure
1Tokens donated to the curve are burned; transfers unlockReverts
2The raise and 250,000,000 + unsold curve tokens go to the adapter, sized from the curve’s storage, never its balanceReverts
3A LaunchLiquidityLocker clone is created for the launchReverts
4The locker is registered on TradeFeeSplitter with the post-graduation sharesReverts
5The KOL roster is copied to the locker on KolSplitterReverts
6The referrer is copied to the locker on ReferralLedgerLogged (ReferralNotCarried), graduation continues
7The pool opens at the curve’s closing price and the position is minted to the lockerReverts
8Leftover tokens are burnedReverts
9The creator’s graduation spins are recorded: one per 2 ETH of raise (production)Logged (GraduationSpinsNotRecorded), graduation stands

The pool#

The graduated pool
PropertyValue
VenueUniswap V4, no hook
PairThe raise currency (ETH or the listed ERC-20) as currency0, the launch token
Pool fee1% (production), or a fallback tier one pip above — see below
Tick spacing60
RangeFull range: never out of range, earns on every trade through every router
Opening priceThe curve’s completion price, T / 250,000,000
Which fee tier was usedV4GraduationAdapter.poolFeeOf(token)

The locker: no withdraw#

LaunchLiquidityLocker
QuestionAnswer
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 feesBurned in full
Currency side of the feesSent in full to TradeFeeSplitter — see Creator fees
If forwarding failsThe 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.

Where launch tokens are burned
SiteWhat
Curve, at graduationTokens anyone sent to the curve beyond its accounting
Adapter, at graduationTokens left over after the full-range mint
Locker, on every collectionThe token side of the pool’s fees
Milestone reserveWhat remains after the last row, by the permissionless burnRemainder()
Quest allocationBurned 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:

Fallback fee tiers
RuleValue
Tiers scanned10: lpFee, lpFee + 1, … one pip apart, each a distinct pool
ChosenThe first tier that can be opened at the target price
A failed tierRolls back completely; at most 1,000,000 gas each
All ten blockedAllFeeTiersBlocked; nothing persists and anyone may retry
Currency freed by a correctionMinted 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.