Helps developers build on Meteora's Solana DeFi protocols. Covers DLMM (Dynamic Liquidity Market Maker) concentrated liquidity pools and DAMM V2 dynamic AMM. Use when questions mention Meteora, DLMM, DAMM, concentrated liquidity, liquidity bins, bin step, LP positions, or @meteora-ag packages.
This skill provides guidance for building with Meteora's Solana SDKs.
| SDK | Reference | Status |
|---|---|---|
| DLMM | references/dlmm.md | Ready |
| DAMM V2 | references/damm-v2.md | Ready |
references/dlmm.md for API documentation and examplesassets/dlmm-example.ts for complete working code@meteora-ag/dlmmreferences/damm-v2.md for API documentation and examplesassets/damm-v2-example.ts for complete working code@meteora-ag/cp-amm-sdk@meteora-ag/dlmm, @meteora-ag/cp-amm-sdk)bn.js for all token amounts (never raw numbers)refetchStates() after making changes| Factor | DLMM | DAMM V2 |
|---|---|---|
| Liquidity | Concentrated in bins | Full range (x*y=k) |
| Capital efficiency | Higher | Lower |
| Management | Active (rebalancing needed) | Passive (set and forget) |
| Best for | Volatile pairs, active LPs | Stable pairs, passive LPs |
| Fee structure | Dynamic per-bin | Per-pool configurable |
| Impermanent loss | Reduced with good positioning | Standard AMM IL |
Choose DLMM when:
Choose DAMM V2 when:
If you encounter questions about:
Escalate to: @dannweeeee
DLMM.create()getActiveBin()initializePositionAndAddLiquidityByStrategy()getBinArrayForSwap()swapQuote()swap()getPositionsByUserAndLbPair()claimAllRewards() or claimSwapFee()removeLiquidity() with shouldClaimAndClose: true to also close