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.
The shape
Section titled “The shape”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 = kprice ≈ (V + R) / tokens_remainingTwo 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_CELLSinpackages/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 = 100inpackages/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_VALUESinpackages/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.
Candle’s matrix curves and Hood
Section titled “Candle’s matrix curves and Hood”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.
Worked example (preset, ignoring fees)
Section titled “Worked example (preset, ignoring fees)”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
Section titled “pump.fun’s curve”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.
What this page does not say
Section titled “What this page does not say”Nothing here says any curve, token or price will hold or gain value. Read the Risk Disclosure Statement.