What's DLMM?
DLMM is one of Meteora’s highly sophisticated product that allows you to provide concentrated liquidity to a pool and earn dynamic fees that increases or decreases based on the market volatility.
Token 2022 Extensions
DLMM supports Token 2022 tokens with a variety of extensions, enabling tokens with enhanced functionality to be easily integrated into DLMM pools. Check out the list of extensions that DLMM supports here.
DLMM Program
At Meteora, we’ve developed aNode.js <> Typescript SDK and Rust CPI Examples to make deploying and managing your DLMM liquidity pool easier. The following sections includes information on installing and using the SDKs and Rust CPIs. It also covers where to find the latest code, and how to contribute to these repositories.
We also outline a list of unofficial community SDKs made by our wonderful community.
Program Details
DLMM IDL
Meteora DLMM Program IDL
| Network | Program ID |
|---|---|
| Mainnet | LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo |
| Devnet | LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo |
Pool Types
DLMM supports four pool types:| Pool Type | Description |
|---|---|
Permissionless | Standard open pool, no special requirements. |
PermissionlessV2 | Latest pool type with Token 2022 support, extended config parameters, and function_type setting. Created via initialize_lb_pair2. |
Permission | Admin-controlled pool for token launches with activation point, pre-activation duration, and lock duration settings. |
CustomizablePermissionless | Open pool with creator-controlled on/off switch, customizable base fee, activation point, and Alpha Vault support. |
PermissionlessV2 pools no longer enforce SOL/USDC quote token constraints — any token pair is supported.Function Type
When creating aPermissionlessV2 pool, a function_type parameter is required:
| Function Type | Description |
|---|---|
LiquidityMining (0) | Pool supports farming rewards via initialize_reward. |
Dynamic Positions
DLMM supportsPositionV2, which supports up to 1,400 bins per position — a significant increase from the previous 70-bin limit. This is achieved through extended byte data attached to the position account, which is allocated on demand as the position grows.
Position Resize
Positions can be resized dynamically without closing and reopening:| Instruction | Description |
|---|---|
increase_position_length / increase_position_length2 | Expand the position’s bin range. |
decrease_position_length | Shrink the position from the lower or upper end. |
Rebalance Liquidity
Therebalance_liquidity instruction allows position owners to combine multiple liquidity operations (add, remove, shift) and resize the position in a single instruction.
It supports a shrink_mode parameter:
| Shrink Mode | Description |
|---|---|
ShrinkBoth | Shrink empty bins on both sides. |
NoShrinkLeft | Keep left (lower) bins, shrink right only. |
NoShrinkRight | Keep right (upper) bins, shrink left only. |
NoShrinkBoth | Do not shrink on either side. |
Additional Position Instructions
| Instruction | Description |
|---|---|
initialize_position2 | Creates a position, succeeding silently if it already exists (idempotent). |
close_position_if_empty | Closes a position only if it has no liquidity; otherwise does nothing. |
migrate_position | Migrates a v1 position to v2 format. |
Bin Array Initialization
Token 2022 Support
DLMM supports Token 2022 tokens with the following permissionless extensions:TransferFeeConfig/TransferFeeAmountTokenMetadata/MetadataPointerConfidentialTransferMint/ConfidentialTransferFeeConfig
PermanentDelegate, TransferHook, and MintCloseAuthority require a Token Badge to be initialized by the program admin before they can be used in DLMM pools.
Transfer hook mints are supported permissionlessly if both the transfer hook program and transfer hook authority have been revoked.
Official SDKs
Typescript SDK
Official Meteora DLMM Typescript SDK
Rust CPI Examples
Official Meteora DLMM Rust CPI Examples
Community SDKs
These SDKs are not officially maintained by our team — only the
Node.js <> Typescript SDK and Rust CPI Examples are.Python SDK
Unofficial Python SDK for DLMM built by the community

