Token graduation, step by step
Graduation is the moment a Vectr token stops trading on its bonding curve and starts trading on Uniswap V3, with its liquidity locked for good. This guide follows the assets: what triggers it, where the raise and the reserved supply go, and what changes for the creator and for traders. For the tests that prove each claim, see the graduation reference.
Updated
The line a curve has to cross
- Threshold, ETH pairs
- 4.2 ETHAbout $11,632 at today's ETH price; real ETH held by the curve, net of fees
- Threshold, Stock-Token pairs
- Per asset, in that assetSized to a similar USD raise; quoteAssets[].graduationThresholdAmount on GET /config
- Or: sell-out
- All 800M curve tokens soldWhichever comes first
- Who triggers it
- The buyer who crosses the lineNo keeper, multisig or admin action is involved
A fixed 1B supply is minted to the curve contract at launch: 800M is sold on the bonding curve and 200M is held back for the Uniswap liquidity position at graduation. No presale, no whitelist, no team allocation.
What happens inside that one transaction
- 1The crossing buySomeone buys, and the curve's real ETH balance reaches the threshold (4.2 ETH), or the last curve token sells. The graduation runs inside that same transaction; there is no keeper, no vote and no delay.
- 2The curve hands overThe curve sends the migrator everything it holds: the ETH raised and the tokens that are left, which are the 200M reserve plus any curve tokens unsold at the threshold.
- 3ETH becomes WETHUniswap V3 pools only hold ERC-20s, so native ETH is wrapped. A token paired with a Stock Token skips this step and pairs with the Stock Token directly.
- 4The pool is created and pricedThe migrator creates the token/WETH pool and initialises it at raised divided by tokens migrated, which lands within about 2% of the curve's last price. If someone pre-created the pool at a fake price, the migrator trades it back to the right one first, spending only its own balance.
- 5One full-range position is mintedAll of the raise and all of the migrated tokens go into a single position covering the whole price range, so there is liquidity at every price from the first block.
- 6The position is lockedThe position NFT is minted to VectrLPLocker, a contract that has no function to transfer, reduce or burn it. The only thing it can do is collect the pool's trading fees.
- 7The curve closesFrom this transaction on, buy and sell on the curve revert. The token's page and address do not change; trades route through Uniswap's router, priced by its quoter.
The two contracts that do it, on Robinhood Chain
- VectrUniswapMigrator
- 0x384EEd2Ba540146FB09E4EE228B454091913F837 Wraps, creates the pool, corrects a griefed price, mints the position
- VectrLPLocker
- 0xcf489e55a1167Cf883e0EE43D2354fdFc82b2B58 Holds every position. collect() only.
Before and after
- On the curve
- 0.97% per trade0.30% to the creator, the rest to Vectr; charged on buys and sells
- On Uniswap V3
- 1.00% pool feeAccrues to the locked position; swept to Vectr's platform wallets by collect()
- Creator fees after graduation
- Still claimableWhatever accrued on the curve stays in the FeeCollector until claimed
Graduation questions
What triggers graduation?
Either the curve's real ETH balance reaching 4.2 ETH (about $11,632 today), or the curve selling all 800M of its tokens. Stock-Token pairs have their own thresholds, sized to a similar USD raise and published per asset by GET /config.
Where does the raised money go?
Into the Uniswap V3 position, together with the reserved 200M tokens. It does not go to the creator and it does not go to Vectr. The creator's income is the 0.30% fee on curve trades, accrued separately in the FeeCollector.
What happens to the reserved 200M?
It sits in the curve contract during the sale, untouchable, and becomes the token side of the Uniswap position at graduation. Without it the pool would have ETH but almost no tokens to sell, and the first buyer would move the price enormously.
Can the liquidity be removed later?
No. The position is owned by VectrLPLocker, whose compiled ABI has no transferFrom, approve, decreaseLiquidity or burn. A test in the public contracts repository reads the ABI and fails if any of those appears. The only function that moves value is collect(), which pays accrued pool fees to Vectr's platform wallets and cannot touch principal.
What changes for traders after graduation?
The venue and the fee. Before: 0.97% per trade on the curve, 0.30% of it to the creator. After: Uniswap V3's 1.00% pool fee, which accrues to the locked position and is swept to Vectr's platform wallets; the creator's curve fees remain claimable. Price now moves by Uniswap's concentrated-liquidity math over a full-range position, and anyone can add more liquidity beside the locked one.
Does the token keep its address and page?
Yes. The ERC-20 contract is untouched by graduation; only its trading venue changes. The Vectr token page switches its quotes and trades to the pool automatically.