DLMM Pro runs on the program
dPro1D5wiqnGMH8vMDG23jh35btTHoWdyqXjqkqxe8n on mainnet and devnet.Ticks, Not Bins
Every tick is a 0.01% price step. A pool’s tick spacing (1 to 256) sets how far apart LP range edges and orders can be.
Multi-Range Positions
One position NFT holds up to 45 ranges, each with its own liquidity, fees and rewards. Spot, Curve and Bid-Ask shapes are built from these ranges.
Limit Orders in the Pool
Orders of up to 25 ticks sit beside LP liquidity, fill at the exact tick price and earn a share of the trading fee.
Scheduled and Dynamic Fees
Fixed, time-scheduled or market-cap-scheduled base fees, plus an optional fee that rises with volatility. Fees range from 0.01% to 99%.
Launch Controls
Activation rules open swaps at a set time, and deposits and withdrawals at a set time or once the price reaches a target, with a whitelisted wallet for each action.
Liquidity Mining
Pools with the liquidity mining extension stream up to two reward tokens to in-range liquidity.
How DLMM Pro Works
A pool stores the current price as a square-root price and the tick it falls in. Liquidity is recorded at ticks: each tick holds the change in LP liquidity at that price (liquidity_net) and the limit orders resting there. Ticks live in tick arrays, and the pool keeps a bitmap of which tick arrays hold anything, so swaps skip empty stretches of the price curve.
A swap starts at the current price and walks toward the next tick that holds liquidity. Between ticks it trades against LP liquidity, and the price moves along the curve. When it reaches a tick with resting limit orders on the other side of the trade, it fills those orders at that tick’s price, then crosses the tick, applies its liquidity change and keeps going. A swap is always exact-in: it consumes the whole input or fails.
The pool account stores the two token mints and their reserve accounts, the creator, the fee settings and the dynamic fee state, the partner and protocol fee balances, the active liquidity, the initial and current square-root price, the current tick, the fee growth per unit of liquidity for each token, the inline tick array bitmap, the activation point, the pool status and the extension data. Everything else sits in separate accounts:
A typical life of a pool:
- A pool is created with a token pair, an initial price, a tick spacing, a fee schedule, a fee token and an activation type. Nothing about these can be changed afterwards.
- LPs open positions and deposit. Each range edge creates or updates a tick, and the pool’s active liquidity changes if the range contains the current tick.
- Makers open limit orders. Each order tick stores the deposited amount on the tick.
- A swap works out one fee rate from the pool’s fee settings, then walks ticks in the direction of the trade. At each tick it fills LP liquidity, then orders, takes the fee on the step and splits it, then crosses the tick and moves on until the input is used up.
- LPs and makers collect: LPs claim fees and rewards from a position, makers cancel an order to get their proceeds, referrals are paid inside the swap or cancel, and partners and Meteora claim their balances from the pool.
- Positions and orders are closed, which burns the NFT and returns the rent.
NotConsumingFullAmountIn. The caller sets a minimum output, and the swap fails with ExceededSlippage if the output after any transfer fee is lower.
Read Ticks and Liquidity for the price grid and Limit Orders for how orders at one tick are filled.
DLMM Pro and DLMM
DLMM Pro is a separate program from DLMM, and pools on one cannot be used from the other. The main differences:
The DLMM column comes from the DLMM overview and its collect fee mode page. Limit orders on DLMM Pro are not a pool mode, so they work together with liquidity mining, and a position can overlap its own ranges to build a shape with fewer slots.
Limits at a Glance
Who DLMM Pro Is For
Liquidity providers
Liquidity providers
Build a position from several ranges instead of one, shape it with Spot, Curve or Bid-Ask weights, and adjust it without closing it. Locked and vesting liquidity keeps earning fees and rewards.
Traders and market makers
Traders and market makers
Place bids and asks at exact prices inside the pool. Filled orders earn half of the fee charged on the volume they fill, and relative orders protect you if the price moves before the transaction lands.
Token teams and launchpads
Token teams and launchpads
Start a pool with a high fee that falls over time or as the price rises, open trading at a set time, keep deposits and withdrawals closed to the public until a set time or a price milestone, and run a reward campaign from the pool itself.
Aggregators and integrators
Aggregators and integrators
The TypeScript SDK and the Rust commons crate quote exact-in swaps with the same math as the program, including limit-order fills and Token 2022 transfer fees.
Explore DLMM Pro
Ticks and Liquidity
Tick prices, tick spacing, ranges, tick arrays and how a swap moves through them.
Positions
Multi-range NFT positions, liquidity shapes, fees, locks and delegates.
Limit Orders
Asks and bids at single ticks, fill order, maker fees and the order lifecycle.
Fees
Base fee modes, the dynamic fee, the fee token, and where each part of a fee goes.
Pool Creation and Activation
Static configs, dynamic configs, launch pools and activation rules.
Liquidity Mining
Reward slots, emission schedules and rewards emitted while no liquidity is in range.
Token 2022 Support
Which mints work without review, token badges, transfer fees and transfer hooks.
Formulas
The math behind prices, liquidity amounts, fees, fee schedules and rewards.

