Graduation
PumpSwap migration, locked LP, and LP revenue harvesting.
PumpSwap (pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA) is the only V1 graduation venue. When the last curve token is bought, the launch enters GRADUATING and curve trading stops. Anyone can then send prepare_graduation + graduate:
- The curve's real SOL moves to the launch's
GraduationVaultPDA; the configured graduation fee goes to the treasury. quoteIn = rS − fee − rentReserveandbaseIn = min(vaultTokens, floor(quoteIn · vT / vS))— so the pool opens at the curve's final spot price. Tokens beyondbaseInare burned.- The vault wraps
quoteInto WSOL and CPIs PumpSwapcreate_pool, signed by the GraduationVault PDA. LP tokens land in the PDA's account. - The program records the pool, LP mint, LP amount and the pool's
√k / lpSupplyreference; status becomesGRADUATED.
Non-canonical pool
The pool's creator is SWEEP's GraduationVault PDA rather than Pump's pool authority, so it is a non-canonical PumpSwap pool. PumpSwap coin-creator fees do not apply; the program passes coin_creator = default.
LP revenue harvesting
PumpSwap LP fees stay in the pool and raise √(base · quote) / lpSupply. Swaps can only increase that ratio, which makes it a manipulation-resistant measure of fee revenue. harvest_lp_revenue (permissionless, at most once per the launch's harvest interval, never shorter than one hour) withdraws exactly the LP fraction (R − R₀) / R that represents revenue since the last harvest, leaving the principal untouched. The SOL side is split — the launch's LP revenue share goes to the Sweep Vault, the rest to the treasury — and the token side is burned. There is no instruction that withdraws principal LP. If PumpSwap changes would make harvesting unsafe (for example non-zero virtual quote reserves), the instruction refuses and liquidity stays locked.