Skip to content
LogoLogo

Graduation

Graduation moves a token from its bonding curve to a Uniswap v4 pool. It happens automatically when the curve sells out, and the pool's liquidity is locked forever.

When it happens

The moment the 800,000,000th curve token is sold:

  1. The curve stops trading. Its reserve is exactly the 5 ETH target.
  2. In the same transaction as that last buy, the curve tries to seed the pool.
  3. If seeding succeeds, the token is graduated and trades only on the pool from then on.

The buyer who completes the curve only pays for the tokens that were left; anything above that is refunded (ETH) or never taken (WETH). The last buy needs enough gas for the migration. If it doesn't have enough, the whole buy reverts and nothing changes.

Loading diagram...

What goes into the pool

Amount
Tokensthe 200,000,000 kept at launch (20% of supply)
ETH or WETHthe full curve reserve, 5 ETH
Opening price5 ETH ÷ 200M tokens = 2.5 × 10⁻⁸ ETH per token

The opening price is the curve's final spot price, so the price is continuous across graduation. The pool is a full-range Uniswap v4 position in the same pair the launch used (ETH or WETH), with Makina's fee hook attached.

Locked liquidity

The pool position is held by a vault contract (MakinaV4Lock) that has no withdraw, transfer, upgrade or arbitrary-call function. The fee hook also rejects every attempt to remove liquidity. So:

  • the 200M tokens and 5 ETH can never be taken out by anyone, including Makina;
  • the liquidity can only grow: 20% of every pool fee is added back into the locked position (see Fees).

Anyone can trigger the fee collection and reinvestment. Reinvesting waits until the pool has had no swap for 10 minutes, so nobody can move the price just before a reinvest and profit from it.

Trading after graduation

  • The pool charges the same 1% fee as the curve, through Makina's hook. The pool's own Uniswap fee tier is zero.
  • Swaps must be exact-input and fully filled; partial fills revert.
  • You can trade through the Makina app, Makina's router, or any Uniswap v4 router that does exact-input full fills.
  • Only launches created by the Makina factory can register with the hook, so a copycat can't create an "official" Makina pool for a fake token.

If seeding fails: retry, then recovery

Seeding the pool is designed not to fail, but the contract plans for it anyway:

  • Retry. If the automatic attempt fails, the last buy still goes through and the curve sits in the Ready state. Anyone can call graduate() on the launch to try again, as many times as needed.
  • Recovery. If the token is still not graduated 7 days after the curve sold out, anyone can switch the launch into recovery. The 200M pool tokens are burned, and every holder can redeem their tokens for an equal share of the reserve: payout=reserve×your tokens800,000,000\text{payout} = \text{reserve} \times \dfrac{\text{your tokens}}{800{,}000{,}000}.

Recovery is final: the market never graduates after that.