Bin Array

DEX & liquidity

A bin array is a Meteora DLMM account that stores 70 price bins side by side. Each bin holds the reserves and L value for one discrete price step. When a swap moves through bins, the program reads from the array sequentially instead of doing CLMM-style integration math. Bin arrays are how DLMM trades execute with zero slippage inside any single bin.

Detailed explanation

Meteora's DLMM splits price into geometric bins. Each bin spans a fixed bps width set by the pool's bin step. A bin step of 25, for example, means each bin covers 0.25% of price. Inside a bin price is constant, so a trade that fills entirely within one bin pays no slippage. Across bins the price jumps in discrete steps.

Storing one bin per account would be expensive, so Meteora packs 70 bins into one BinArray account. The DLMM program ID is LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo. On a swap instruction, the LB Pair tells you which bin is currently active, and you have to load the BinArray that contains it plus the neighbors the swap might cross.

The layout is a fixed-size array of Bin structs. Each struct stores amount of token X, amount of token Y, the L liquidity value, and price metadata. PDAs are derived from the LB Pair address and a bin-array index. If you want to read DLMM pools off chain, you decode bin arrays against the Meteora IDL and aggregate them per pool.

One opinion: DLMM is friendlier than CLMM for traders who hate slippage but harder for LPs who want a smooth distribution. Pick your tradeoff consciously instead of copying whatever the latest yield post said.

When you'll see this

Bin arrays update on every DLMM swap and every liquidity action. The instructions that touch them include swap, swap_exact_out, add_liquidity, remove_liquidity, and initialize_bin_array.

The active BinArray for a hot pool can update dozens of times per slot. That makes raw account streaming expensive if you only care about price. For most off-chain consumers, the cleaner play is to read the LB Pair account, not every bin write.

How NoLimitNodes uses this

Our Meteora Enhanced Stream parses bin-array writes and emits per-swap events with the active bin id, the bin step, and the resulting reserves. If you would rather stream the raw bytes and decode them yourself, plug into our gRPC nodes and filter on the DLMM program ID.

Related terms

  • LB Pair · The Meteora DLMM liquidity-book account that stores the active bin, fee parameters, and the pool reserves.
  • DLMM · Dynamic Liquidity Market Maker. Meteora’s discrete-bin model with zero slippage inside the active bin.
  • Tick Array · An 88-tick storage account in Orca Whirlpools that holds the liquidity bitmap a swap walks across.
  • CLMM · Concentrated Liquidity Market Maker. LPs choose a price range, and capital only earns fees inside that range.
  • LP Token · A fungible SPL token that represents your share of an AMM pool, mintable on deposit and burnable on withdraw.

Canonical references

Ready to get started?

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

Talk to Sales