Enhanced Stream

The Meteora DLMM API: real-time bin-level liquidity data for Solana's top DEX

Meteora's DLMM became the highest-volume DEX on Solana through 2025. Tens of billions in monthly swap volume, all bin-by-bin. The official API at dlmm-api.meteora.ag is REST with a 30 RPS cap and no WebSocket or gRPC. Fine for a chart on a dashboard. Useless for an LP rebalancer that has to react when the active bin moves out of range, or a sniper watching for new pool launches. We watch the DLMM program directly and ship parsed events: every swap, add_liquidity, remove_liquidity, position update, and active-bin shift, decoded as it lands. 14ms p50 from slot to socket.

Bin-level decodingNo 30 RPS capgRPC + WebSocketActive-bin trackingSub-50ms latency
On-chain programs

Try it live: Meteora streams

decoded solana events over grpc · click Run to see live data

Meteora DLMM
1grpcurl -H "x-api-key: YOUR_API_KEY" \
2  -d '{"topic":"prod.mat.solana.program.swaps.meteora_dlmm","format":"JSON"}' \
3  stream-1.nln.clr3.org:443 nln.stream.v1.StreamService/Subscribe
Live Output

See real data

Click Run to stream 5 live Meteora DLMM messages

Pro: 2 streams $49/mo · Ultra: 20 streams $199/mo · pre-parsed, zero infra

The Meteora DLMM events you can stream

every decoded instruction across LbPair, BinArray, and Position accounts

EventTypeDescriptionFrequencyLatency
swapinstructionDLMM exact-in swap. Decoded with active-bin id, amount in/out, price impact, and the bin array touched.Very high14ms
swap_exact_outinstructionDLMM exact-out swap. Same decoding shape with the output amount fixed and input computed from bin liquidity.High14ms
add_liquidityinstructionLP deposit into a specific bin range. Surfaces position NFT mint plus the per-bin liquidity distribution.High14ms
add_liquidity_by_strategyinstructionDeposit using one of Meteora's built-in distribution strategies (Spot, Curve, BidAsk). Decoded with strategy parameters.Medium14ms
remove_liquidityinstructionLP withdrawal, bin-by-bin liquidity reduction with the resulting token payouts.High14ms
initialize_lb_pairinstructionNew DLMM pool launch. Includes base/quote mints, initial active bin, and bin step (fee tier).Medium14ms
initialize_positioninstructionMint a new Position NFT for a given bin range, the canonical LP entry signal.High14ms
claim_feeinstructionLP claims accrued trading fees. Use to compute realized yield per position.Medium14ms
claim_rewardinstructionLP claims pool reward emissions (LP incentives, dual-asset rewards).Medium14ms
update_position_lock_release_pointinstructionLocked-position lifecycle. Useful for tracking time-locked liquidity programs.Low14ms

DLMM streaming performance

last reviewed 2026-04-28

DLMM swap latency
14ms
p50 from slot landing to your socket
Verified 2026-04-28
Active LbPairs tracked
5,000+
Live DLMM pools we decode in real time
Verified 2026-04-28
Daily DLMM instructions
3-8M
Across swap, add_liquidity, claim_fee variants, peak memecoin cycles
Stream uptime SLO
99.95%
Pro and Ultra plans, monthly rolling

What DLMM is, and why bins matter

DLMM stands for Dynamic Liquidity Market Maker. Instead of pricing liquidity along a smooth curve (Raydium AMM v4) or as continuous ranges (CLMM), DLMM splits the price axis into discrete bins. Each bin is a small price band that holds its own X / Y reserves. A swap walks bins from the active one outward until the input is filled, at deterministic prices. It feels like an order book and settles like an AMM. That hybrid is the whole reason it took off in 2025.

On chain, four account types do all the work. LbPair holds the pair config: base mint, quote mint, bin step, active bin id, fees. BinArray accounts each store 70 contiguous bins of liquidity; a busy pool spans many of them. Position and PositionV2 represent individual LP entries with a tick range and per-bin liquidity. Oracle stores the price-history ring buffer for TWAPs.

