Analyst drawing a liquidity chart on a tablet with a stylus
  1. Home
  2. Protocol
  3. DLMM explained
Protocol · 10 min read

How Meteora’s DLMM really works, bin by bin

The Dynamic Liquidity Market Maker is the engine behind most of Meteora’s volume. It slices liquidity into fixed-price bins and charges more when markets get wild. Here is the mechanism, with numbers, before you put a single token in.

Start with SOL from a licensed, regulated exchange, then move it to your own Solana wallet to use DeFi apps like Meteora.

1 active bin at any moment400 bps maximum bin step10% hard cap on the total fee

DLMM bin visualizer

Interactive
Range low
Range high
Range width
Price move per bin

Each bin is a fixed price; price moves bin-by-bin as (1 + bin step)^n.

01 · BasicsWhat DLMM is and why Meteora built it

DLMM is a concentrated-liquidity market maker in which the price curve is replaced by a staircase of discrete price levels. Each step of the staircase is a bin, and each bin holds liquidity at exactly one price.

A classic AMM spreads every LP’s money across all possible prices, from almost zero to infinity. That is simple and robust, but most of the capital sits at prices the market will never visit, so it earns almost nothing. Concentrated liquidity fixes this by letting LPs choose a range. DLMM goes one step further: the range is made of individually addressable bins, and the fee is no longer a fixed number but responds to volatility.

The result is a design that behaves a little like an order book and a little like an AMM. Inside one bin, trades fill at a single price with no curve at all. Across bins, price walks step by step as each level is consumed. LPs decide not only where their liquidity sits but also how much sits in each bin, which is what makes the Spot, Curve and Bid-Ask shapes possible.

BinsDiscrete fixed-price levels
Bin stepGap between levels, in bps
Base + variableFee that rises with volatility
No LP tokenPositions are program accounts

At the time of writing, DLMM is the largest of Meteora’s products by liquidity and by volume. Meteora’s own Q1 holders’ report attributed the large majority of that quarter’s volume to DLMM. Check the live dashboard on our stats page for current figures rather than relying on any snapshot.

02 · MechanicsBins, bin step and the active bin

Three ideas carry the whole model. Once they click, every DLMM screen on meteora.ag becomes readable.

How prices are spaced

Bin prices grow geometrically. If one bin sits at price P, the next one up sits at P × (1 + bin step), and the one after that at P × (1 + bin step)². The bin visualizer at the top of this page uses exactly that rule. Meteora’s own docs give the example of SOL at $20 with a 25 bps step: the next bins sit at roughly $20.05, $20.10 and so on.

Take SOL at $150 in a pool with a 20 bps step. The next bin up is $150.30, then $150.60. Twelve bins either side of the active bin cover roughly $146.45 to $153.64, a band about 4.8% wide. Switch to a 100 bps step and twelve bins cover a far wider band, because every step is five times larger.

How many bins it takes to cover a 10% price move, and what 70 bins span.
Bin stepTypical useBins for +10%Move across 70 bins
1 bpsStablecoin pairs≈ 953≈ +0.7%
4 bpsDeep majors like SOL-USDC≈ 238≈ +2.8%
20 bpsLiquid large caps≈ 48≈ +15%
100 bpsVolatile tokens≈ 10≈ +101%
400 bpsExtreme volatility, launches≈ 2–3≈ 15×

That table explains why the same pair often has several DLMM pools. At the time we checked, the main SOL-USDC pool used a 4 bps step: tiny steps give traders fine-grained prices and let LPs concentrate tightly, but a 70-bin position only covers a few percent of movement. A memecoin pool needs much larger steps, or a single afternoon would push price through hundreds of bins.

Which token sits where

Bins below the active bin hold only the quote token (for example USDC): they are bids waiting to buy. Bins above the active bin hold only the base token (for example SOL): they are asks waiting to sell. Only the active bin holds a mix of both. When traders buy SOL, they drain SOL from the active bin; once it is empty, the pool moves to the next bin up, which becomes the new active bin. Selling works the same way in the opposite direction.

03 · TradingZero slippage inside a bin

Within a single bin there is no price curve. Every unit trades at the bin price, so a trade that fits inside the active bin has zero slippage from the curve.

