Σ TVL:√–|24H VOL:√–|CAPERS:–
Knowledge base
HomeCapersWiki homeEssays
How Caper worksFoundationsRaising & marketsGovernanceEditorial policyHelpGeneral referenceDAOsDAO governance & toolingDecentralized scienceEconomics
  1. Wiki
  2. /
  3. Raising & markets
  4. /
  5. Bonding curve

History
PreviousRaising fundsNextTrading
MANIFESTO · CAPER / OWN THE GAME
An organization that raises and deploys its own capital. A market that never closes. Governance that can't be captured.
TermsPrivacy
LAUNCHGOVERN

A bonding curve is a smart contract that sets a token's price as a mathematical function of its circulating supply: it mints new tokens when buyers arrive and burns them when holders sell, so a market is always open without an order book or a matching counterparty. Caper uses one as the permanent, built-in market for every caper's governance token. This page covers Caper's implementation first, then the wider idea it descends from.

Caper's curve

The curve is a perpetual AMM whose price is a smooth, monotonically increasing function of the fraction of supply in circulation. Price starts at zero with nothing sold and goes asymptotic as circulation approaches the full 100bn.

Buying moves XRD into the curve vault and tokens out of the inventory vault; selling reverses both. The cumulative XRD held by the curve has a closed-form integral, so sells price out exactly; buys solve for the new circulation numerically.

Since the full redeploy of 6 October 2026 on Stokenet, each caper's own state component checks the reserve after every buy and sell. It computes the XRD the curve should hold for the tokens in circulation and refuses any trade that leaves the vault below that figure (assert_reserve, contracts/core/src/caper_dao.rs), failing with the message listed on Why a transaction failed. A vampire caper is the one exception: a migration issues tokens against escrowed origin tokens rather than XRD, so the reserve may sit below the curve by the shortfall migrations created, never further. The state component cannot be swapped by a logic upgrade, so every holder's ability to sell back along the curve does not depend on the swappable trading logic pricing correctly.

Every trade in either direction also carries a skim, the only trade charge. It is paid 94.5% in XRD and 5.5% in tokens, to three recipients:

  • 94.5% of the rate is taken in XRD – on every XRD the curve takes from a buy, out of the payment before it funds the curve, or on every XRD it pays out to a sell, out of the payout. It splits 11:10: 49.5% of the skim to the traded caper's own treasury and 45% banked for the founder. Each trade reads one rate, a buy where it starts and a sell at the bottom it would reach if every token handed in retired, so a trade pays at least what the same trade cut into pieces would; the pieces approach the rate's integral along the curve, and since 30 September 2026 that integration is the trader's to do, a transaction per piece, rather than the contract's.
  • 5.5% is a slice of the tokens the trade moves – the mint on a buy, the tokens handed in on a sell – split 10:1: 5% of the skim to the founder and 0.5% to the Caper Commons, the protocol-wide treasury, denominated in $CAPER.

The live peak is 100%, so the XRD leg peaks at 94.5% of the curve XRD a trade moves and the token leg at 5.5% of the tokens it moves. The rate falls as circulation grows, peak × (2% × x + 98% × (1 − s) × x10) for x = 2−s/20%, with s the fraction sold: half the peak by 1.99% sold, 1% by 21.4%, and a halving every 20% of the supply after that. A sell's token leg changes hands rather than retiring, so a sell retires fewer tokens than the seller handed in, and the curve pays only for the ones it retires. Most of the skim arrives early: a caper that stops by 20% of its supply sold paid about 85% of its skim XRD on the first 10%. Vampire capers (bound to an origin token) earn this same per-trade slice; in addition, holders of the origin token can migrate into the caper — a free mint that draws from the inventory vault and advances circulation without an XRD buy, with the resulting reserve gap backfilled by a fee on later direct buys. See Trading for the buy/sell panel and Raising funds for how the proceeds are deployed.

The cap is an asymptote, not a target

