Once curve-sale Token inventory reaches zero, the protocol transfers Reserved 2,000,000,000 Token + all actual curve BNB reserves into the PancakeSwap V2 Token/WBNB Pair, and deploy and initialize a separate Short Engine. Migration does not use virtual BNB, mix funds from other curves, or add lending inventory to the AMM.
1. Trigger and atomic execution order
| Order | Action | Result |
|---|---|---|
| 1 | Settle the final purchase, deliver Token, process tax, and refund | Sale inventory reaches zero; record Complete and post-curve state |
| 2 | Read this Token’s MarketGroup and reserved Engine | Do not use a subsequently selected default group or a different deployer |
| 3 | Enter Migrating; recheck Pair, venue, reserves, and balances | Reject invalid venues or Token contamination |
| 4 | Wrap all actual BNB reserves into WBNB | Verify BNB decrease and WBNB increase wei for wei |
| 5 | Transfer migration Token and the full WBNB amount to Pair | Verify actual receipts without precision truncation |
| 6 | Registry records migration reserves; the fixed deployer deploys the reserved Engine contract | Bind the Engine to its market, economic snapshot, and existing lending inventory |
| 7 | Verify Engine bindings and open external Token trading | externalTradingEnabled=true |
| 8 | Zero this curve’s actual BNB ledger and save migration results | Final state: Migrated |
2. Native BNB and WBNB: equal precision, separate balances
| Scenario | Asset / unit |
|---|---|
| Curve payments, Factory curve accounting, and Engine position settlement | BNB, 18-decimal wei |
| Pair reserves and Router inputs/outputs | WBNB, 18-decimal wei |
If this curve’s actual BNB reserves are Q, the amount wrapped and deposited as WBNB is:
Every wei enters the Pair. No migration dust arises from decimal conversion, and no such dust-claim ledger exists. BNB and WBNB balances are separate. Receiving BNB does not automatically increase WBNB. The Factory verifies balance changes before and after wrapping and Pair transfers.
3. Sellout example for the current group
Example D: buy all inventory once from the initial state, without Token tax or donations
Purchase all 8,000,000,000 Token using raw 18-decimal integer calculations:
| Item | Exact result |
|---|---|
| Net amount entering the curve | 15.998084815592369216 BNB |
| Token deposited into the Pair | 2,000,000,000 Token |
| WBNB deposited into the Pair | 15.998084815592369216 WBNB |
| Raw WBNB integer deposited into the Pair | 15998084815592369216 |
Curve endpoint, actual external reserves, and ideal anchor
| Metric | Result of this example | Purpose |
|---|---|---|
| Endpoint virtual BNB | 22.138084815592369216 BNB | Virtual curve reserves |
| Endpoint virtual Token | 3,070,367,520 Token | Virtual curve reserves |
| Curve-endpoint protocol market cap | 72.102393838482141108 BNB | Virtual-reserve ratio times fixed curve supply |
| Actual initial external-market WBNB | 15.998084815592369216 WBNB | Actual Pair reserves |
| Actual initial external-market Token | 2,000,000,000 Token | Actual Pair reserves |
| Actual initial protocol market cap | 79.990424077961846080 BNB | actualStartMarketCap |
| Fixed ideal migration BNB anchor | 15.998084815592369216 BNB | Group risk-model parameters |
| Fixed ideal migration market cap | 79.990424077961846080 BNB | Group risk/collateral model anchor |
Actual external reserves equal the ideal anchor here because this example starts clean, buys all inventory once, and has no donation. It does not force the same deposit on every graduation. Virtual curve reserves and actual external reserves are distinct; marginal prices need not be wei-continuous across migration.
4. Pre-created Pair, donations, and contamination checks
Key checks include:
- Both the Pair’s Token reserve and actual Token balance are zero.
- Recorded WBNB reserves do not exceed the actual WBNB balance.
- The Pair must be the Token/WBNB pair registered by the group’s venue Factory, with matching predicted address, asset order, and runtime code hash.
- The actual WBNB received in this transaction equals this curve’s migration amount.
- All minted LP is held by the zero address. Token reserves equal the migration allocation; WBNB reserves equal the actual pre-migration balance plus this deposit.
A failed check reverts the final purchase. Venue Factory/Router code hashes and relationships must still be verified; Engine is deployed using the deployer and address reserved at creation.
Let the actual WBNB balance in Pair before migration be :
The donation remains in the pool without refund to the donor or final buyer; it increases the actual initial price and actualStartMarketCap without changing the fixed ideal anchor or bypassing gradual TWAP confirmation.
Example E: the same graduation with an extra 1 WBNB donation retained
| Item | No donation | Extra 1 WBNB |
|---|---|---|
| Token reserves | 2,000,000,000 | 2,000,000,000 |
| WBNB reserve | 15.998084815592369216 | 16.998084815592369216 |
| Actual initial protocol market cap (BNB) | 79.990424077961846080 | 84.990424077961846080 |
| Fixed ideal market cap (BNB) | 79.990424077961846080 | 79.990424077961846080 |
This example does not imply unlimited donations are acceptable. Reserve integer ranges, LP rules, and execution limits still apply. Normal Pair operations may remove an unsynchronized donation before migration; the balance at execution determines the result.
BNB sent directly to Factory does not automatically increase a Token’s realNativeReserves; WBNB sent directly to Factory is not automatically this Token’s migration funding either. Keep curve accounting, Factory balance, and actual Pair balance separate.
5. LP and lending inventory
Returned liquidity must be positive, and total LP must exceed the returned amount to cover V2’s initial minimum-liquidity structure. The creator, protocol wallet, operators, and final buyer receive no migration LP.
“Locked/burned LP” here means held by the zero address and not redeemable by ordinary accounts. It does not mean the LP’s Total supply being zeroed, nor underlying Token being burned. It does not establish that no one can ever add external AMM liquidity later.
1,997,367,528 Token in lending inventory was already minted to the reserved Engine address. Migration only deploys and initializes Engine; it does not mint again or add this principal to Pair. Engine manages inventory using its separate ledger and actual balance.