Skip to content

Docs

The curve and Batch open

The bonding curve formula, a worked example, and why the first 30 seconds are one price for everyone.

The formula

Every token has its own curve, quoted in HYPE. It is a constant product over virtual reserves.

x = vH + reserve      HYPE side
y = vT − sold         token side
x · y = k = vH · vT
  • reserve is the net HYPE the curve holds. Fees are not part of it.
  • sold is the number of tokens the curve has sold and not bought back.
  • vT, the virtual token reserve, is 1,073,000,000 tokens.
  • vH, the virtual HYPE reserve, is derived from the other parameters.

Buying with dx net HYPE returns y · dx / (x + dx) tokens. Selling dy tokens returns x · dy / (y + dy) HYPE, before the 1% fee. The spot price is x / y HYPE per token.

Deriving the virtual reserve

The curve must sell exactly 800,000,000 tokens (S) for exactly the graduation amount (G). Starting from zero, selling S tokens for G HYPE means:

vT · G / (vH + G) = S
vH = G · (vT − S) / S

With G = 300 HYPE, vT = 1,073,000,000 and S = 800,000,000:

vH = 300 · 273,000,000 / 800,000,000 = 102.375 HYPE

On testnet G is 0.3 HYPE, so vH is 0.102375 HYPE. The shape of the curve is identical.

What the numbers look like

Mainnet
Start price102.375 / 1,073,000,000 ≈ 0.0000000954 HYPE
Market cap at launch≈ 95.4 HYPE
Last price on the curve402.375 / 273,000,000 ≈ 0.000001474 HYPE
Pool opening price297 / 200,000,000 ≈ 0.000001485 HYPE
Market cap at graduation≈ 1,485 HYPE

The last curve price and the pool opening price are within 1% of each other. Graduation does not create a price gap.

Worked example

You buy 1 HYPE of a token right after its batch settled empty.

  1. Fee: 1% of 1 HYPE = 0.01 HYPE.
  2. Net to the curve: 0.99 HYPE.
  3. Tokens out: 1,073,000,000 × 0.99 / (102.375 + 0.99) ≈ 10,276,786 tokens.

On testnet, 0.001 HYPE buys the same number of tokens.

The 1% fee is taken from the HYPE you pay on a buy and from the HYPE you receive on a sell. Rounding always favours the curve, so a buy followed by a sell never returns more than you paid.

Batch open

The first 30 seconds after a launch are a Batch open.

  1. During the window. Every buy is escrowed. Your HYPE sits in the curve and no tokens move. Nobody can sell.
  2. The window closes. The first trade after it settles the batch automatically. Anyone can also call settleBatch().
  3. Settlement. The curve adds up all deposits and runs them through the curve as one buy. Each buyer receives tokens in proportion to their deposit and pays HYPE in proportion to their deposit. Tokens per HYPE are identical for everyone. That ratio is the clearing price.
  4. Overshoot. If the batch alone would pass the graduation threshold, each deposit is filled pro-rata up to the threshold and the rest is refunded.
  5. Refunds. Refunds are sent during settlement. If a wallet rejects the transfer, the amount stays claimable with claimRefund().
  6. After the batch. Trading is continuous on the curve.
Time after launchBuySellPrice
0 to 30 sEscrowedClosedOne clearing price, set at settlement
After 30 sFilled at onceOpenMoves along the curve

Rules worth knowing:

  • A batch holds up to 250 wallets. More buys from a wallet already in the batch are added to its deposit.
  • The minimum-tokens setting does not apply inside the batch. The price is set at settlement.
  • A creator's first buy at launch lands in the batch like everyone else's.

Why the batch exists

Elysium produces a block about every 130 ms, and a single sequencer orders transactions by priority fee. Without a batch, the first block of a new token goes to whoever reaches the sequencer first or pays the highest priority fee. That is sniping, not price discovery.

Thirty seconds is long enough for people to see a launch and join. One clearing price means there is no reason to race. Every buy in the window pays the same price.

Questions? Ask on X → @AnemosPad