Circulation is capped at 100bn tokens, and because the price divides by 1 − s, that cap is a limit the curve approaches rather than a supply it ever reaches. The contract enforces it in two places. The Newton solver that prices a buy clamps its search at s_max = 1 − 10−12 (CURVE_S_MAX, contracts/common/src/lib.rs), and the reserve integral clamps at the same point so that it stays finite on the boundary a full migration lands on as its ordinary starting state. The buy path then asserts that the new circulation is still at or below the cap and reverts with Curve Cap Exceeded if it is not.

Two figures follow from that integral at the protocol's K = 0.001 and a 100bn cap. Filling the curve to the clamp takes roughly 2.70bn XRD of reserve, and the spot price there is about 1bn XRD per token – some 707 billion times the price at half the supply sold. That steepness is a property of the shape rather than a policy choice: it is the same 1 − s denominator that makes the price asymptotic in the first place, and it is what the chart below draws as the gap between where the curve leaves the plot and the cap line.

Where the bound sits is a solvency question, not a rounding one, and it moved on 29 August 2026. A clamp does not merely bound the domain – it flattens the reserve integral above it, so every circulation past the bound returns one and the same reserve figure. A seller is paid the difference between that figure before their sale and after it, so a sell that begins and ends inside the flattened region succeeds and pays exactly zero: real tokens surrendered for nothing. The dead region is (1 − bound) × cap tokens wide. At the 0.999999 bound this curve used until 29 August it was 100,000 tokens wide – comfortably large enough for a real trade to fall inside – and at 1 − 10−12 it is 0.1 of a token, below anything anyone can trade. The new bound is set by where Decimal's eighteen places stop resolving 1 − √s, not by caution, and tightening it is what let the vampire migration ceiling be removed rather than kept as buy margin the arithmetic never needed.

How bonding curves work

More generally, a bonding-curve contract holds a reserve (or collateral) pool of a base asset — XRD on Radix, historically ETH on Ethereum — and issues its own token against it:

  • Buying / minting. A buyer deposits reserve assets; the contract mints new tokens, adds the deposit to the reserve, and the spot price rises because supply has increased.

  • Selling / burning. A seller returns tokens; the contract burns them, releases the corresponding reserve, and the spot price falls.

The result is what Yos Riady calls a continuous token: it has a deterministic price (set by the formula, not negotiation), a continuous price (token n+1 always costs more than token n), and instant liquidity (any amount can be bought or sold at any time). Deposited funds stay locked in the contract, so the token is always backed by collateral that can be reclaimed by burning — the same property that lets every caper holder cash out at any time.

The mathematics

Two quantities are easy to confuse. The bonding curve itself, P(S), gives the spot price of the next token at supply S. The reserve held by the contract — and therefore the cost of a finite purchase — is the area under that curve, its integral. As Slava Balasanov illustrates with a simple quadratic curve:

spot price:    P(S) = S²
reserve:       R(S) = ∫₀ˢ P(s) ds = ⅓ · S³
cost to mint:  ΔR = ⅓·(S + n)³ − ⅓·S³   (to add n new tokens)

Because a buyer pays the integral rather than the final spot price, a large order pays a progressively higher average price as it climbs the curve. Each curve therefore has a characteristic reserve ratio — the share of the token's notional market capitalisation actually held as collateral:

reserveRatio = reserveBalance / (price × supply)

A linear curve P(S) = m·S has a reserve ratio of ½; the quadratic curve above has ⅓. The Bancor protocol generalises this by holding the reserve ratio (its "connector weight") constant, giving the widely reused Bancor formula:

price          = reserveBalance / (supply × reserveRatio)

purchaseReturn = supply × ((1 + reserveAdded / reserveBalance) ^ reserveRatio − 1)

saleReturn     = reserveBalance × (1 − (1 − tokensSold / supply) ^ (1 / reserveRatio))

A reserve ratio between 0% and 100% tunes the curve's steepness: 100% gives a flat, fully-collateralised price (a stable peg), while smaller ratios produce steeper curves that reward early buyers more. Caper's curve, P(s) = K · √s / (1 − s) in the circulating fraction s, is a steep variant: the price is zero at genesis (so there is no sniper floor) and rises to a pole as the float approaches the full supply.

