RamsesLaunchpad docs
Protocol

Bonding curve

Pricing math, the phantom reserve, graduation condition, and the opening snipe tax.

Each launch trades on its own BondingCurve contract — a constant-product curve with a phantom (virtual) quote reserve so the opening price is non-zero.

Pricing

Quotes use the pricing reserves:

x · y = k
x = realQuoteReserve + phantomQuote
y = tokenReserve

A buy of netIn quote (after fees) receives:

tokensOut = (y · netIn) / (x + netIn)

With the default config — supply 1,000,000,000 tokens, phantom reserve 1.68 ETH, graduation threshold 4.2 ETH — the phantom reserve sets the opening market cap, and the pool receives the collected 4.2 ETH at graduation.

Reserved tokens and graduation

A slice of supply is reserved for the graduated pool and can never be bought on the curve:

reservedTokens = supply · phantomQuote / (phantomQuote + graduationThreshold)

The curve graduates when sellableTokens() == 0 — that is, when everything except the reserved allocation has been bought. At that point realQuoteReserve equals the graduation threshold (in net terms), and the terminal buy sweeps the curve automatically.

The token page shows graduation progress from realQuoteReserve — the actual paired amount, never the phantom.

Trade fees

On every buy and sell:

  • Curve fee — 1% (feeBps = 100 on the default config).
  • Creator tax — 0–10%, set per-launch by the creator.
  • A buyer always nets at least 1% of their spend — fee, tax, and snipe tax combined can never take the whole trade.

The snipe tax

Buys in the first 3 seconds after launch pay an extra tax that starts at 99% and decays linearly to zero:

snipeTax(t) = 9900 bps · (1 − t / 3s)   for 0 ≤ t < 3s

The tax is keyed on the recipient of the tokens. The creator, the creator fee recipient, and up to 32 launch-listed wallets are exempt. Sells never pay it.

Safety properties

  • Sells always work. The emergency trading pause only blocks buys.
  • Slippage + deadline are enforced on-chain for every trade.
  • Terminal buys clamp, never overshoot — the buy that crosses the threshold fills to the edge and refunds the difference in-transaction.