Subscribing to “Meteora data” means watching three things. Instruction calls into the DLMM program (swaps, deposits, withdrawals, claims). Account writes to LbPair (active bin shifts). And account writes to specific BinArrays you care about (granular liquidity distribution). All three drop into one feed if you set it up right.

The official Meteora API: what it gives you, what it doesn't

The official Meteora API at dlmm-api.meteora.ag is REST. Seven main endpoints: pool list, pool detail, OHLCV history, swap volume, fee accruals, group listings, and protocol-wide metrics. The hard limits: 30 requests per second, polling-only, aggregates updated on a 5 to 30 second cadence behind the chain.

That's genuinely fine for an analytics dashboard refreshing every 30 seconds, or a backfill job pulling pool history into a notebook. We'd use it ourselves for either.

What it doesn't do: catch new pool launches as they happen. Tell an LP rebalancer that the active bin just moved out of its range. Power a sniper that needs to sit in the slot after a token migrates into DLMM. Anything where freshness matters in seconds, not in the next polling cycle, has to subscribe to the program directly.

Decoding bin arrays and active-bin price changes

The single most important field for monitoring a DLMM pool live is the LbPair's active_id: the integer id of the bin currently inside the spread. Every swap that crosses a bin boundary increments or decrements it. Subscribing to LbPair account writes (rather than only transactions) gives you a tight signal that price moved with no decoder overhead. The active_id sits at a fixed byte offset.

For deeper analytics, per-bin liquidity, slippage estimates, execution-price prediction, you also need the surrounding BinArray accounts. A typical SOL/USDC DLMM pool spans dozens of them. Our parsed stream flags which BinArrays were touched by each swap, so your decoder refreshes its cached liquidity map only for the ones that changed instead of polling the whole program every block.

Bin step is the other key parameter. It defines the geometric ratio between adjacent bin prices. A 100-bps bin step means each bin is 1% wider than the previous one. Bin step is set at pool creation and emitted in the initialize_lb_pair instruction, which is useful for sniper bots that filter for tighter (low-slippage) or looser (memecoin-volatile) pools at launch.

What teams build with this

Sniper bots

Filter on initialize_lb_pair to catch new DLMM pools at launch. Bin step + initial active bin tell you whether you're looking at a tight stable-style pool or a memecoin breakout. Pair with the Pump.fun graduation stream and you catch DLMM-bound migrations ahead of any aggregator.

LP rebalancers

Watch active_id on the LbPair plus your Position bin range. When the active bin drifts out of range, the position stops earning fees. Fire a rebalance. 14ms p50 means you avoid leaving stale liquidity during a memecoin pump.

OHLC dashboards

Bucket the swap stream into time intervals per LbPair. Bin id plus bin step gives you exact price; you skip the rounding errors REST aggregates leak. Cleaner candles, faster freshness.

MEV & arb

Cross-DEX arb engines treat DLMM as one input. The parsed swap event lets you compute the post-trade price instantly, before the next slot lands. Fast enough to bundle a counter-trade through Jito.

Pricing, and where we sit vs the rest

The Meteora DLMM data market splits cleanly. Official REST is free but rate-limited. Bitquery sells GraphQL access; if you want JOINed historical analytics across DEXes they're genuinely better at that than we are. Direct on-chain subscription via Yellowstone gRPC is the only real-time option. Bitquery shines for post-hoc work; we shine for sub-second decisioning and predictable pricing.

We charge flat. Pro ($49/month) gives you two parsed streams. DLMM is one option among ten-plus DEXes and program families. Ultra ($199/month) bumps that to twenty plus 30 hours of custom dev time per month. No per-event surcharges, no DLMM-specific add-ons. Full breakdown is on the pricing page.

Frequently asked questions

LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo. It owns every LbPair, BinArray, and Position account that backs DLMM trading. Filter your stream on this ID to capture every swap, deposit, withdrawal, and position update across DLMM in one feed.

Start streaming Meteora DLMM in under 60 seconds

Pro plan from $49/mo includes 2 parsed streams. Pick DLMM, Raydium, Orca, PumpFun, or any other Solana program in our explorer.

Ready to get started?

Get your free API key and start building in under 30 seconds.

Talk to Sales