LibraryMarkets2021Design paperCorpus record
Automatic market-making with dynamic peg
Curve Cryptoswap. Michael Egorov.
Stableswap concentrates liquidity around a fixed price of one. This paper moves that concentration so it can follow a moving price between volatile assets. The pool reprices itself from its own trades. It does not know the outside world except through those trades.
Cryptoswap is stableswap with a moving peg. Liquidity concentrates around an internal price that the pool updates from its own imbalance. There is no external oracle inside the invariant. A dynamic fee widens when the pool is off balance. The paper does not promise a return to liquidity providers.
The five-minute read
The peg is a price, not one
Stableswap assumes assets should trade near 1. This paper repeats the idea around a vector of prices that can change, so volatile pairs can use a similar invariant.
The pool updates its own price
Trades move an internal price. The transformation is specified in the paper. An outside market is visible to the pool only when arbitrageurs trade.
Concentration without a range order
Liquidity providers do not set a tick range, as in Uniswap v3. The invariant concentrates liquidity near the current internal price, and the price creeps as the pool is used.
Fees are a function
The paper allows the fee to rise as the pool leaves balance. That is a protection for liquidity, not a quoted yield.
One action, walked through
- Liquidity is deposited against the invariant.
- A trader swaps. The balances move and the trader pays a fee that depends on how far the pool is from balance.
- The internal price updates from that imbalance, with the paper's dampening.
- Arbitrageurs who disagree with the internal price trade against it.
- A large trade can move the internal price before that arbitrage arrives.
The argument, unpacked
Self-reference is the risk
A price computed from the pool's own trades can be pushed by the trades. The paper is a curve design, not a claim that the resulting price is a safe oracle for liquidations.
Passive is not riskless
Liquidity providers do not manage a range. They still hold inventory of volatile assets, and they still lose to toxic flow. The invariant changes the shape of that loss. It does not repeal it.
What has to be true
- Parameters, including how fast the price moves, are the ones in the pool you are looking at. The PDF is a design. Deployments set numbers.
- The assets are the ones the invariant expects. A rebasing or fee-on-transfer token is outside the paper.
- Arbitrage is possible. A pool in a market with no arbitrageurs does not track anything.
- Later NG contracts may differ. Check the code if the question is a live pool.
What happened after the paper
Curve's volatile pools are the deployment of this idea. The 2021 PDF remains the design reading. Stableswap is the earlier paper for pegged assets. Uniswap v3 is the alternative where the liquidity provider, not the invariant, chooses the range.
What to check before you use the idea
- Does the quoted price come from an oracle or from the pool?
- How fast can a trade move the internal price?
- Who chooses the concentration, the LP or the invariant?
- Is a fee being presented as a yield? The paper does not.
Terms
- Dynamic peg
- An internal price the invariant concentrates around, updated from trading imbalance rather than fixed at one.
- Amplification
- The parameter that decides how tightly liquidity sits near the peg, inherited from the stableswap family.
The problem the paper names
A constant-product pool spreads liquidity across every price. A stableswap pool assumes the right price is one. Neither is a good fit for two assets whose fair price moves and whose liquidity providers will not constantly reset a range.
What the design proposes
- An invariant in the stableswap family, transformed so the peg is a price vector rather than one.
- That internal price moves when the pool is traded, with a dampening the paper specifies.
- Fees can widen when the pool is away from balance. The paper's name for the idea is a dynamic fee, not a promised return.
How the mechanism is specified
- Liquidity is concentrated near the pool's current internal price. Traders who push the price pay more as they leave that region.
- The internal price is an exponential moving function of trade imbalance in the paper's construction. It is not an oracle feed.
- No outside price is consulted by the invariant itself. Arbitrageurs are how the pool learns.
What this page does not treat as proven
- A self-referential price can be pushed. The paper's transformation is not a manipulation-proof oracle.
- The invariant does not pay liquidity providers a fixed rate. Fees depend on volume and on the parameters.
- Later 'NG' implementations can change parameters. The 2021 PDF is the design, not the current contract.
Why a venture studio still reads it
Compare it with Uniswap v3. There the liquidity provider chooses the range. Here the pool moves a peg by rule. Ask which price the rule follows, and what a large trade does to that price before arbitrage arrives.
This is Blockchain Lab's reading of a public design paper. It is not the paper, not a copy of it, and not an offer of tokens, equity, custody or a partnership. Later network behaviour can diverge from the text. Nothing here is investment, legal or technical advice.
Research status: Design paper. Last reviewed: 1 October 2026. This is a reading of a public paper, not investment, legal or security advice.
