Concentrated liquidity: Uniswap v3 ticks, Solana CLMMs, and DLMM bins
1. TL;DR
Section titled “1. TL;DR”Concentrated liquidity lets a liquidity provider back only a chosen price range, so the same constant-product curve is served with far less capital—Uniswap claimed up to 4,000× the capital efficiency of v2 for a 0.10% range at launch (as of 2021-03). The pool tracks two numbers, liquidity and , and treats each position as a translated curve that is solvent exactly inside its range; positions are non-fungible and fees no longer compound. Orca Whirlpools and Raydium CLMM port the tick design to Solana, while Meteora’s DLMM replaces continuous ticks with discrete constant-sum bins and volatility-based fees.
2. Explain it simply
Section titled “2. Explain it simply”Analogy
Section titled “Analogy”A full-range pool is like a fruit seller who keeps some stock at every conceivable price from one cent to a million dollars; almost all of that stock never sells. A concentrated position is a seller who says “I’ll only trade apples between $1 and $2” and stocks accordingly. While apples trade in that band she does the same business as the all-price seller with a fraction of the inventory, and earns the same fees per apple sold; if the price leaves the band she is left holding only cash (above $2) or only apples (below $1) until it comes back or she re-stocks.
Imagine a swap box that only agrees to trade while the price is between two lines you draw. Inside the lines it behaves exactly like the ordinary box, but because it never has to cover prices far away, it can look like a much bigger box with much less money in it. That means people who trade with it get better prices and you earn more fees per dollar you put in. The catch is that if the price walks outside your lines, your box stops trading and you are left holding only one of the two coins until the price returns or you move your lines.
Step-by-step walkthrough
Section titled “Step-by-step walkthrough”Scenario (from Uniswap’s launch post, numbers verified below): ETH/DAI, price 1,500 DAI per ETH. Alice deposits $1m across the full range; Bob deposits only in the range 1,000–2,250.
- Before: Alice: 500,000 DAI + 333.33 ETH, liquidity . Bob wants the same .
- Bob’s deposit: with and range he needs ETH and DAI, worth $183,503—5.45× less capital than Alice for identical fee income while the price stays in range.
- Price rises to 2,000: traders buy ETH from the pool. Bob’s position becomes ETH, DAI (value $202,121). Alice’s becomes 288.7 ETH + 577,350 DAI (value $1,154,700).
- Compare to holding: Bob’s original tokens would be worth : his impermanent loss is −5.59%. Alice’s would be $1,166,667: her loss is −1.02%. Bob concentrated 5.45× and lost about 5.5× more per dollar.
- Price hits 2,250: Bob holds 0 ETH and 204,124 DAI; his position is out of range and earns nothing until the price falls back below 2,250 or he opens a new range.
Common misconceptions
Section titled “Common misconceptions”- Myth: concentrated liquidity changes the pricing curve. Reality: inside a tick range the pool “acts like an pool” on virtual reserves (whitepaper §6.2.3); concentration changes how much real capital backs that curve, not its shape.
- Myth: higher capital efficiency is free yield. Reality: the same leverage applies to impermanent loss and to loss-versus-rebalancing; Uniswap’s own post says narrower ranges mean “taking on more price risk.”
- Myth: a narrow position is a limit order. Reality: a range order fills gradually along a curve at the geometric mean of its bounds and “when the position has been crossed, it needs to be withdrawn” or it will trade back (whitepaper §2.1).
- Myth: v3 liquidity tokens are ERC-20s like v2. Reality: positions are non-fungible and fees are held as separate token balances rather than reinvested (whitepaper §3.2).
If you only remember one thing
Section titled “If you only remember one thing”A concentrated position is a constant-product pool with borrowed virtual reserves: it multiplies both your fee income and your exposure to price moves by the same factor, and stops working when the price leaves your range.
3. How it works
Section titled “3. How it works”Virtual and real reserves
Section titled “Virtual and real reserves”Uniswap v3 keeps the constant-product curve but lets a position cover only . Within that range the position behaves like a constant-product pool with virtual reserves and liquidity ; its real reserves lie on the translated curve (whitepaper eq. 2.2)
A position “only needs to hold enough of asset X to cover price movement to its upper bound” and enough Y to cover movement to its lower bound. With , the virtual reserves are and (eq. 6.5–6.6), so the real holdings of a position while in range are
$$x_{\text{real}} = L\Big(\frac{1}{\sqrt{P}} - \frac{1}{\sqrt{p_b}}\Big), \qquad y_{\text{real}} = L\big(\sqrt{P} - \sqrt{p_a}\big).$$
Below the position is entirely X, ; above it is entirely Y, , and it earns no fees while inactive.
Capital efficiency
Section titled “Capital efficiency”A full-range position with the same holds value ; the ranged position holds . The efficiency ratio is therefore
For , this is 5.45×; for a symmetric range 0.10% wide it is about 4,000×, the launch figure, and the factory can support 0.02% ranges for a theoretical 20,000× (Uniswap Labs, 2021-03). Uniswap’s stablecoin illustration: $25m in v2 DAI/USDC concentrated into 0.99–1.01 “would provide the same depth as $5bn in Uniswap v2” (as of 2021-03).
Ticks, L and √P
Section titled “Ticks, L and √P”Prices are discretised into ticks , one basis point apart (eq. 6.1); a pool’s tickSpacing restricts which ticks can be initialised. Launch fee tiers and spacings were 0.05% (spacing 10, ≈0.10% between initialisable ticks), 0.30% (60, ≈0.60%) and 1% (200, ≈2.02%); UNI governance can add tiers and set the protocol fee to for or zero. Instead of reserves the pool stores and because only one changes at a time: swapping within a tick moves , crossing a tick or minting/burning changes . Swaps use (eq. 6.13–6.16)
so is literally “the amount that token1 reserves change for a given change in ” (eq. 6.7). When a swap would push past the next initialised tick, the contract executes up to the tick, applies that tick’s net liquidity change (liquidityNet), and continues; a bitmap of initialised ticks makes finding the next one cheap. Fees are tracked as growth per unit liquidity: global accumulators , per-tick “fee growth outside” , and a position’s earned fees over are (eq. 6.19). Fees are not compounded into ; they sit as token balances until collected.
Oracle changes
Section titled “Oracle changes”v3 accumulates the tick index (log price), so callers compute a geometric-mean TWAP from checkpoints the pool stores itself (up to 65,536 observations, “at least 9 days”), plus a seconds-per-liquidity accumulator used to reward only in-range liquidity (whitepaper §5). See the AMM oracles page.
Any AMM as a set of positions
Section titled “Any AMM as a set of positions”Robinson (2021) reads a v3 pool as a function over tick space and shows this “liquidity fingerprint” characterises other AMMs: Uniswap v2 is a flat line; Curve’s StableSwap with constant amplification is “exactly equivalent to a single Uniswap v3 position” between two prices that depend on ; a two-asset Balancer pool is an exponential in tick space; the LMSR is a hyperbolic secant. See stable pools.
Solana variants
Section titled “Solana variants”- Raydium CLMM keeps the v3 model (ticks, tick arrays, sqrt-price, position NFTs) with fee tiers 0.01% (tick spacing 1), 0.05% (10), 0.25% (60) and 1.00% (120) and up to three reward mints per pool (Raydium docs, accessed 2026-08).
- Orca Whirlpools likewise use ticks; “tick spacing is determined by the pool’s fee tier,” tiers range from 0.01% to 2%, and “each fee tier for a token pair operates as a separate pool” (Orca docs, accessed 2026-08).
- Meteora DLMM discretises price into bins with for bin step (up to 400 bp). Each bin is a constant-sum market, , so a swap inside the active bin has zero slippage; only the active bin holds both tokens and earns fees. The fee is , where is a volatility accumulator driven by bins crossed by recent swaps and decayed over time; positions are resizable accounts (up to 1,400 bins) shaped as Spot, Curve or Bid-Ask (Meteora docs, accessed 2026-08).
4. Worked numeric example
Section titled “4. Worked numeric example”Using the §2 scenario with (all figures computed from the formulas above; Uniswap’s post quotes 91,751 DAI, 61.17 ETH, $183,500 and 5.44×):
| Price | Bob’s ETH | Bob’s DAI | Position value | Hold value | IL |
|---|---|---|---|---|---|
| 1,000 | 136.08 | 0 | $136,083 | $152,922 | −11.0% |
| 1,500 (entry) | 61.17 | 91,752 | $183,503 | $183,503 | 0 |
| 2,000 | 16.51 | 169,102 | $202,121 | $214,092 | −5.59% |
| 2,250 | 0 | 204,124 | $204,124 | $229,384 | −11.0% |
Efficiency at entry: . Alice, full range with the same , sees IL of only −1.02% at 2,000 (), consistent with Bob’s exposure being about 5.5× hers per dollar. A 10,000 DAI swap against Bob’s liquidity alone moves by , taking the price from 1,500 to 1,560.6; with Alice also in range () it moves only to 1,530.
5. Where it’s used
Section titled “5. Where it’s used”Ethereum
Section titled “Ethereum”- Uniswap v3 — mainnet launch targeted for 2021-05-05; Paradigm and Uniswap’s depth study found v3 had about 2× the ±2% depth of Binance and Coinbase for ETH/USD, ~3× Binance for ETH/BTC and ~5.5× Binance for USDC/USDT over June 2021–March 2022 (as of 2022-03). whitepaper
- Uniswap v4 — the same tick math inside a singleton with hooks for dynamic fees, limit orders or a TWAMM (Uniswap blog, 2023). See v4 hooks and am-AMM.
Solana
Section titled “Solana”- Raydium CLMM — launched 2022; “the dominant product for deep-liquidity pools in 2026” per Raydium, which reports ~$1.8B protocol TVL (as of 2026-04) and that several lending protocols source liquidation routes through Raydium CLMM. docs
- Orca Whirlpools — Orca’s concentrated-liquidity AMM and SDK; Raydium’s comparison table lists Orca TVL at ~$800M (as of 2026-04). docs
- Meteora DLMM — the venue for the TRUMP, MELANIA and LIBRA launches in January 2025 that pushed Solana DEX volume to $68.6B in the week of 2025-01-20 (Helius, H1 2025 report). docs
- Proprietary AMMs — Obric’s decompiled Sui program shows an oracle-centred curve with a
concentrationparameter; Helius calls prop AMMs a “closer resemblance to more traditional concentrated liquidity AMMs” whose centre the operator moves (as of 2025-08).
6. Risks, attacks, and incidents
Section titled “6. Risks, attacks, and incidents”- KyberSwap Elastic, 2023-11-22, ≈$48.7M. A double-rounding error in
computeSwapStep()let a swap stop just short of a tick boundary while the pool “incorrectly assumed that tick 305408 had not been crossed”; liquidity was double-counted across many chains (KyberSwap post-mortem). Tick accounting is the most error-prone part of any CLMM. - Out-of-range positions. When price exits the range “an LP’s liquidity is effectively removed from the pool and is no longer earning fees” and is entirely the less valuable asset (Uniswap, 2021-03).
- Amplified IL/LVR. Concentration multiplies loss-versus-rebalancing by the same factor as fees; see the −5.59% vs −1.02% comparison above and IL vs LVR.
- Just-in-time liquidity. Positions minted and burned around a single swap let sophisticated LPs capture a large trade’s fees and leave; see the LP toxicity and JIT page.
- Admin keys. Raydium’s 2022-12-16 exploit (~$4.4M) hit its AMM v4 pools via a compromised pool-owner key, not the CLMM; the lesson applies to any pool program (Unchained, 2022-12).
7. Open problems
Section titled “7. Open problems”- Optimal range selection. Milionis, Moallemi and Roughgarden (2023) frame liquidity provision as a Myersonian mechanism-design problem; Hasbrouck et al. (2025) model equilibrium concentrated liquidity; there is no closed-form answer for how wide a range should be given volatility, fees and gas.
- Fragmentation across fee tiers and pools. Multiple tiers per pair (v3), separate pools per tier (Orca) and many launch venues (Raydium, Meteora, PumpSwap) split liquidity that v2 kept in one place.
- Oracle reliability with thin in-range liquidity. v3’s liquidity accumulator exists precisely because a TWAP from a pool with little active liquidity is cheap to move (whitepaper §5.3); see the AMM oracles page.
- Passive concentrated liquidity versus proprietary quoting. Helius (2025-08) argues actively re-centred curves “in many cases outperform” passive concentrated positions on Solana; if so, retail LPing on Solana migrates to long-tail assets.
- Hybrid books. Superimposing a limit-order book on concentrated pools (ethresear.ch, 2023-05) and DLMM’s native limit orders point toward CLOB–AMM hybrids; see order books.
8. Ethereum vs Solana
Section titled “8. Ethereum vs Solana”| Aspect | Ethereum (Uniswap v3/v4) | Solana (Orca, Raydium, Meteora) |
|---|---|---|
| Price discretisation | ticks , spacing 10/60/200 at launch | ticks (Orca, Raydium; Raydium spacings 1/10/60/120) or bins with step up to 400 bp (DLMM) |
| Intra-range curve | constant product on virtual reserves | constant product (CLMM) or constant sum per bin (DLMM) |
| Fee tiers | 0.05/0.30/1% at launch, governance-added | Raydium 0.01/0.05/0.25/1%; Orca 0.01–2%; DLMM base + volatility fee |
| Position representation | NFT, non-compounding fees | NFT (Raydium, Orca) or resizable account (DLMM) |
| Gas per tick crossed | significant; motivates coarse spacing | cheap; 70-bin arrays, 1,400-bin positions |
| Depth vs CEX | ~2× Binance/Coinbase on ETH/USD (2022-03) | major pairs increasingly on prop AMMs (>60% of SOL/USDC, 2025-07) |
| Typical use | blue-chip pairs, stable pairs | launches and memecoins (TRUMP/MELANIA/LIBRA on DLMM, 2025-01) |
The design is the same on both chains—range positions on a shared curve, aggregated so traders see one pool—but the economics diverge. On Ethereum, gas makes tick crossings and rebalances expensive, so LPs prefer wide ranges and blue-chip pairs, where v3’s depth advantage was measured. On Solana, cheap transactions make fine-grained bins and frequent rebalancing viable, which is why DLMM became the launch venue of choice; cheap oracle updates also let professional market makers run their own concentrated curves, so passive concentrated liquidity competes with active quoting.
9. Reference doc
Section titled “9. Reference doc”The reference
Section titled “The reference”Uniswap v3 Core — Hayden Adams, Noah Zinsmeister, Moody Salem, River Keefer, Dan Robinson, March 2021. https://app.uniswap.org/whitepaper-v3.pdf
Summary of the reference
Section titled “Summary of the reference”The whitepaper is short and follows the contract structure. §1 motivates the design: constant-product pools are capital-inefficient because “only a fraction of the assets in the pool are available at a given price,” and earlier fixes (Curve, YieldSpace) force every LP into one curve. v3 adds concentrated liquidity, fee tiers (0.05%, 0.30%, 1% initially), protocol-fee governance, an improved price oracle and a liquidity oracle. §2 defines a position on as a constant-product pool on virtual reserves that is solvent only in range, gives the real-reserve curve (eq. 2.2), explains that liquidity outside the range is inactive and single-asset, and introduces range orders (§2.1) with their two differences from limit orders. §3 covers architecture: multiple pools per pair with different fees, non-fungible positions, non-compounding fees (§3.2.1) and removal of native liquidity tokens. §4 describes governance: the factory owner can add fee tiers with their tick spacing (launch spacings 10, 60, 200) and set the protocol fee to . §5 upgrades the oracle: the pool checkpoints observations itself (up to 65,536), accumulates for a geometric-mean TWAP (eq. 5.1–5.5), and adds a seconds-per-liquidity accumulator. §6 is the implementation: ticks at (eq. 6.1) and tick spacing; global state (, , current tick, fee growth, protocol fees) with the virtual-reserve identities , (eq. 6.3–6.6) and the swap formulas and (eq. 6.13–6.16); the tick bitmap; tick-indexed state (liquidityNet, liquidityGross, fee growth outside, seconds outside) with the crossing rule (eq. 6.20) and the per-range fee formula (eq. 6.19); and finally position-indexed state and the mint/burn/collect flow. Figure 4 is the swap control flow: swap within the current interval, cross the next tick if input remains, repeat.
Key quotes
Section titled “Key quotes”- “The defining idea of Uniswap v3 is that of concentrated liquidity: liquidity bounded within some price range.” (§2)
- “A position only needs to maintain enough reserves to support trading within its range, and therefore can act like a constant product pool with larger reserves (we call these the virtual reserves) within that range.” (§2)
- “Conceptually, there is a tick at every price 𝑝 that is an integer power of 1.0001.” (§6.1)
- “Using 𝐿 and √𝑃 is convenient because only one of them changes at a time.” (§6.2.1)
- “When the position has been crossed, it needs to be withdrawn. If it is not, and the price crosses back across that range, the position will be traded back, effectively reversing the trade.” (§2.1)
How to read the original
Section titled “How to read the original”Background: the constant-product formula and the fact that is the price (see CFMM math). Read §2 and §6.1–6.2 first, working the identities , by hand. Skip §5 (oracle) and §6.3–6.4 (tick and position bookkeeping) on a first pass. The hardest part is §6.3’s fee accounting: “fee growth outside” a tick is defined relative to the current tick and is flipped every time the tick is crossed (eq. 6.20), which lets the pool compute fees earned inside any range from three numbers without iterating over positions; convince yourself that and in eq. 6.17–6.18 are “fees earned above/below tick ” and eq. 6.19 follows.
What changed since
Section titled “What changed since”- 2021-05: v3 launches on Ethereum mainnet and Optimism; governance later adds a 0.01% tier for stable pairs.
- 2021-06: Robinson’s “Uniswap v3: The Universal AMM” shows any static AMM is a liquidity fingerprint in tick space.
- 2022-05: Liao and Robinson measure v3 depth exceeding Binance and Coinbase on major pairs.
- 2022: Orca Whirlpools and Raydium CLMM bring the tick model to Solana; Meteora’s DLMM later replaces ticks with bins and dynamic fees.
- 2023: Uniswap v4 whitepaper keeps v3’s tick math inside a singleton with hooks and flash accounting.
- 2023-11: KyberSwap Elastic exploit shows the cost of tick-boundary rounding errors.
- 2024–2025: on Solana, oracle-centred proprietary AMMs take the majority of SOL/USDC volume from passive concentrated pools (Helius, 2025-08).
Secondary references
Section titled “Secondary references”- Dan Robinson, Uniswap v3: The Universal AMM (Paradigm, 2021-06) — read if you want to see v2, Curve, Balancer and LMSR as v3 positions.
- Uniswap Labs, Introducing Uniswap v3 (2021-03) — read if you want the Alice/Bob example and the 4,000× claim in plain language.
- Liao and Robinson, The Dominance of Uniswap v3 Liquidity (Paradigm, 2022-05) — read if you want the depth-versus-CEX measurements.
- Meteora, DLMM formulas (docs) — read if you want the bin-price and dynamic-fee equations.
- KyberSwap, Post Mortem: KyberSwap Elastic Exploit (2023-11) — read if you implement tick crossing.
10. Sources
Section titled “10. Sources”- Uniswap v3 Core whitepaper — Adams, Zinsmeister, Salem, Keefer, Robinson — 2021-03 — https://app.uniswap.org/whitepaper-v3.pdf
- Introducing Uniswap v3 — Uniswap Labs — 2021-03-23 — https://blog.uniswap.org/uniswap-v3
- Uniswap v3: The Universal AMM — Dan Robinson (Paradigm) — 2021-06-07 — https://www.paradigm.xyz/writing/uniswap-v3-the-universal-amm
- The Dominance of Uniswap v3 Liquidity — Gordon Liao, Dan Robinson (Paradigm) — 2022-05-05 — https://www.paradigm.xyz/writing/the-dominance-of-uniswap-v3-liquidity
- Liquidity Mining on Uniswap v3 — Paradigm — 2021-05-18 — https://www.paradigm.xyz/writing/liquidity-mining-on-uniswap-v3
- Our Vision for Uniswap v4 — Uniswap Labs — 2023 — https://blog.uniswap.org/uniswap-v4
- A Myersonian Framework for Optimal Liquidity Provision in Automated Market Makers — Milionis, Moallemi, Roughgarden — 2023-03-01 — https://arxiv.org/abs/2303.00208
- Automated Market Making and Loss-Versus-Rebalancing — Milionis, Moallemi, Roughgarden, Zhang — 2022-08-11 — https://arxiv.org/abs/2208.06046
- Superimposed Liquidity: Enhancing Concentrated Liquidity AMM Pools with On-Chain Limit Order Book — 0xrahul — 2023-05-04 — https://ethresear.ch/t/superimposed-liquidity-enhancing-concentrated-liquidity-amm-pools-with-on-chain-limit-order-book/15489
- CLMM fees — Raydium docs — accessed 2026-08-29 — https://docs.raydium.io/products/clmm/fees
- What is Raydium — Raydium docs — accessed 2026-08-29 — https://docs.raydium.io/introduction/what-is-raydium
- Understanding Ticks, Tick Spacing, and Fee Tiers on Orca — Orca docs — accessed 2026-08-29 — https://docs.orca.so/liquidity/concepts/ticks-and-fees
- What is DLMM — Meteora docs — accessed 2026-08-29 — https://docs.meteora.ag/core-products/dlmm/what-is-dlmm.md
- DLMM formulas — Meteora docs — accessed 2026-08-29 — https://docs.meteora.ag/core-products/dlmm/formulas.md
- Solana Ecosystem Report H1 2025 — Helius — 2025 — https://www.helius.dev/blog/solana-ecosystem-report-h1-2025
- Solana’s Proprietary AMM Revolution — Helius — 2025-08 — https://www.helius.dev/blog/solanas-proprietary-amm-revolution
- Post Mortem: KyberSwap Elastic Exploit — KyberSwap — 2023-11 — https://blog.kyberswap.com/post-mortem-kyberswap-elastic-exploit/
- Solana DEX Raydium Shares Next Steps After $4.4M Exploit — Unchained (secondary) — 2022-12 — https://unchainedcrypto.com/solana-dex-raydium-shares-next-steps-after-4-4m-exploit/