Curve shapes

The choice of function shapes a token's incentives. Common forms, catalogued by BonDeFi and others, include:

  • Linear — P = m·S + b. Constant-rate price growth; simple and predictable.

  • Polynomial / quadratic — e.g. P = S². Faster appreciation that rewards early participants.

  • Exponential — P = a·e^(b·S). Steep, speculative growth.

  • Sigmoid / logarithmic — S-shaped or flattening curves that model adoption slowing as supply matures, damping late-stage volatility.

A contract may also use separate buy and sell curves; the gap between them forms a bid–ask spread that can fund the protocol or reward long-term holders. Caper instead uses a single curve in both directions – the skim on either leg, not a curve spread, is what the protocol charges, at a rate that falls with circulation. That rate's peak is a field written into the logic component when the platform is instantiated rather than a constant compiled into it, so the app reads it off the gateway and fails loudly on drift – but nothing can rewrite it in place. The deployed CaperMain exposes no fee setter of any kind, so moving the rate takes a fresh logic component and a repointing of the registry's current_main – either a governed UPGRADE passed in the $CAPER caper or the operator backstop the protocol admin badge holds (propose_main, then activate_main), which is the route every swap so far has taken. Both run through the same internal step and the same timelock, whose length is fixed when the registry is instantiated and which no method can rewrite, so neither route can shorten it. 49.5% of the skim is deposited, in XRD, into the treasury of the caper being traded, so a curve funds its own DAO on every trade in either direction; there is no separate trade fee (Raising funds works it through).

Choosing a curve's exponents and constants is a parametrization problem in its own right — see Bonding Curves In Depth: Intuition & Parametrization and On Single Bonding Curves for Continuous Token Models for the design trade-offs.

History

The continuous-token idea entered crypto with the Bancor protocol (2017), whose "smart tokens" used a constant reserve ratio to stay continuously convertible into their reserve. Later that year Simon de la Rouviere published "Tokens 2.0: Curved Token Bonding in Curation Markets" (21 November 2017), framing curved bonding as the pricing engine for curation markets — markets that "reduce information asymmetry through the use of tokenized signals." He credits the Zap team with coining the term "bonding curves."

In 2018 Thibauld Favre introduced Continuous Organizations, using a Decentralized Autonomous Trust (DAT) and a bonding curve to mint and burn "FAIR" tokens that represent claims on an organisation's future cash flows — giving projects continuous fundraising and guaranteed liquidity instead of a one-off sale. Caper is a direct descendant of this model: an organisation whose token lives on a permanent curve. Around 2019–2020 the Commons Stack, with research firm BlockScience, generalised the design into the augmented bonding curve, which diverts a share of every purchase into a "common pool" to fund public goods — the same shape as the shares of Caper's skim that go to each caper's own treasury and to the Caper Commons. The underlying theory frames a bonding curve as an economic estimator of a token's value (Zargham, Paruch & Shorish).

Relationship to automated market makers

Bonding curves and automated market makers (AMMs) are close cousins. A single-reserve bonding curve is effectively a one-sided AMM that mints and burns the token itself, whereas a constant-function AMM such as Uniswap prices two pre-existing assets against each other along an invariant — the constant-product rule x · y = k. Bancor's price = reserveBalance / (supply × reserveRatio) is the bonding-curve generalisation of that idea.

A common claim is that bonding curves have "zero slippage." That is imprecise. Because a purchase pays the area under the curve between the old and new supply, a large order still pays a progressively higher average price — a price impact functionally like slippage, which is exactly why Caper's Trading guide notes that "slippage is implicit in the curve shape." The genuine distinction is that this impact is fully deterministic: it depends only on the trade size and the fixed curve, not on the fluctuating ratio of two pooled assets, and the curve can never run out of the token it mints. Liquidity is always available and its price impact is knowable in advance — but it is not literally free of price impact.

