Meteora DLMM volume bot: how bin steps change your cost

Meteora DLMM does not hold liquidity on a curve. It holds it in discrete price bins, and that single design decision changes almost everything about what a volume campaign costs there. A swap contained inside one bin has no price impact at all, which is a property no other Solana venue offers. A swap that crosses bins behaves like a series of small jumps instead of a smooth slide. Understanding where that boundary sits for your pair is the difference between the cheapest venue you can run on and an unpredictable one.

Volion Research Updated Jul 30, 2026 7 sections

What a bin actually is

A bin is a single fixed price with liquidity sitting at it. Rather than spreading liquidity along a continuous curve, Meteora DLMM divides the price range into discrete steps and places liquidity into those steps. All trading inside one bin happens at exactly that bin price, so a swap that does not exhaust the bin has zero price impact.

This is a genuinely different model from constant-product pools and from tick-based concentrated liquidity. On a constant-product pool every trade, however small, moves the price a little. On Meteora DLMM, a trade that fits within the active bin moves it not at all, and the price only changes when a bin is emptied and trading moves to the next one.

For a volume campaign that property is unusually valuable. The goal is to generate genuine transaction activity without pushing the price around, and a venue where correctly sized trades have literally zero price impact is the closest thing to purpose-built for it. The relationship between transaction count and what a chart displays is covered in makers versus volume.

The catch is that bins have finite depth. The active bin holds only what liquidity providers put in it. Trade larger than that and you consume the bin, cross into the next, and the price steps. The step is not a rounding error, it is the full bin step width.

What bin step means and why it is chosen at pool creation

Bin step is the price distance between adjacent bins, expressed in basis points. A pool with a 10 basis point bin step has bins one tenth of a percent apart; a pool with a 100 basis point step has bins a full percent apart. It is fixed when the pool is created and cannot be changed afterwards, which means a pair can have several DLMM pools with different bin steps and materially different behaviour.

The trade-off is precision against continuity. A small bin step tracks price finely, so crossing a bin is a small jump, but liquidity is spread across many bins and each individual bin is shallower. A large bin step concentrates liquidity into fewer, deeper bins, so more trades fit inside one bin, but crossing a boundary is a bigger jump.

For volume generation this cuts in a specific direction. A larger bin step means a deeper active bin, which means more of your trades fit inside it with zero price impact. The downside, that price moves in coarser steps, matters mainly to traders trying to capture small moves. It matters much less to a campaign whose objective is activity rather than a price outcome.

So when a pair has multiple DLMM pools, the one with the wider bin step and real liquidity in the active bin is often the better venue for a campaign, even though a discretionary trader would prefer the tighter one. This is one of the few cases where the right venue for a bot and the right venue for a trader are genuinely different.

The dynamic fee: why timing changes your bill

Meteora DLMM charges a base fee plus a variable component that rises with recent volatility. When price is moving across bins rapidly the variable fee increases, and when things are calm it decays back down. The same swap on the same pool costs different amounts depending on what happened in the minutes before it.

The mechanism exists to compensate liquidity providers for the risk they carry during volatile periods, and it works as intended. But it has a direct consequence for anyone running a scheduled campaign: running through a volatile window costs more per swap than running through a calm one, on top of the higher failure rate volatility already causes.

This compounds with priority fees, which also rise when the network is busy. A campaign that runs during a market-wide move is paying more in three places at once: higher priority fees to land, higher variable DLMM fees, and more retries because more swaps fail. None of those appear in a quoted cost per swap.

The practical response is to treat pacing as a cost lever rather than only a detection concern. Spreading a campaign across calmer periods reduces the bill measurably, and it also produces a more natural looking transaction pattern than a burst does. How priority fees behave under the same conditions is covered in how Solana priority fees work.

What Meteora actually costs, measured

The table below reads finalized mainnet blocks directly, counting every transaction that touched each program along with the fee paid and whether it succeeded. Meteora DLMM is shown against the other concentrated designs on Solana so the comparison is like for like.
ProgramSampled txFailure rateMedian feeCost per landed swap
Meteora DLMM10969.7%8,45027,888
Raydium CLMM low sample4965.3%10,57030,461
Orca Whirlpools low sample1877.8%5,22523,536
Meteora programs against other concentrated designs, measured Sep 15, 2026 at 4:02 AM UTC across 1 finalized mainnet blocks. Fees in lamports.

In our current window Meteora DLMM showed a median fee of 8,450 lamports with a 69.7% failure rate across 109 sampled transactions, which is roughly 27,888 lamports per swap that lands.

Failure rates on concentrated designs sit well above the network average, and DLMM is no exception. The reason is the same across all of them: quotes are computed against liquidity that is in range right now, and range membership changes when other people trade. What distinguishes DLMM is that inside a bin there is no gradual degradation, so the outcomes cluster into clean successes and clean failures rather than a spread of partially bad fills.

Rows with small samples are marked as such rather than presented as equivalent, and every figure carries the window it was measured over. The complete percentile distribution is on the measured transaction costs page, and the cross-venue comparison is on which Solana DEX is cheapest for a volume bot.