Each bin works like a tiny constant-sum pool: the price is fixed, and the only question is how much of each token is left. Suppose the active SOL-USDC bin is priced at $150.00 and still holds 3 SOL. A trader buying 2 SOL pays exactly $300 plus the swap fee. A trader buying 5 SOL takes all 3 SOL at $150.00, then the pool steps up to the $150.30 bin and fills the remaining 2 SOL there. The average price is slightly above $150, because the trade crossed a bin.

This is why DLMM can quote very tight prices on busy pairs: if LPs stack deep liquidity in the bins around the current price, large trades cross few bins. It is also why the bin step matters for traders. A small step means each crossing costs only a sliver of price; a large step means each crossing is a visible jump.

04 · FeesThe dynamic fee: base fee plus variable fee

Most AMMs charge one fee forever. DLMM charges two fees added together, and caps the sum:

total fee = min(base fee + variable fee, 10%)

Static part

Base fee

Set at pool creation from a base factor multiplied by the bin step, so larger steps usually come with larger base fees. The main SOL-USDC pool, for instance, pairs a 4 bps step with a 0.04% base fee. This is the floor you pay on every swap.

Moving part

Variable fee

Grows with a volatility accumulator that rises whenever swaps cross bins. Per the formula in Meteora’s docs it scales with the square of volatility × bin step, so a burst of bin-crossing trades lifts it quickly. Pools can set it to zero.

How the volatility memory decays

The accumulator does not reset after every trade. It works with two timers. Within a short filter period, the reference point is kept, so a rapid burst of swaps keeps stacking volatility. Between the filter period and the decay period, the stored volatility is scaled down by a reduction factor. Once the decay period passes with no new volatility, it drops to zero and the fee falls back to the base level.

In practice: on a quiet day, an LP in a calm pool earns roughly the base fee. During a liquidation cascade or a memecoin pump, the fee can climb well above the base fee for a while and then cool off. That is exactly when impermanent loss builds fastest, so the variable fee pays LPs more for absorbing the moves that hurt them. Arbitrage bots, who trade most when price jumps, pay most of that premium.

Who gets the fee

  • Standard pools: Meteora’s docs describe a 10% protocol share and 90% for LPs, though the share is set per pool; at the time we checked, the SOL-USDC pool showed a 5% protocol share.
  • Launch pools: 20% protocol, 80% LPs.
  • Limit-order fills: split 50/50.
  • Ceiling: the protocol share cannot exceed 25%.

05 · PositionsPositions, limits and rent

A DLMM position is not an LP token and not an NFT. It is an on-chain program account that records which bins you cover and how much liquidity you own in each. That has practical consequences: you cannot send a DLMM position to another wallet the way you would send a token, but you can resize and rebalance it without closing it.

Default layout70 bins per position
Maximum size1,400 bins with dynamic (PositionV2) positions
Growth per resizeUp to 91 extra bins per instruction
Bin arraysBins are grouped in arrays of 70
Position rentAbout 0.059 SOL, refunded on close
Extension rentCharged above 69 bins, refundable
Bin array creationAbout 0.075 SOL each, not refundable
Optional lockA release point can block withdrawal until it passes

The bin-array rent deserves a closer look. Bins are stored in arrays of 70, and the first LP who places liquidity in a part of the price range that nobody has used yet pays to create that array. On a busy pool around the current price, the arrays usually already exist and you pay nothing extra. If you set a wide range far from the price on a fresh pool, you may create several arrays and spend a few tenths of a SOL you will not get back. Meteora advises keeping at least 0.05 SOL in your wallet for fees; for opening positions, keep comfortably more.

06 · LifecycleOut-of-range behavior and claiming fees

Your position earns only when the active bin is inside your range. The moment price leaves your range, fee income stops, and the position is entirely one token.

Walk through it with a position opened at $150 and covering $140 to $160 on SOL-USDC. While SOL trades between those prices, the active bin sits somewhere in your range and every swap through your bins pays you. If SOL climbs to $165, the market has bought all your SOL on the way up: you now hold only USDC, at an average sale price somewhere between $150 and $160. If SOL drops to $135, the opposite happened: you bought SOL all the way down and now hold only SOL.

