Skip to content
LogoLogo

Bonding curve

Every launch sells its first 800 million tokens on a bonding curve: a contract that is always ready to buy or sell at a price set by a formula. There is no order book and no liquidity provider. The price depends only on how many tokens have been sold.

The formula

The curve tracks how much ETH (or WETH) it holds, called the reserve, as a function of tokens sold:

R(s)=T⋅s4C−3sR(s) = \frac{T \cdot s}{4C - 3s}
SymbolMeaningValue
sstokens sold so far0 to 800,000,000
CCtokens on the curve800,000,000
TTgraduation target, the reserve when the curve sells out5 ETH

The spot price is how fast the reserve grows per token:

P(s)=dRds=4 C T(4C−3s)2P(s) = \frac{dR}{ds} = \frac{4 \, C \, T}{(4C - 3s)^2}
  • Starting price: P(0)=T4C=1.5625×10−9P(0) = \dfrac{T}{4C} = 1.5625 \times 10^{-9} ETH per token. That puts the full 1 billion supply at 1.5625 ETH.
  • Final price: P(C)=4TC=2.5×10−8P(C) = \dfrac{4T}{C} = 2.5 \times 10^{-8} ETH per token, 16 times the start. The full supply is then worth 25 ETH.
  • Reserve at the end: R(C)=T=5R(C) = T = 5 ETH exactly.

The final price equals the pool's opening price at graduation (TT divided by the 200 million pool tokens), so the price doesn't jump when trading moves to the pool.

Buying and selling

Buying Δ\Delta tokens adds the reserve difference, plus the 1% fee on top:

net=R(s+Δ)−R(s),you pay=net0.99\text{net} = R(s + \Delta) - R(s), \qquad \text{you pay} = \frac{\text{net}}{0.99}

The fee is 1% of what you pay. The net amount goes into the reserve; the fee goes to the market's fee escrow.

Buying with a budget solves the formula the other way. With R′=R(s)+0.99×budgetR' = R(s) + 0.99 \times \text{budget}, you end at

s′=4C⋅R′T+3R′s' = \frac{4C \cdot R'}{T + 3R'}

and receive s′−ss' - s tokens. If your budget is more than the rest of the curve costs, you buy what's left; the rest of your budget is refunded (ETH) or never taken (WETH).

Selling Δ\Delta tokens takes the reserve difference out and charges 1% of it:

gross=R(s)−R(s−Δ),you receive=0.99×gross\text{gross} = R(s) - R(s - \Delta), \qquad \text{you receive} = 0.99 \times \text{gross}

Because the reserve always equals R(s)R(s) for the current supply sold, every token bought on the curve can always be sold back to it until graduation.

Worked examples

All values use the 5 ETH target, before any launch-window tax.

Curve soldTokens soldReserveCost from zero (with fee)Spot price (ETH)Full supply value
0%00 ETH0 ETH1.5625 × 10⁻⁹1.56 ETH
10%80M0.1351 ETH0.1365 ETH1.8262 × 10⁻⁹1.83 ETH
25%200M0.3846 ETH0.3885 ETH2.3669 × 10⁻⁹2.37 ETH
50%400M1.0000 ETH1.0101 ETH4.0000 × 10⁻⁹4.00 ETH
75%600M2.1429 ETH2.1645 ETH8.1633 × 10⁻⁹8.16 ETH
90%720M3.4615 ETH3.4965 ETH1.4793 × 10⁻⁸14.79 ETH
100%800M5.0000 ETH5.0505 ETH2.5000 × 10⁻⁸25.00 ETH
  • The largest first buy (80 million tokens, 10% of the curve) costs about 0.1365 ETH.
  • 1 ETH spent on a fresh launch buys about 397.5 million tokens (39.7% of supply).
  • Selling 10 million tokens when the curve is half sold returns about 0.0390 ETH after the 0.000394 ETH fee.

Try it

Reserve in the curve1 ETH
Cost to buy from 0 to here (incl. 1% fee)1.0101 ETH
Spot price4.0000e-9 ETH per token
Fully diluted value (1B tokens × spot)4 ETH
Uses a 5 ETH target and ignores the launch-window tax and rounding. The contract's integer math is the source of truth.

Precision

The contract works in whole units (wei and the token's smallest unit) and rounds the reserve up, so rounding always favours the curve. The contract's integer math (MakinaQuoteMath.sol, exposed as quoteBuy and quoteSell on every launch) is the source of truth; the numbers on this page are rounded for reading.