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
reserveis the net HYPE the curve holds. Fees are not part of it.soldis 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 price | 102.375 / 1,073,000,000 ≈ 0.0000000954 HYPE |
| Market cap at launch | ≈ 95.4 HYPE |
| Last price on the curve | 402.375 / 273,000,000 ≈ 0.000001474 HYPE |
| Pool opening price | 297 / 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.
- Fee: 1% of 1 HYPE = 0.01 HYPE.
- Net to the curve: 0.99 HYPE.
- 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.
- During the window. Every buy is escrowed. Your HYPE sits in the curve and no tokens move. Nobody can sell.
- The window closes. The first trade after it settles the batch automatically. Anyone can also call
settleBatch(). - 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.
- 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.
- Refunds. Refunds are sent during settlement. If a wallet rejects the transfer, the amount stays claimable with
claimRefund(). - After the batch. Trading is continuous on the curve.
| Time after launch | Buy | Sell | Price |
|---|---|---|---|
| 0 to 30 s | Escrowed | Closed | One clearing price, set at settlement |
| After 30 s | Filled at once | Open | Moves 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