Neither outcome destroys the position. It simply waits. If price comes back into range, it starts earning again and converts back toward a mix. Your options while out of range are:

  1. Wait

    Sensible if you believe price will return, or if the one-sided outcome is what you wanted anyway, such as selling SOL into strength.

  2. Rebalance

    Withdraw and redeploy around the current price, or use Meteora’s rebalancing tools. This locks in the conversion that already happened.

  3. Exit

    Withdraw, claim, and close the position to recover the position rent.

Claiming is manual

Fees accrue per position in both tokens, along with any farming rewards, and they do not compound on their own. They remain claimable until you claim them. A position can only be closed once its liquidity, fees and rewards are all cleared, which is why closing is usually a withdraw-claim-close sequence. Many LPs claim on a schedule, for example weekly, and decide each time whether to re-add the tokens or take profit.

Some pools collect fees only in one token. Meteora documents a collect-fee mode where fees are taken in the input token or only in the quote token, which matters if you want income in USDC or SOL rather than in a volatile token.

07 · ContextDLMM vs classic AMM vs CLMM

DLMM is one of three common liquidity designs on Solana. Raydium CLMM and Orca Whirlpools use tick-based concentrated liquidity in the Uniswap v3 tradition; Meteora’s DAMM pools and many older pools use the full-range constant-product curve.

FeatureClassic AMMTick CLMMMeteora DLMM
Choose a price rangeNoYesYes
Fixed price within a levelNoNoYes
Custom liquidity shapeNoPartialYes
Volatility-linked feeNoMostly fixedYes
Can go out of rangeNoYesYes
Fully passiveYesNoNo

In a tick-based CLMM, liquidity inside a range still follows a curve, so even small trades move price a little. In DLMM, the curve is replaced by flat steps, which is what produces zero slippage within a bin and makes one-sided, order-like positions natural. A tick CLMM position can be built in several overlapping pieces to approximate a shape; DLMM offers shapes as a first-class option at deposit time. On fees, tick CLMMs traditionally use fixed tiers, while DLMM’s variable fee is built into every pool unless the creator disables it.

Strengths

  • High capital efficiency around the current price
  • LPs are paid more in volatile markets
  • Flexible shapes and one-sided ranges
  • Positions can be resized without closing

Watch-outs

  • Earns nothing out of range
  • Concentration amplifies impermanent loss
  • Non-refundable bin-array rent on fresh ranges
  • Fees must be claimed by hand

Understanding the engine is half the job; the other half is choosing a range and shape that fits the pair. Our guide to DLMM strategies takes the mechanics above and turns them into concrete Spot, Curve and Bid-Ask setups. Like every DeFi protocol, DLMM carries smart-contract risk: it has been audited several times by firms including Offside Labs, OtterSec, Sec3, Zenith and Sherlock, but an audit lowers risk rather than removing it.

Frequently asked questions

What does DLMM stand for on Meteora?

DLMM stands for Dynamic Liquidity Market Maker. It is Meteora’s concentrated-liquidity design in which liquidity sits in discrete price bins and the swap fee rises automatically when the market becomes volatile.

What is a bin step in Meteora DLMM?

The bin step is the price gap between two neighboring bins, measured in basis points. A 20 bps step means each bin is 0.20% above the previous one. Small steps suit stable or very liquid pairs, large steps suit volatile tokens. The maximum step is 400 bps.

Do DLMM fees compound automatically?

No. Fees in both tokens, plus any farm rewards, accrue to your position and stay claimable until you claim them. If you want to compound, you claim and add the tokens back to a position yourself.

What happens when my DLMM position goes out of range?

The position stays open but stops earning fees, and it is now made of only one token: the one the market was selling into your range. You can wait for price to come back, or withdraw and open a new range around the current price.

How much SOL do I need to open a DLMM position?

Besides your deposit, a position needs about 0.059 SOL of rent, which is refunded when you close it. If you are the first LP to use a set of bins, you also pay about 0.075 SOL per bin array, which is not refundable. Keep a little extra SOL for transaction fees.

Is DLMM better than a regular AMM pool?

It is more capital-efficient and pays LPs more when markets move, but it needs more attention. A full-range pool is passive and never goes out of range; a DLMM position earns more per dollar only while price trades inside the range you chose.

Need SOL before your first pool?

Every Meteora action starts with SOL for fees and liquidity. A regulated exchange with card and bank deposits is the simplest, safest on-ramp — then withdraw to your own wallet.

Buy SOL and get started External link · opens in a new tab