Applications

  • Automated market making. Continuous, reserve-backed pricing underpins Bancor's smart tokens and the broader family of on-chain AMMs.

  • Curation markets. Bonding curves let participants stake on the quality or relevance of information, rewarding early curators as a signal gains support (de la Rouviere).

  • Continuous organizations & DAOs. A curve becomes a permanent primary market for a governance or revenue token, replacing fixed sales with continuous fundraising and guaranteed exit liquidity — the pattern Caper is built on.

  • Public-goods funding. Augmented bonding curves route part of each buy into a common pool, turning token demand into a funding stream for open-source and charitable work.

  • Token launchpads. On Radix, BonDeFi uses a batched bonding curve to launch tokens fairly; on Solana, Pump.fun popularised the "fair launch," pricing a token up the curve as buyers arrive before migrating it to a DEX.

Which of these are still running

The designs above are usually described in the present tense. They are not equally alive. Every reading in this section was taken on 13 August 2026 and re-taken on 27 August and on 8, 14, 21 and 27 September 2026, keylessly, from each project's own repositories, forum and governance venue rather than from commentary about them. Between probes only freshness dates have moved, and the section below explains why a freshness date is the weakest of these readings.

Bancor smart tokensMaintained, on the reading that discriminates rather than the one below it. Neither contracts-solidity nor contracts-v3 is archived, and their freshness survives the test the next row fails: the head of master is 78c5736, the release commit 0.7.15, and the head of dev is 97d7905, "updated mainnet artifacts" — both landed by a maintainer on 29 July 2026, and both were still the head when re-read on 27 September 2026, with neither repository archived. Maintained is not the same as active.
Aragon FundraisingRetired. aragon/fundraising was archived on 8 March 2023, the same day as aragon-apps – the sunset of the Aragon client, not of Aragon, which still ships a DAO framework.
Continuous Organizations (DAT)Dormant since 2020, although the GitHub API reports the repository as fresh. See below.
Augmented bonding curveIts flagship deployment has been wound down and redeemed. Eleven voters closed it in August 2025.

The augmented bonding curve's flagship commons voted itself closed. The Token Engineering Commons – the commons the Commons Stack design was built for – resolved to end. "Proposal: Initiate the Sunsetting Process for the $TEC Token" ran on Snapshot from 30 July to 4 August 2025 and closed with 11 voters, 264,496.79 TEC for against 6,773.42 opposed. Queried through Snapshot's GraphQL hub, it is still the most recent of the space's 28 proposals. A full shutdown proposal followed in October 2025, describing the TEC as the first explicit economic commons on a blockchain and arguing for closing it deliberately rather than letting it drift, and the final implementation plan of 2 December 2025 set each holder's redemption at the lower of their balance on 23 July 2025, the day the wind-down was announced, or their balance at dissolution – so that neither buying in nor selling out after the announcement could change a claim. The organisation's GitHub carries the sequence in its repository names: TECsunsetcomingsoon, TECredeem and tec-shutdown, all created in the closing weeks of 2025. The front page of tecommons.org still reads as an open invitation to join, which is the ordinary condition of a wound-down DAO: the code and the governance record move on before the website does.

