Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.meteora.ag/llms.txt

Use this file to discover all available pages before exploring further.

DAMM v2 concentrated liquidity lets a pool focus liquidity inside a chosen price range. Instead of using an unbounded constant-product curve, the pool creator sets lower and upper price bounds when the pool is initialized. This makes liquidity more efficient when a market has an expected trading area. More of the deposited capital can sit near the current price, giving traders better depth and giving LPs more fee exposure per dollar deployed.

How It Works

A concentrated DAMM v2 pool has three important square-root price values:
  • Minimum price: the lower bound of the pool’s active range.
  • Maximum price: the upper bound of the pool’s active range.
  • Current price: the live pool price between those bounds.
When the current price is inside the range, swaps can use the pool’s liquidity. If an exact-in or exact-out swap would move price beyond the lower or upper boundary, the instruction returns a price-range violation. The partial-fill swap path can consume only the amount that moves the pool to the boundary and return the unused input amount.
Concentrated pools require sqrt_min_price < sqrt_max_price, both bounds inside DAMM v2’s global price limits, and an initial square-root price inside the configured range.

Why Concentrate Liquidity

In a full-range pool, liquidity is available across the entire price curve. That is simple, but a large part of the capital may sit far away from where trading actually happens. Concentrated liquidity narrows the active range, so capital can work harder around the prices that matter.

Better Depth Near Target Price

More liquidity can be placed around the expected trading range, improving execution for traders.

More Efficient LP Capital

LPs can earn fees from a more focused liquidity range instead of spreading capital thinly.

Launch Price Control

Token teams can design pool ranges around expected launch, migration, or listing prices.

Integrator Flexibility

Launchpads and protocols can create pools with standardized or custom price-range behavior.

Deposit Ratios

In a concentrated pool, the current price determines the token ratio needed to add liquidity. The program calculates token amounts from the current price and the fixed range: ΔA=L×PmaxPPmax×P\Delta A = L \times \frac{\sqrt{P_{\max}} - \sqrt{P}}{\sqrt{P_{\max}} \times \sqrt{P}} ΔB=L×(PPmin)\Delta B = L \times (\sqrt{P} - \sqrt{P_{\min}}) If the current price is closer to the lower side of the range, the pool needs more token A. If the current price is closer to the upper side of the range, the pool needs more token B. This is not a UI quirk. It is how concentrated liquidity represents exposure across the selected price range.
When adding liquidity or making initial deposits, required token amounts are rounded up. Conversely, withdrawals and swap outputs are rounded down. This ensures the pool does not receive too little or pay out too much due to integer math.

Range Selection

Choosing a range is a product decision:
Range ChoiceProduct Effect
Narrower rangeMore capital efficiency near the target price, but less room for price movement
Wider rangeMore room for trading across price movement, but less concentrated depth
Full rangeBroadest concentrated range, but not the same as compounding mode
In concentrated liquidity mode, the price range is set when the pool is created. DAMM v2 positions do not choose independent per-position ranges.

Best Use Cases

A project can configure liquidity around a launch or migration price so early trading has stronger depth near the expected market.
Pairs that usually trade in a known band can use a tighter range to make liquidity more efficient.
Launchpads can create repeatable configurations for markets that need the same range and fee behavior.

Concentrated vs Compounding

Concentrated liquidity is best when the pool needs a specific price range. Compounding liquidity is best when the pool should behave as a full-range constant-product market where a share of LP fees can automatically grow reserves. If you need a custom minimum and maximum price, use concentrated liquidity. If you need auto-compounding full-range reserves, use DAMM v2 Compounding Liquidity.