Testnet
Graduation
Bull Launch is running on Arc Chain Testnet. Balances are test units with no value, and the stack may be redeployed.

Protocol

Graduation

When a curve fills, the hook locks its liquidity in the same pool; nothing migrates and the pool id never changes.

View as Markdown

A launch graduates once its main band has taken in its configured fill amount of the base asset. Progress toward that amount is what each coin's page tracks, and what progressBps reports on every CurveBuy and CurveSell.

Graduation threshold is per base asset, read from ConfigRegistry.baseCurve(base). On Arc Chain Testnet today: 8 USDC for a USDC-priced launch, 8,000 USDT for a USDT-priced launch. See Base assets and curves.

There is no migration step, and no second pool. A launch is a Uniswap v4 pool from the moment it is created, because the hook is part of its pool key. On the swap that crosses the fill target, the hook withdraws the main band whole inside afterSwap and redeploys the proceeds as a locked position held by the LP lock, LauncherLocker. The pool id never changes, so an integration that indexed the pool before graduation keeps working after it.

ParameterValue
Post-graduation poolThe same pool. Same pool id, same PoolManager, same hook.
Post-graduation pool fee tierDynamic fee flag 0x800000. The pool charges 0 and the hook takes the real fee, which is 0% (0 bps).
Liquidity lockPermanent. The tail band is locked at launch and the graduation position is locked on graduation, both held by LauncherLocker, which exposes no withdrawal function.
Migration delayNone. It happens inside the swap that crosses the target.

Graduation only confirms the threshold was reached. It is not a quality signal and does not guarantee future liquidity, price, or an exit.