One repository reads fresh while being dormant, which is worth knowing before trusting any freshness check. Fairmint/c-org, the reference implementation of the Decentralized Autonomous Trust, reports archived: false and a pushed_at of 23 September 2026 through the GitHub API. Both readings mislead. The head of master is 781d1ed, dated 5 September 2023, and its commit message is "Update README.md"; the last commit that changed a contract is 0861378, "Fix/sell no lock", on 6 December 2020 – the 2.4.24 release five days later touched only package.json files. The repository carries 33 branches, 29 of them automated dependency bumps, and the freshest push was one of those bots force-pushing an ESLint major version to a branch nobody merged. pushed_at records a push to any branch, so on a repository with a dependency bot attached it is the bot's heartbeat rather than the project's; the reading that discriminates is the head commit of the default branch, and even that can be a README edit. Re-probing on 27 August 2026 made the point a second time rather than merely confirming it. When this page first read the repository the freshest push was 7 August 2026, and the next two re-probes each found a later one; on 14 September 2026 pushed_at still read 4 September, on 21 September it read 18 September, and on 27 September it read 23 September. The repository's own event stream attributes every one of them to renovate[bot] – 13, 21 and 25 August, 4 September, then 16, 18 and 23 September 2026 – landing on three unmerged dependency branches, renovate/major-eslint-monorepo, renovate/papaparse-5.x and renovate/prettier-3.x, none of which anyone has merged (33 branches, 29 of them the bot's). So the API's freshness figure has walked out of August and into September while 781d1ed has stayed exactly where it was in September 2023: the two readings are three years apart, and the gap widens whenever the bot next runs. A dormant repository does not read as dormant for a fortnight and then confess; it reads fresher every time its bot runs, which is why one reading of it can never settle the question and several can. The Vyper sibling, c-org-vyper, is archived outright. Fairmint itself is busy: its homepage now sells onchain cap tables built on the Open Cap Table Format, and its freshest repository on 27 September 2026 was ocp-canton-sdk, pushed two days earlier, while the last pushes to c-org-js, the NPM module for interacting with a continuous organization, and to c-org itself, both on 23 September, are the same bot on the same unmerged branches, c-org-js's master head being 6ed5ee2 of 10 December 2020 – and neither "bonding" nor "CAFE" appears on it, while "continuous" survives only as "Continuous settlement", a cap-table transfer feature. The model this page calls Caper's ancestor was left behind by the company that named it.

None of this makes the curve a weak primitive – Bancor's contracts are maintained, and new launchpads keep shipping on the same idea. It does mean that "X uses a bonding curve" is a claim with a date on it, and that the thing most likely to end a curve is not its mathematics but the organisation around it. Caper's own curve is described above; what is worth noting here is only where it sits. The curve and the skim are parameters of each caper's deployed contract rather than of a front end an operator can retire, and the sell side carries no pause, no owner gate and no schedule – see Trading and What is a caper.

Risks and criticisms

  • Front-running / MEV. Because price depends only on supply, an adversary who sees a pending buy can buy first and sell into it. Both Balasanov and Riady flag bonding curves as "susceptible to front-running attacks"; batched curves and ordering protections aim to mitigate it.

  • Reflexivity and volatility. Tying price to supply creates a feedback loop — buying raises the price, which attracts more buying. Steep curves amplify this into pump-and-dump dynamics where a rush to exit can collapse the price as fast as it rose.

  • Market cap is not collateral. Because the reserve is the area under the curve, a token's notional market capitalisation (price × supply) is typically several times the reserve backing it. Every holder can still redeem along the curve, but the headline "value" is reflexive and can evaporate under mass selling.

  • Parameter and composition risk. The wrong curve shape or reserve ratio can make a token too volatile or too illiquid, and deeply nested curves (a curve collateralised by another curved token) compound reserve ratios and magnify risk.

Further reading

  • Tokens 2.0: Curved Token Bonding in Curation Markets — Simon de la Rouviere
  • How to Make Bonding Curves for Continuous Token Models — Slava Balasanov
  • Bonding Curves Explained — Yos Riady
  • Bonding Curve component docs — Aragon Fundraising (repository archived 8 March 2023)
  • Introducing Continuous Organizations — Thibauld Favre
  • Deep Dive: Augmented Bonding Curves — Commons Stack / Giveth
  • Bonding Curves & Anti-Snipe — BonDeFi
  • Bonding Curves In Depth: Intuition & Parametrization — Relevant Community
  • On Single Bonding Curves for Continuous Token Models — thoughtchains
  • Economic Games as Estimators — Zargham, Paruch & Shorish (BlockScience)
  • The Standing Counterparty – why a curve is the market maker a specialist could never be

Caper’s bonding curve

Every caper’s token trades against its own bonding curve: the price is a formula of how much supply has sold, so there is always a live market and never a need for a counterparty. The reserve backs every token in circulation.

