Docs / Pons / Graduation

Graduation

When a curve accumulates enough quote, it graduates: liquidity migrates from the bonding curve into a Uniswap v4 pool managed by Pons's hook + pool manager.

The threshold

Observed on live curves: ~4.2 ETH in quote reserves. The exact value is read per-curve rather than hardcoded — check phase() and the threshold field on your token.

What changes

Before graduationAfter
buy/sell on the curve contractswaps through the v4 pool (Universal Router)
price from getReserves()price from pool state
phase() = 0phase() advances

The engine's sell paths handle both phases — curve sells pre-graduation, v4 swaps after. GET /api/state exposes pons.degraded which flags features running on approximations.

The quoter gap

Robinhood has no deployed V4Quoter contract — post-graduation sell quotes are approximations, and the app says so rather than pretending precision. Pre-graduation everything is exact; post-graduation set realistic slippage tolerance.

Strategy note

Graduation is a phase change for your bundle too: curve-level mechanics (reserves, snipe tax) stop applying, and the position management that mattered is pool liquidity and your share of it. The sniper table keeps working — it reads Transfer events, which exist on the token regardless of venue.