# Meteora DLMM Liquidity Changes | Bitquery Data Store Liquidity adds and removes on Meteora DLMM pools since October 2025, one row per instruction, USD-priced at block time. Dataset page: https://bitquery.io/datastore/datasets/meteora-dlmm-liquidity Network: Solana Category: Liquidity, Pools Tables: 1 Columns: 64 Coverage: 2025-10-29 to 2026-10-12 Rows: about 62M Size: about 14 GB Format: Apache Parquet, ZSTD compression, one prefix per table Licence: https://bitquery.io/datastore/legal/data-license ## What this is Meteora DLMM Liquidity Changes holds the bin liquidity adds and removes on Meteora DLMM (program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo), cut from our Solana pools table so you do not have to load the swaps. Each row is one instruction that changed a pool's reserves: the pool, both tokens, the amount that moved on each side, the reserve left afterwards and the wallet that signed. Group by Pool_Market_MarketAddress and Block_Date and sum the two change amounts to get net liquidity flow per pool and day. Amounts are decimal adjusted, and USD values use the price at block time when we have one for the token. Rows from failed transactions are kept, so filter on Transaction_Result_Success when you need changes that took effect. ## What people use it for - Net liquidity added and removed per pool and day - Liquidity drain alerts on new pools, from large removes by one wallet - LP wallet activity by signer, across pools - Reserve history after each liquidity change, without loading swaps ## Tables (1) ### meteora_dlmm_liquidity_changes: 64 columns One row per instruction that added liquidity, removed it or collected position fees, with the change and the resulting reserve for both tokens. Bucket prefix: datashare/solana/meteora_dlmm_liquidity/dex_pools File naming: _.parquet Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/datashare/solana/meteora_dlmm_liquidity/dex_pools/452119504_452119803.parquet Sample updated: Oct 13, 2026 | column | type | description | | --- | --- | --- | | Block_Date | Date | UTC date of the block | | Block_Slot | UInt64 | Slot number of the block; delivered files are split by slot range | | Block_Time | DateTime | Block timestamp, UTC | | Instruction_CallPath | Array | Instruction_Index values of the parent instructions; empty on a top-level instruction | | Instruction_ExternalSeqNumber | UInt64 | Number of the top-level instruction this row falls under, counting from 1 | | Instruction_Index | UInt64 | Position of the instruction in the transaction, counting inner instructions | | Instruction_InternalSeqNumber | UInt64 | Position under its top-level instruction, counting from 1; 0 on a top-level instruction | | Instruction_Program_Address | String | Program that executed the instruction | | Instruction_Program_Method | String | Decoded instruction name and the action taken, for example addLiquidityByStrategy2, addLiquidity2 or removeLiquidityByRange2 | | Instruction_Program_Name | String | Decoded program name | | Pool_BaseCurrency_ChangeAmount | Decimal | Base-token amount the event added to the pool (positive) or took out (negative), decimal adjusted | | Pool_BaseCurrency_ChangeAmountInUSD | Float64 | Base-token change in USD; 0 when unpriced or when only the quote side was valued | | Pool_BaseCurrency_PostAmount | Decimal | Base-token reserve left in the pool after the event, decimal adjusted | | Pool_BaseCurrency_PostAmountInUSD | Float64 | Base-token reserve after the event, in USD; 0 when unpriced or when only the quote side was valued | | Pool_BaseCurrency_Price | Float64 | Quote-token reserve divided by base-token reserve after the event; a fair price only on constant-product pools | | Pool_BaseCurrency_PriceInUSD | Float64 | Base-token USD price from the reserve ratio, so off on order books and concentrated liquidity; Pool_BaseCurrency_PostAmountInUSD ÷ Pool_BaseCurrency_PostAmount matches trade prices | | Pool_Dex_ProgramAddress | String | Program address of the DEX that owns the pool, base58; Meteora DLMM's is LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo | | Pool_Dex_ProtocolFamily | String | Venue family as indexed, which can span several programs; Meteora for Meteora DLMM | | Pool_Dex_ProtocolName | String | Program name and version as indexed; forks can share one, so pair it with the program address; lb_clmm for Meteora DLMM | | Pool_Market_BaseCurrency_CollectionAddress | String | NFT collection of the base asset; empty for fungible tokens | | Pool_Market_BaseCurrency_Decimals | UInt64 | Decimal places of the base token, as its mint sets them | | Pool_Market_BaseCurrency_EditionNonce | UInt64 | Metaplex edition bump seed; a technical value, 0 when unset | | Pool_Market_BaseCurrency_Fungible | Bool | Whether the base asset is fungible; false for NFTs | | Pool_Market_BaseCurrency_MetadataAddress | String | Metaplex metadata account of the base asset, when recorded | | Pool_Market_BaseCurrency_MintAddress | String | Mint address of the base token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped) | | Pool_Market_BaseCurrency_Name | String | Name from the base token's metadata; lookalikes copy real names | | Pool_Market_BaseCurrency_ProgramAddress | String | Program that owns the base mint, SPL Token or Token-2022, when recorded | | Pool_Market_BaseCurrency_SellerFeeBasisPoints | UInt64 | Creator royalty in basis points (100 = 1%); 0 for nearly all fungible coins | | Pool_Market_BaseCurrency_Symbol | String | Ticker of the base token; not unique, so join on the mint address | | Pool_Market_BaseCurrency_TokenCreators_Address | Array | Creator wallets from the base asset's metadata; often empty | | Pool_Market_BaseCurrency_TokenStandard | String | Metaplex standard, such as Fungible or FungibleAsset, when recorded | | Pool_Market_BaseCurrency_Uri | String | Link to the base asset's off-chain metadata file, often on IPFS or Arweave | | Pool_Market_BaseCurrency_UpdateAuthority | String | Account that can change the base asset's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL | | Pool_Market_BaseCurrency_VerifiedCollection | Bool | Whether the NFT collection is verified; false for fungible tokens | | Pool_Market_MarketAddress | String | Address of the pool, bonding curve or order-book market | | Pool_Market_QuoteCurrency_CollectionAddress | String | NFT collection of the quote asset; empty for fungible tokens | | Pool_Market_QuoteCurrency_Decimals | UInt64 | Decimal places of the quote token, as its mint sets them | | Pool_Market_QuoteCurrency_EditionNonce | UInt64 | Metaplex edition bump seed; a technical value, 0 when unset | | Pool_Market_QuoteCurrency_Fungible | Bool | Whether the quote asset is fungible; false for NFTs | | Pool_Market_QuoteCurrency_MetadataAddress | String | Metaplex metadata account of the quote asset, when recorded | | Pool_Market_QuoteCurrency_MintAddress | String | Mint address of the quote token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped) | | Pool_Market_QuoteCurrency_Name | String | Name from the quote token's metadata; lookalikes copy real names | | Pool_Market_QuoteCurrency_ProgramAddress | String | Program that owns the quote mint, SPL Token or Token-2022, when recorded | | Pool_Market_QuoteCurrency_SellerFeeBasisPoints | UInt64 | Creator royalty in basis points (100 = 1%); 0 for nearly all fungible coins | | Pool_Market_QuoteCurrency_Symbol | String | Ticker of the quote token; not unique, so join on the mint address | | Pool_Market_QuoteCurrency_TokenCreators_Address | Array | Creator wallets from the quote asset's metadata; often empty | | Pool_Market_QuoteCurrency_TokenStandard | String | Metaplex standard, such as Fungible or FungibleAsset, when recorded | | Pool_Market_QuoteCurrency_Uri | String | Link to the quote asset's off-chain metadata file, often on IPFS or Arweave | | Pool_Market_QuoteCurrency_UpdateAuthority | String | Account that can change the quote asset's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL | | Pool_Market_QuoteCurrency_VerifiedCollection | Bool | Whether the NFT collection is verified; false for fungible tokens | | Pool_QuoteCurrency_ChangeAmount | Decimal | Quote-token amount the event added to the pool (positive) or took out (negative), decimal adjusted | | Pool_QuoteCurrency_ChangeAmountInUSD | Float64 | Quote-token change in USD; 0 when unpriced or when only the base side was valued | | Pool_QuoteCurrency_PostAmount | Decimal | Quote-token reserve left in the pool after the event, decimal adjusted | | Pool_QuoteCurrency_PostAmountInUSD | Float64 | Quote-token reserve after the event, in USD; 0 when unpriced or when only the base side was valued | | Pool_QuoteCurrency_Price | Float64 | Base-token reserve divided by quote-token reserve after the event; a fair price only on constant-product pools | | Pool_QuoteCurrency_PriceInUSD | Float64 | Quote-token USD price from the reserve ratio, so off on order books and concentrated liquidity; Pool_QuoteCurrency_PostAmountInUSD ÷ Pool_QuoteCurrency_PostAmount matches trade prices | | PoolEvent_Index | UInt64 | Position of the pool event within its instruction | | Transaction_Fee | Decimal | Network fee paid, in SOL | | Transaction_FeeInUSD | Float64 | Network fee, in USD | | Transaction_FeePayer | String | Wallet that paid the network fee; Solana makes it the first signer | | Transaction_Index | UInt64 | Position of the transaction within the block | | Transaction_Result_Success | Bool | Whether the transaction succeeded | | Transaction_Signature | String | Transaction signature, base58 | | Transaction_Signer | String | Wallet that signed the transaction and paid its fee | ## Price - Latest month (Sep 12, 2026 → Oct 12, 2026): $100 one-time, USD - Last 12 months (Oct 12, 2025 → Oct 12, 2026): $1,000 one-time, USD Every window includes all 64 columns. Only the time range changes. ## Questions buyers ask Q: What is included in Meteora DLMM Liquidity Changes? A: One Parquet table, meteora_dlmm_liquidity_changes, with 64 columns in the standard Solana pools schema. A row is one instruction on Meteora DLMM whose method name contains the word liquidity or starts with collectFees. Data starts on 29 October 2025. Q: How big is it? A: About 62,000,000 rows and 14 GB of ZSTD Parquet from 29 October 2025 to 1 October 2026. Both figures are estimates from four sampled days. On 1 October 2026 the table had 293,089 rows. Q: How do I tell an add from a remove? A: Instruction_Program_Method names the action, for example addLiquidityByStrategy2, addLiquidity2 or removeLiquidityByRange2. Pool_BaseCurrency_ChangeAmount and Pool_QuoteCurrency_ChangeAmount are positive when tokens enter the pool and negative when they leave. Q: What is left out? A: Swaps and pool creations are left out. The table has no position account, tick or bin range, and no rows for opening or closing a position, because the pools table does not carry them. Fee claims (claimFee, claimFee2) have no rows in the source pools table today. Missing rows can be re-processed for an order, so ask before you buy if you need them. Q: How does this differ from the Meteora DLMM dataset? A: Meteora DLMM has the swaps table and the full pools table, including a row for each swap's effect on the pool. This dataset is the liquidity rows of that pools table only, so it is smaller and costs less. Q: How are the USD values produced? A: Each amount is multiplied by the token's USD price in the 10-minute window of the block. About 4,400 tokens have a price; others get 0. In the sample file 472 of 472 rows have at least one side priced. We checked the method against our published Meteora DLMM pools file for 1 June 2026 and the values matched. Q: How do I load it? A: With DuckDB: SELECT Instruction_Program_Method, count(*) FROM read_parquet('dex_pools/*.parquet') GROUP BY 1. pandas, Polars, Spark and ClickHouse read the same files. Q: How is the data delivered? A: As flat Parquet files under a stable layout, one prefix per table, with a JSON manifest listing every file and its sha256. We prepare the files within 7 business days of purchase and email you the location. You choose at checkout where to collect them: a Requester Pays S3 bucket, downloaded with your own AWS account, or a Cloudflare R2 bucket with a read-only API key and no egress fees. Files stay available for 7 days from delivery. Q: Can I try before I buy? A: Yes. The table links to a public sample file with 472 real rows from 1 October 2026, slots 452,119,504 to 452,119,803. No email address required. ## What this file is, and is not This is a description of one dataset sold by Bitquery, written for assistants and for people. It lists every column but holds no data rows. The sample files linked under each table are real Parquet and are free to download. Figures here come from the product record and are exact unless marked otherwise; the delivery manifest is authoritative for a purchased file. If a question needs a row that is not in a sample, say so rather than guessing at it.