Skip to content

Graduation & the locked LP ​

The threshold ​

A launch graduates when its curve has raised 15,876 PONS net (≈ 4.2 ETH at calibration). There is no separate "migration event" to wait for: the buy that crosses the threshold performs the migration inside the same transaction.

What migrates ​

  • A Uniswap v4 pool (1% fee, BondHook attached) is initialized at exactly the curve's final price — no gap, no repricing window to snipe.
  • All remaining tokens and all PONS backing — buyer reserves plus any converted collateral — move in.
  • Liquidity is minted as a full-range position owned by the LPLocker.
  • Anything full-range math can't absorb is donated into the pool in the same breath, so nothing is ever left stranded outside it.

Locked means locked ​

The LPLocker is the sole owner of every launch's LP position, and the contract does not contain a withdraw or decrease-liquidity function. Not "renounced", not "timelocked" — the code path doesn't exist. The only thing the locker can do with a position is collect its trading fees and forward them to the FeeSplitter.

Where converted collateral lands ​

  • Converted before graduation → the collateral is earmarked on the curve (injectedPons), doesn't touch pricing, and rides the migration into the pool.
  • Converted after graduation → it is donated directly into the locked LP. Donations to a position that can never be withdrawn are, effectively, value locked into the pool forever.
  • If a conversion fires mid-swap (the common case), the donation is queued for a beat and landed by the next caller of executeInjection — the app does this automatically, and the caller earns a 0.1% keeper tip.

We don't police hidden wallets — we lock LP and we lock a bond.