CAPER PROTOCOLThe bonding curvePRICE = f(SUPPLY)price P(s) = K · √s / (1 − s) s = supply sold / cap0%25%50%75%100%cap = 100bnBUY → price rises← SELL price fallssupply sold (% of cap)price / tokenA PRICE FORMULA, NOT AN ORDER BOOKBuy – send XRD; the curve mints new tokens and the price ticks up.Sell – return tokens; the curve pays XRD from its reserve and the price ticks down.Reserve – always covers the circulating supply – you never need a counterparty.Cap – as supply nears 100bn the price curves toward infinity.CURVE CONSTANT K0.001SUPPLY CAP100,000,000,000FIRST BUY PAYS2.06 × P(s)Every caper trades against its own bonding curve.caper.network
Price rises as supply sells; the reserve always covers the circulating supply.

What you actually pay

The curve sets the base price, and the skim takes a share of every trade for this caper’s treasury, the founder and the $CAPER treasury. On a buy it bites in two places – its $XRD part, 94.5% of the rate, on top of each $XRD the curve takes, and its token part, 5.5%, off the tokens the curve mints – and both shrink what you end up holding per $XRD spent. That share is front-loaded: 100% at the first buy, half that by 1.99% sold, 1% by 21.4%, and a halving every 20% of the supply from there on – never zero, and never settling. The markup on the price you pay starts near 106%, so the first buyers pay about 2.06 times the curve price; it is about 1.08% by 20% sold and 0.5% by 40%, and halves every 20% sold after that. There is no other trade charge. A sell pays the skim on the same schedule on the way out, taken off the payout the curve computes rather than off a payment. The skim’s value reads the other way: because price starts near zero, its take per token is near zero at launch, peaks near 1.49% sold, falls while the halvings outrun the price, and from about 62% sold climbs again as the price’s pole outruns them. Either way the price you pay only ever rises, so the earliest buy is always the cheapest.

CAPER PROTOCOLWhat you actually payEFFECTIVE PRICEwhat you pay = P(s) × ( 1 + 0.945c ) ÷ ( 1 − 0.055c )0%4%8%12%16%20%half the peakwhat you paycurve price P(s)the gap = the skimsupply sold (% of cap)price / tokenTHE SHARE PEAKS AT LAUNCH, THE TAKE A LITTLE LATERThe share peaks at launch100% of each trade at launch, half by 1.99% sold, 1% by 21.4%, and a halving every 20% of the supplyfrom there on, with no floor. 94.5% is paid in $XRD and 5.5% in tokens, about a 106% markup at thefirst buy; there is no other trade charge. Sells pay the same schedule on the way out.The take peaks laterPrice starts near zero, so a large share of nearly nothing is nearly nothing. Per token the takerises with the price until about 1.49% sold, falls while the halvings outrun it, and from about 62%sold climbs again as the price’s pole outruns them.Still cheapest earlyEither way your price only rises: the curve climbs faster than the skim falls, so the earliest buyis the cheapest.MARKUP AT LAUNCH+105.8%HALF THE PEAK BY1.99% soldHALVES EVERY20% soldSkim 100% at launch, 1% by 21.4% sold, halving every 20% after, on buys and sells alike.caper.network
The skim’s share is front-loaded and paid 94.5% in $XRD, 5.5% in the coin; its value peaks early, dips, then rises with the price. The price you pay rises throughout – earliest is cheapest.
TypePerpetual AMM (continuous token model)
PriceMonotonic in circulating fraction
Skim (buys and sells)Peak 100%, half by 1.99% sold, 1% by 21.4%, halving every 20% sold · 94.5% XRD, 5.5% tokens · 49.5% to this caper's treasury (XRD) · 50% to founder (45% XRD, 5% tokens) · 0.5% to Commons (tokens)
Coined2017 — Simon de la Rouviere / Zap, on Bancor
Also powersCuration markets · continuous organizations · AMMs
RelatedTrading, Raising funds