Sizing trades to stay inside a bin

The right trade size on a DLMM pool is the largest one that does not exhaust the active bin. Below that threshold you get zero price impact and a clean fill. Above it you cross a boundary, take the full bin step as price movement, and become far more likely to fail a slippage check on the next attempt.

Finding the threshold is a matter of requesting quotes at increasing sizes and watching for the point where quoted price impact stops being zero. That point is the edge of the active bin. Sizing meaningfully below it leaves room for someone else to trade before you land without pushing you over the edge.

Two further considerations shape the number:

  • Bin depth changes constantly. Liquidity providers add and remove, and other traders consume the bin. A size that fitted an hour ago may not fit now, so the threshold is worth re-checking rather than setting once.
  • Smaller trades produce more transactions per SOL. Since campaign effect comes from transaction count and distinct participants rather than from the size of any single trade, smaller trades are usually better on two axes at once here.

This is a rare case where the safe setting, the cheap setting and the effective setting all point the same way. On most venues you trade one against another. On DLMM, staying inside a bin gets you all three.

How DLMM differs from Raydium CLMM and Orca Whirlpools

All three concentrate liquidity, but DLMM uses discrete bins with zero slippage inside each one, while CLMM and Whirlpools use continuous ticks where price moves smoothly with every trade. The practical difference is that DLMM gives you an exact size threshold to stay under, whereas tick-based pools degrade gradually and give you no clean line.

On a tick-based pool there is no size at which price impact is zero. Every trade moves the price a little, and the question is only how much. On DLMM there genuinely is such a size, and it is discoverable. For a campaign that wants activity without price movement, having a hard threshold to stay under is easier to work with than a continuous curve to minimise against.

Against that, tick-based pools fail somewhat more predictably. A DLMM pool where the active bin empties can jump a full bin step in one trade, which is a larger discontinuity than a tick crossing produces. Neither design is universally better; they fail differently, and the settings that suit them differ accordingly.

The Raydium comparison is covered in detail in Raydium CLMM vs CPMM for a volume bot, and Orca specifics are in Orca Whirlpool routing.

Running a campaign on a Meteora pool

Four settings matter: trade size below the active bin depth, slippage wide enough to survive one bin crossing but no wider, pacing that avoids volatile windows where the dynamic fee spikes, and a retry policy that re-quotes rather than resubmits after a failure.
  1. Size under the bin. Find the threshold by quoting increasing sizes, then work meaningfully below it. This is the single highest-leverage setting on this venue.
  2. Set slippage to about one bin step plus a margin. Tighter and ordinary bin crossings fail you. Much wider and you have opened a window for someone else to profit inside, as described in sandwich MEV protection.
  3. Pace around volatility. The dynamic fee, priority fees and failure rates all rise together during fast moves. Spreading activity across calmer periods is cheaper and looks more natural.
  4. Re-quote on failure. The minimum output is baked into the signed instruction, so resubmitting the same transaction after a bin crossing fails identically and costs another fee.

When you enter a token address in the dashboard, the venue and pool are resolved from where liquidity actually sits, so you do not have to identify the bin step yourself. What you set is size, interval and tolerance, which is where the differences above turn into money. To model the total before committing anything, the calculator converts a target volume into cost at current measured rates, and the full budget arithmetic is in the cost breakdown.

Publishing the measured inputs instead of asserting a single cost per swap is the premise the whole volume bot for Solana is built on, and it is why the tables above carry a timestamp rather than a marketing figure.

Questions

What is a bin step on Meteora DLMM?
Bin step is the price distance between adjacent liquidity bins, expressed in basis points. A 10 basis point step places bins a tenth of a percent apart; a 100 basis point step places them a full percent apart. It is fixed when the pool is created, so a pair can have several DLMM pools with different bin steps and different behaviour.
Does a swap on Meteora DLMM have zero slippage?
Inside a single bin, yes. All trading within one bin happens at that bin price, so a swap that does not exhaust the bin has no price impact at all. Once the bin is consumed, trading moves to the next bin and the price steps by the full bin step width.
Why did my Meteora swap cost more than the last one?
DLMM charges a base fee plus a variable component that rises with recent volatility and decays when conditions calm. The same swap on the same pool costs more after a period of rapid price movement, and priority fees usually rise at the same time.
Is Meteora cheaper than Raydium for a volume bot?
It depends on the pair and the day. The measured table on this page shows fee and failure rate for both so you can compare cost per landed swap rather than quoted fee. Meteora has a structural advantage when your trades fit inside the active bin, because then price impact is genuinely zero.
How do I find the right trade size for a DLMM pool?
Request quotes at increasing sizes and watch for where quoted price impact stops being zero. That is the edge of the active bin. Size meaningfully below it so another trade landing before yours does not push you over, and re-check periodically because bin depth changes as providers and traders act.
What happens if my trade crosses a bin boundary?
The price steps by the full bin step rather than sliding smoothly, and any slippage tolerance tighter than that step will reject the swap. Setting tolerance to roughly one bin step plus a margin handles ordinary crossings without opening an unnecessarily wide window.