Skip to content

Bonding-curve maths

How a bonding curve turns money into tokens, for Candle’s curves and for pump.fun’s. This page explains mechanics. It is not a prediction of any price and not advice. For the exact terms of each Candle configuration, see Bonding Curve.


A bonding curve is a program that holds a token inventory and a quote-asset reserve (SOL, USDC, CNDL, ETH or USDG) and quotes every trade from a formula. There are no resting orders and no counterparty: a buy adds quote to the reserve and removes tokens from the inventory, a sell does the reverse. The price rises as the reserve grows.

Candle’s Solana experimental curves: constant product with a virtual quote

Section titled “Candle’s Solana experimental curves: constant product with a virtual quote”

An experimental curve is one constant-product curve with a virtual quote reserve V. Reading the quote side as V + R, where R is the real quote reserve, and the token side as the tokens still on the curve, their product stays fixed:

(V + R) × tokens_remaining = k
price ≈ (V + R) / tokens_remaining

Two consequences follow from that shape:

  • V is the dial. A larger V starts at a higher price and climbs more slowly. The presets use V of 4, 6 and 8 SOL, each raising 5 SOL (EXP_CURVE_CELLS in packages/shared/src/constants/curve.ts).
  • The fee comes first. The experimental curve’s base fee is 1% on each buy and sell (EXP_CURVE_BASE_FEE_BPS = 100 in packages/shared/src/constants/exp-curve.ts). A launch may add an extra creator fee of 1% or 2%, making the total curve fee 2% or 3% (EXP_EXTRA_FEE_BPS_VALUES in packages/shared/src/constants/exp-creator-fee.ts; see Fees). The reserve accrues net of the total fee, so reaching the raise target takes more than the target in buyer input.

On chain the curve program stores this as two price segments of equal liquidity, so the pool created at graduation continues the same curve with no price step.

The launch-matrix curves (for example the 190 SOL and 80 SOL Solana curves) are fixed configurations whose figures are in Bonding Curve. Hood curves are a two-segment sqrt-price curve, not constant product: the two values getReserves() returns are not x and y, and multiplying them does not give a Candle price.

Take the 4 SOL preset (V = 4, raise G = 5). The quote side V + R runs from 4 at the first buy to 9 at graduation, a factor of 2.25, and the token side falls as tokens are sold, so the price rises by more than 2.25 times. For the 8 SOL preset the quote side runs from 8 to 13, a factor of 1.625, so the price climbs less: that is what “a larger V climbs more slowly” means. Real fills differ by the total curve fee (1% base plus any optional creator extra) and integer rounding.

pump.fun’s curve is also a virtual-reserve constant-product curve. The program is published at pump-fun/pump-public-docs. Candle’s own read of 1,154 live pump.fun curves (Candle’s data team, 2026-10) found:

  • graduation is the point where the curve’s real token reserve reaches zero;
  • on every one of those curves, the virtual token reserve minus the real token reserve was 279.9 million tokens;
  • 75% of them used the standard constants (about 793.1 million tokens sold, graduation near a 411 SOL market cap); the other 25% used other constants.

These are measurements of live curves on that date, not a pump.fun guarantee. pump.fun can change its constants.


Nothing here says any curve, token or price will hold or gain value. Read the Risk Disclosure Statement.