# PancakeSwap V2 Liquidity | Bitquery Data Store Decoded PancakeSwap V2 liquidity on BSC since April 2021: pair creations, Mint, Burn and Sync reserves, one row per event, in the standard events schema. Dataset page: https://bitquery.io/datastore/datasets/pancakeswap-v2-liquidity Network: BNB Chain Category: Liquidity, Pools, Events Tables: 3 Columns: 132 Coverage: 2021-04-23 to 2026-10-20 Format: Apache Parquet, ZSTD compression, one prefix per table Licence: https://bitquery.io/datastore/legal/data-license ## What this is We decode PancakeSwap V2 from BSC event logs ourselves and keep only pairs created by the PancakeSwap V2 factory (0xca143ce32fe78f1f7019d7d551a6402fc5350c73). PancakeSwap V1 and other V2 forks emit the same event signatures from other factories and are left out. The three tables use the same 44 columns as our Uniswap V2 Liquidity files, with nothing renamed or derived: Log_Signature_Name is the event, Call_Signature_Name is the method that ran, and Arguments holds the decoded values. A row is one event. pcsv2_pairs has one PairCreated row per pair, with token0, token1 and the pair address. pcsv2_liquidity_events has Mint(sender, amount0, amount1) and Burn(sender, amount0, amount1, to). pcsv2_sync has Sync(reserve0, reserve1), which every swap, mint and burn emits, so the last Sync of a pair before a block gives its reserves at that block. Swaps are not in this dataset; they are in BSC DEX Trades, which joins on the transaction hash. ## What people use it for - Pool reserves at any block, from the last Sync before it - Liquidity added and removed per pair and day - Rug detection: a Burn that empties a pair soon after its first Mint - New token launches on BSC, from PairCreated, including pairs that never traded ## Tables (3) ### pcsv2_pairs: 44 columns One row per PairCreated event of the PancakeSwap V2 factory (0xca143ce32fe78f1f7019d7d551a6402fc5350c73), in the standard events schema; Arguments holds token0, token1, pair and the running pair count. Bucket prefix: bsc/pancakeswap_v2_liquidity/pcsv2_pairs File naming: _.parquet Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/bsc/pancakeswap_v2_liquidity/pcsv2_pairs/128745100_128745199.parquet Sample updated: Oct 21, 2026 | column | type | description | | --- | --- | --- | | Arguments | String | Decoded event arguments as a JSON array, when the signature resolved; empty otherwise | | Block_Date | Date | UTC date of the block | | Block_Number | UInt64 | Block height | | Block_Time | DateTime | Block timestamp, UTC | | Call_CallPath | Array | Path of call indexes from the transaction root down to the emitting frame | | Call_CallerIndex | Int32 | Call_Index of the frame that called the emitting frame; -1 at the top level | | Call_Create | String | Whether the emitting frame deployed a contract; true or false | | Call_Error | String | Error the emitting frame returned; empty on success | | Call_From | String | Caller of the emitting frame, 0x-prefixed | | Call_Gas | UInt64 | Gas supplied to the emitting frame | | Call_GasUsed | UInt64 | Gas consumed by the emitting frame and everything beneath it | | Call_Index | UInt32 | Position of the emitting frame within the transaction; join to calls on this plus Transaction_Hash | | Call_InternalCalls | UInt32 | Number of calls made beneath the emitting frame | | Call_Reverted | String | Whether the emitting frame reverted; true or false | | Call_SelfDestruct | String | Whether the emitting contract self-destructed; true or false | | Call_Signature_Abi | String | ABI fragment of the function the emitting frame ran | | Call_Signature_Name | String | Name of that function, when resolved | | Call_Signature_Signature | String | Canonical signature of that function | | Call_Signature_SignatureHash | String | Four-byte selector of that function, hex | | Call_Signature_SignatureType | String | How that function signature was resolved | | Call_To | String | Address the emitting frame called, 0x-prefixed | | Call_Value | String | Native BNB sent with the emitting frame, decimal adjusted | | ChainId | UInt64 | EVM chain id; 56 for BSC | | Fee_SenderFee | String | Network fee the sender paid for the whole transaction, in BNB. It repeats on every log of the transaction, so count it once per transaction | | Log_EnterIndex | UInt32 | Enter index of the emitting frame | | Log_ExitIndex | UInt32 | Exit index of the emitting frame | | Log_Index | UInt32 | Position of the log within the transaction | | Log_LogAfterCallIndex | UInt32 | Index of the last call frame entered before this log, for ordering logs against calls | | Log_Signature_Abi | String | ABI fragment for the resolved event; empty when the topic is unknown | | Log_Signature_Name | String | Event name: PairCreated | | Log_Signature_Signature | String | Canonical event signature, for example Transfer(address,address,uint256) | | Log_Signature_SignatureHash | String | Keccak hash of the event signature, hex; the same value as topic 0 | | Log_Signature_SignatureType | String | How the event signature was resolved | | Log_SmartContract | String | Contract that emitted the event, lowercase 0x hex: the factory | | LogHeader_Address | String | Address recorded in the log header, 0x-prefixed | | LogHeader_Data | String | Raw non-indexed log data, hex | | LogHeader_Index | UInt64 | Index of the log within the block, as the receipt records it | | LogHeader_Removed | String | Whether the log was removed by a reorg; true or false | | Topics_Hash | Array | Indexed topics of the log, as an array of hex strings; the first is the event signature hash | | Transaction_From | String | Address that signed the transaction, 0x-prefixed | | Transaction_Hash | String | Hash of the containing transaction, 0x-prefixed. The join key | | Transaction_Index | UInt64 | Position of the transaction within the block | | Transaction_To | String | Address the transaction called, 0x-prefixed | | TransactionStatus_Success | String | Whether the transaction succeeded; true or false | ### pcsv2_liquidity_events: 44 columns One row per Mint or Burn event emitted by pairs the PancakeSwap V2 factory created, in the standard events schema. Bucket prefix: bsc/pancakeswap_v2_liquidity/pcsv2_liquidity_events File naming: _.parquet Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/bsc/pancakeswap_v2_liquidity/pcsv2_liquidity_events/128745100_128745199.parquet Sample updated: Oct 21, 2026 | column | type | description | | --- | --- | --- | | Arguments | String | Decoded event arguments as a JSON array, when the signature resolved; empty otherwise | | Block_Date | Date | UTC date of the block | | Block_Number | UInt64 | Block height | | Block_Time | DateTime | Block timestamp, UTC | | Call_CallPath | Array | Path of call indexes from the transaction root down to the emitting frame | | Call_CallerIndex | Int32 | Call_Index of the frame that called the emitting frame; -1 at the top level | | Call_Create | String | Whether the emitting frame deployed a contract; true or false | | Call_Error | String | Error the emitting frame returned; empty on success | | Call_From | String | Caller of the emitting frame, 0x-prefixed | | Call_Gas | UInt64 | Gas supplied to the emitting frame | | Call_GasUsed | UInt64 | Gas consumed by the emitting frame and everything beneath it | | Call_Index | UInt32 | Position of the emitting frame within the transaction; join to calls on this plus Transaction_Hash | | Call_InternalCalls | UInt32 | Number of calls made beneath the emitting frame | | Call_Reverted | String | Whether the emitting frame reverted; true or false | | Call_SelfDestruct | String | Whether the emitting contract self-destructed; true or false | | Call_Signature_Abi | String | ABI fragment of the function the emitting frame ran | | Call_Signature_Name | String | Name of that function, when resolved | | Call_Signature_Signature | String | Canonical signature of that function | | Call_Signature_SignatureHash | String | Four-byte selector of that function, hex | | Call_Signature_SignatureType | String | How that function signature was resolved | | Call_To | String | Address the emitting frame called, 0x-prefixed | | Call_Value | String | Native BNB sent with the emitting frame, decimal adjusted | | ChainId | UInt64 | EVM chain id; 56 for BSC | | Fee_SenderFee | String | Network fee the sender paid for the whole transaction, in BNB. It repeats on every log of the transaction, so count it once per transaction | | Log_EnterIndex | UInt32 | Enter index of the emitting frame | | Log_ExitIndex | UInt32 | Exit index of the emitting frame | | Log_Index | UInt32 | Position of the log within the transaction | | Log_LogAfterCallIndex | UInt32 | Index of the last call frame entered before this log, for ordering logs against calls | | Log_Signature_Abi | String | ABI fragment for the resolved event; empty when the topic is unknown | | Log_Signature_Name | String | Event name: Mint or Burn | | Log_Signature_Signature | String | Canonical event signature, for example Transfer(address,address,uint256) | | Log_Signature_SignatureHash | String | Keccak hash of the event signature, hex; the same value as topic 0 | | Log_Signature_SignatureType | String | How the event signature was resolved | | Log_SmartContract | String | Contract that emitted the event, lowercase 0x hex: the pair | | LogHeader_Address | String | Address recorded in the log header, 0x-prefixed | | LogHeader_Data | String | Raw non-indexed log data, hex | | LogHeader_Index | UInt64 | Index of the log within the block, as the receipt records it | | LogHeader_Removed | String | Whether the log was removed by a reorg; true or false | | Topics_Hash | Array | Indexed topics of the log, as an array of hex strings; the first is the event signature hash | | Transaction_From | String | Address that signed the transaction, 0x-prefixed | | Transaction_Hash | String | Hash of the containing transaction, 0x-prefixed. The join key | | Transaction_Index | UInt64 | Position of the transaction within the block | | Transaction_To | String | Address the transaction called, 0x-prefixed | | TransactionStatus_Success | String | Whether the transaction succeeded; true or false | ### pcsv2_sync: 44 columns One row per Sync event emitted by pairs the PancakeSwap V2 factory created: the pair's reserves after each swap, mint or burn. Bucket prefix: bsc/pancakeswap_v2_liquidity/pcsv2_sync File naming: _.parquet Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/bsc/pancakeswap_v2_liquidity/pcsv2_sync/128745100_128745199.parquet Sample updated: Oct 21, 2026 | column | type | description | | --- | --- | --- | | Arguments | String | Decoded event arguments as a JSON array, when the signature resolved; empty otherwise | | Block_Date | Date | UTC date of the block | | Block_Number | UInt64 | Block height | | Block_Time | DateTime | Block timestamp, UTC | | Call_CallPath | Array | Path of call indexes from the transaction root down to the emitting frame | | Call_CallerIndex | Int32 | Call_Index of the frame that called the emitting frame; -1 at the top level | | Call_Create | String | Whether the emitting frame deployed a contract; true or false | | Call_Error | String | Error the emitting frame returned; empty on success | | Call_From | String | Caller of the emitting frame, 0x-prefixed | | Call_Gas | UInt64 | Gas supplied to the emitting frame | | Call_GasUsed | UInt64 | Gas consumed by the emitting frame and everything beneath it | | Call_Index | UInt32 | Position of the emitting frame within the transaction; join to calls on this plus Transaction_Hash | | Call_InternalCalls | UInt32 | Number of calls made beneath the emitting frame | | Call_Reverted | String | Whether the emitting frame reverted; true or false | | Call_SelfDestruct | String | Whether the emitting contract self-destructed; true or false | | Call_Signature_Abi | String | ABI fragment of the function the emitting frame ran | | Call_Signature_Name | String | Name of that function, when resolved | | Call_Signature_Signature | String | Canonical signature of that function | | Call_Signature_SignatureHash | String | Four-byte selector of that function, hex | | Call_Signature_SignatureType | String | How that function signature was resolved | | Call_To | String | Address the emitting frame called, 0x-prefixed | | Call_Value | String | Native BNB sent with the emitting frame, decimal adjusted | | ChainId | UInt64 | EVM chain id; 56 for BSC | | Fee_SenderFee | String | Network fee the sender paid for the whole transaction, in BNB. It repeats on every log of the transaction, so count it once per transaction | | Log_EnterIndex | UInt32 | Enter index of the emitting frame | | Log_ExitIndex | UInt32 | Exit index of the emitting frame | | Log_Index | UInt32 | Position of the log within the transaction | | Log_LogAfterCallIndex | UInt32 | Index of the last call frame entered before this log, for ordering logs against calls | | Log_Signature_Abi | String | ABI fragment for the resolved event; empty when the topic is unknown | | Log_Signature_Name | String | Event name: Sync | | Log_Signature_Signature | String | Canonical event signature, for example Transfer(address,address,uint256) | | Log_Signature_SignatureHash | String | Keccak hash of the event signature, hex; the same value as topic 0 | | Log_Signature_SignatureType | String | How the event signature was resolved | | Log_SmartContract | String | Contract that emitted the event, lowercase 0x hex: the pair | | LogHeader_Address | String | Address recorded in the log header, 0x-prefixed | | LogHeader_Data | String | Raw non-indexed log data, hex | | LogHeader_Index | UInt64 | Index of the log within the block, as the receipt records it | | LogHeader_Removed | String | Whether the log was removed by a reorg; true or false | | Topics_Hash | Array | Indexed topics of the log, as an array of hex strings; the first is the event signature hash | | Transaction_From | String | Address that signed the transaction, 0x-prefixed | | Transaction_Hash | String | Hash of the containing transaction, 0x-prefixed. The join key | | Transaction_Index | UInt64 | Position of the transaction within the block | | Transaction_To | String | Address the transaction called, 0x-prefixed | | TransactionStatus_Success | String | Whether the transaction succeeded; true or false | ## Price - Latest month (Sep 20, 2026 → Oct 20, 2026): $300 one-time, USD - Last 12 months (Oct 20, 2025 → Oct 20, 2026): $3,000 one-time, USD - Full history (Apr 23, 2021 → Oct 20, 2026): $6,000 one-time, USD Every window includes all 3 tables and 132 columns. Only the time range changes. ## Questions buyers ask Q: What is in the PancakeSwap V2 Liquidity dataset? A: Three Parquet tables with 44 columns each, in the standard EVM events schema. pcsv2_pairs has the PairCreated events of the PancakeSwap V2 factory (0xca143ce32fe78f1f7019d7d551a6402fc5350c73). pcsv2_liquidity_events has the Mint and Burn events of those pairs. pcsv2_sync has their Sync events. Successful transactions and non-reverted calls only. Data starts on 23 April 2021. Q: How big is it? A: The factory had created 3,512,086 pairs by 21 October 2026, and 9,474 on 19 October alone. Sync dominates the row count: in the hour from 12:00 to 13:00 UTC there were 91,453 Sync, 2,259 Mint and 272 Burn rows on 19 October 2026, and 150,139 Sync, 4,529 Mint and 767 Burn on 15 November 2025. A month is roughly 70 to 110 million Sync rows. These are measured counts, not a size estimate; the delivery manifest gives exact rows and bytes. Q: How do I get a pair's reserves at a given time? A: Filter pcsv2_sync on the pair (Log_SmartContract) and take the last row at or before your block, ordered by Block_Number, Transaction_Index, Call_Index and Log_Index. reserve0 and reserve1 in Arguments are raw token amounts; token0 and token1 are in the pair's row in pcsv2_pairs. Q: How do I read the amounts and addresses? A: Arguments is a JSON array with one entry per decoded argument: index, name, path, type and the value slots. Addresses and bytes are hex strings without the 0x prefix; uint112, uint128 and uint256 amounts are decimal strings in raw token units, so divide by the token's decimals yourself; small integers such as ticks sit in the integer slots. Call_Value and Fee_SenderFee are already in BNB. The token contracts of a pair or pool are in its creation row. Q: Why are the Mint arguments named minter, mintAmount and mintTokens? A: Our BSC decoder reads the V2 Mint topic, Mint(address,uint256,uint256), with the names of another contract that uses the same signature. The values are right; read them by position as sender, amount0 and amount1. Log_Signature_Signature and the topic hash are the same as on Uniswap V2. Burn and Sync carry their usual names. Q: Are swaps included? A: No. Swaps are in the BSC DEX Trades dataset. Join on Transaction_Hash and the pair to see a swap next to its Sync. Q: What was left out, and why? A: Pairs from PancakeSwap V1 and other V2 factories are left out, because forks share the event signatures. LP token Transfer events of the pairs are not included. Events from failed transactions and reverted calls are left out, so each row is a change that took effect. Q: How are these produced, and how were they checked? A: The export is one ClickHouse query per table over our decoded BSC events, filtered to the factory and its pairs. We ran each query on windows in both storage shards (19 October 2026 and 15 November 2025): row keys (Transaction_Hash, Call_Index, Log_Index) were unique, every row carried decoded Arguments, and the shards repeated no rows. Q: How do I load it? A: With DuckDB: SELECT Log_Signature_Name, count(*) FROM read_parquet('pcsv2_sync/*.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 each 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. Each table links to a public sample file covering BSC blocks 128,745,100 to 128,745,199 on 20 October 2026: 31 pairs, 22 Mint and Burn rows and 1,223 Sync rows. 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.