BitqueryBitqueryData Store
BNB Chain logoBNB ChainBlocksTransactionsCallsEventsTransfersTradesRewards

BSC

BNB Smart Chain since its genesis block of August 2020 as flat Parquet: blocks, transactions, internal calls, decoded events, transfers, DEX trades and validator rewards, at block resolution.

Coverage
Aug 29, 2020→ Oct 4, 2026 · yesterday
Tables
7Parquet, one prefix each
Columns
268across 7 tables
Coverage ends yesterday, UTC

Overview

Seven flat Parquet tables covering BNB Smart Chain from its genesis block of 29 August 2020 to yesterday, at block resolution: blocks, transactions, calls, events, transfers, dex_trades and miner_rewards. Every table carries Block_Number and Block_Time, and every table but blocks and miner_rewards carries Transaction_Hash, so they join without a lookup table.

The calls and events tables are the ones an archive node will not give you cheaply: each internal call frame with its decoded function signature, arguments, gas, revert state and state changes, and each log with its decoded topic signature and the call frame that emitted it.

BSC is a Parlia proof-of-staked-authority chain. Block_Difficulty is 2 for an in-turn validator and 1 for an out-of-turn one rather than a mining figure, no block has uncles, and the validator's reward is the transaction fees, so Reward_Static is 0 throughout. Native rows in transfers carry the symbol BNB; filter on Transfer_Currency_Native to find them.

Use cases

  • Full-chain analytics without running an archive node or paying per RPC call
  • Contract forensics on decoded internal calls, with gas, revert state and state changes
  • Token and stablecoin flow analysis across the whole chain, not one contract at a time
  • Validator economics: base fee burn, priority fees and block rewards per block

7 tables

268 columns · free sample for each table

blocks

22 columns

One row per BNB Smart Chain block, with the validator, gas, base fee and the trie roots.

bsc/blocks<start_block>_<end_block>.parquet50 blocks per file, sorted ascending
Browse columns Sample fileSample updated Jan 27, 2026

transactions

55 columns

One row per BNB Smart Chain transaction, with the full fee breakdown, receipt, signature and contract-code details.

bsc/transactions<start_block>_<end_block>.parquet50 blocks per file, sorted ascending
Browse columns Sample fileSample updated Jan 27, 2026

calls

41 columns

One row per call frame, internal calls included, with decoded signature, arguments, returns, gas and state changes.

bsc/calls<start_block>_<end_block>.parquet50 blocks per file, sorted ascending
Browse columns Sample fileSample updated Jan 27, 2026

events

45 columns

One row per log, with the decoded event signature, topics, raw data and the call frame that emitted it.

bsc/events<start_block>_<end_block>.parquet50 blocks per file, sorted ascending
Browse columns Sample fileSample updated Jan 27, 2026

transfers

24 columns

One row per native BNB or token transfer on BNB Smart Chain, with sender, receiver, token metadata and a USD value where a price exists.

bsc/transfers<start_block>_<end_block>.parquet50 blocks per file, sorted ascending
Browse columns Sample fileSample updated Jan 27, 2026

dex_trades

54 columns

One row per DEX swap on BNB Smart Chain, with both sides, pool and protocol, fees, transaction details and a USD value where a price exists.

bsc/dex_trades<start_block>_<end_block>.parquet50 blocks per file, sorted ascending
Browse columns Sample fileSample updated Sep 26, 2026

miner_rewards

27 columns

One row per block, splitting the validator's take into static, dynamic, transaction-fee and burnt components.

bsc/miner_rewards<start_block>_<end_block>.parquet50 blocks per file, sorted ascending
Browse columns Sample fileSample updated Jan 27, 2026

Schema reference

copies a column name
268 columns
blocks22 columnsOne row per BNB Smart Chain block, with the validator, gas, base fee and the trie roots.
ColumnTypeDescription
Block22
Block_BaseFeeStringEIP-1559 base fee per gas, in BNB, as a decimal string
Block_BaseFeeInUSDFloat64Base fee per gas valued in USD at the block's hourly BNB price; 0 when unpriced
Block_BloomStringBloom filter over the block's logs, hex
Block_CoinbaseStringAddress credited as block producer, 0x-prefixed; on BSC this is the Parlia validator that sealed the block
Block_DateDateUTC date of the block
Block_DifficultyStringDifficulty field as recorded. Parlia does not use proof of work; 2 marks an in-turn validator and 1 an out-of-turn one
Block_GasLimitUInt64Gas limit of the block
Block_GasUsedUInt64Total gas used by the block's transactions
Block_HashStringBlock hash, 0x-prefixed
Block_MixDigestStringMix digest field, hex
Block_NumberUInt64Block height
Block_NonceUInt64Block nonce
Block_ParentHashStringHash of the parent block, 0x-prefixed
Block_ReceiptHashStringRoot of the receipts trie
Block_Result_ErrorsStringErrors recorded while executing the block; empty when there were none
Block_Result_GasUInt64Gas accounted for in the block's execution result
Block_RootStringState root after the block
Block_TimeDateTimeBlock timestamp, UTC
Block_TxCountUInt32Number of transactions in the block
Block_TxHashStringRoot of the transactions trie
Block_UncleHashStringRoot of the uncles list. BSC produces no uncles, so this is the empty-list hash on every block
Block_UnclesCountUInt32Number of uncles; always 0 on BSC
Sample file
transactions55 columnsOne row per BNB Smart Chain transaction, with the full fee breakdown, receipt, signature and contract-code details.
ColumnTypeDescription
Block4
Block_BaseFeeStringBase fee per gas of the containing block, in BNB, as a decimal string
Block_DateDateUTC date of the block
Block_NumberUInt64Block height
Block_TimeDateTimeBlock timestamp, UTC
Fee13
Fee_BurntStringBNB burnt by the base fee, as a decimal string
Fee_BurntInUSDFloat64Burnt fee in USD at the block's hourly BNB price
Fee_EffectiveGasPriceStringGas price actually charged, in BNB, as a decimal string
Fee_EffectiveGasPriceInUSDFloat64Effective gas price in USD
Fee_GasRefundUInt64Gas refunded to the sender, in gas units
Fee_MinerRewardStringPortion of the fee paid to the validator, as a decimal string
Fee_MinerRewardInUSDFloat64Validator's share of the fee in USD
Fee_PriorityFeePerGasStringPriority fee per gas, in BNB, as a decimal string
Fee_PriorityFeePerGasInUSDFloat64Priority fee per gas in USD
Fee_SavingsStringDifference between the fee cap the sender authorised and what was charged
Fee_SavingsInUSDFloat64That saving in USD
Fee_SenderFeeStringTotal network fee the sender paid for the transaction, in BNB, as a decimal string
Fee_SenderFeeInUSDFloat64Total sender fee in USD
Receipt10
Receipt_BloomStringBloom filter over the transaction's logs, hex
Receipt_ContractAddressStringAddress of the contract deployed by this transaction; the string 0x when none
Receipt_ContractAddressCode_HashStringCode hash of the deployed contract
Receipt_ContractAddressCode_SizeInt32Bytecode size of the deployed contract, in bytes
Receipt_ContractAddressCode_SuicidedStringWhether the deployed contract has self-destructed; true or false
Receipt_CumulativeGasUsedUInt64Cumulative gas used in the block up to and including this transaction
Receipt_GasUsedUInt64Gas used by this transaction alone
Receipt_PostStateStringPost-state root, for pre-Byzantium style receipts; usually empty
Receipt_StatusUInt64Receipt status: 1 succeeded, 0 failed
Receipt_TypeUInt32Receipt type, mirroring the transaction type
Signature3
Signature_RStringR component of the ECDSA signature, hex
Signature_SStringS component of the ECDSA signature, hex
Signature_VStringV component of the ECDSA signature, hex
Transaction19
Transaction_CallCountUInt32Number of call frames the transaction produced, the top-level call included. Join to the calls table on Transaction_Hash to read them
Transaction_CostStringTotal cost of the transaction, value plus fee, as a decimal string
Transaction_CostInUSDFloat64Total cost in USD
Transaction_DataStringRaw calldata of the transaction, hex
Transaction_FromStringAddress that signed the transaction, 0x-prefixed
Transaction_GasUInt64Gas limit the sender set
Transaction_GasFeeCapStringEIP-1559 max fee per gas, as a decimal string
Transaction_GasPriceStringGas price the sender offered, as a decimal string
Transaction_GasPriceInUSDFloat64Offered gas price in USD
Transaction_GasTipCapStringEIP-1559 max priority fee per gas, as a decimal string
Transaction_HashStringTransaction hash, 0x-prefixed. The join key across every table
Transaction_IndexUInt64Position of the transaction within the block
Transaction_NonceUInt64Sender's nonce
Transaction_ProtectedStringWhether the signature is EIP-155 replay protected; true or false
Transaction_TimeDateTimeTimestamp of the transaction, UTC; equal to the block time
Transaction_ToStringAddress the transaction called; the string 0x for a contract deployment
Transaction_TypeUInt32EIP-2718 transaction type: 0 legacy, 1 access list, 2 EIP-1559, 3 blob, 4 EIP-7702
Transaction_ValueStringNative BNB sent with the transaction, decimal adjusted, as a decimal string
Transaction_ValueInUSDFloat64That value in USD at the block's hourly BNB price
Transaction_ToCode3
Transaction_ToCode_HashStringCode hash of the called address; empty when it is an externally owned account
Transaction_ToCode_SizeInt32Bytecode size of the called address, in bytes; 0 for an externally owned account
Transaction_ToCode_SuicidedStringWhether the called contract has self-destructed; true or false
TransactionStatus3
TransactionStatus_EndErrorStringError the transaction ended with; empty when it succeeded
TransactionStatus_FaultErrorStringFault-level error raised during execution; empty when none
TransactionStatus_SuccessStringWhether the transaction succeeded; true or false
Sample file
calls41 columnsOne row per call frame, internal calls included, with decoded signature, arguments, returns, gas and state changes.
ColumnTypeDescription
Other3
ArgumentsStringDecoded call arguments as a JSON array, when the signature resolved; empty otherwise
ReturnsStringDecoded return values as JSON, when the signature resolved; empty otherwise
StateChangesStringStorage and balance changes the frame produced, as JSON
Block3
Block_DateDateUTC date of the block
Block_NumberUInt64Block height
Block_TimeDateTimeBlock timestamp, UTC
Call24
Call_CallPathArrayPath of call indexes from the transaction root down to this frame, as an array of integers
Call_CallerIndexInt32Call_Index of the calling frame; -1 for the top-level call
Call_CreateStringWhether this frame deployed a contract; true or false
Call_DelegatedStringWhether the frame ran through delegatecall, as proxies do; true or false
Call_DepthUInt32Nesting depth, 0 for the top-level call
Call_EnterIndexUInt32Order in which the frame was entered within the transaction
Call_ErrorStringError the call returned; empty on success
Call_ExitIndexUInt32Order in which the frame was exited
Call_FromStringCalling address, 0x-prefixed
Call_GasUInt64Gas supplied to the call
Call_GasUsedUInt64Gas consumed by this call and everything beneath it
Call_IndexUInt32Position of the frame within the transaction. Events reference it to name the frame that emitted a log
Call_InputStringRaw calldata passed to the frame, hex
Call_InternalCallsUInt32Number of calls made beneath this frame
Call_LogCountUInt32Number of logs this frame emitted
Call_Opcode_CodeUInt32Numeric opcode that produced the frame
Call_Opcode_NameStringOpcode name, for example CALL, DELEGATECALL, STATICCALL, CREATE or CREATE2
Call_OutputStringRaw return data, hex
Call_RevertedStringWhether the frame reverted; true or false. A frame can revert inside a transaction that succeeded
Call_SelfDestructStringWhether the called contract self-destructed; true or false
Call_SuccessStringWhether the frame succeeded; true or false
Call_ToStringCalled address, 0x-prefixed
Call_ValueStringNative BNB sent with the call, decimal adjusted, as a decimal string
Call_ValueInUSDFloat64That value in USD at the block's hourly BNB price; 0 when the value is 0
Call_Signature6
Call_Signature_AbiStringABI fragment for the resolved function; empty when the selector is unknown
Call_Signature_NameStringFunction name, when resolved
Call_Signature_ParsedStringHuman-readable form of the call: function name with argument values filled in
Call_Signature_SignatureStringCanonical function signature, for example transfer(address,uint256)
Call_Signature_SignatureHashStringFour-byte function selector, hex
Call_Signature_SignatureTypeStringHow the signature was resolved, for example from a verified ABI or a public selector registry
Transaction2
Transaction_HashStringHash of the containing transaction, 0x-prefixed. The join key
Transaction_IndexUInt64Position of the transaction within the block
TransactionStatus3
TransactionStatus_EndErrorStringError the parent transaction ended with; empty when it succeeded
TransactionStatus_FaultErrorStringFault-level error on the parent transaction; empty when none
TransactionStatus_SuccessStringWhether the parent transaction succeeded; true or false
Sample file
events45 columnsOne row per log, with the decoded event signature, topics, raw data and the call frame that emitted it.
ColumnTypeDescription
Other2
ArgumentsStringDecoded event arguments as a JSON array, when the signature resolved; empty otherwise
ChainIdUInt64EVM chain id; 56 for BNB Smart Chain mainnet
Block3
Block_DateDateUTC date of the block
Block_NumberUInt64Block height
Block_TimeDateTimeBlock timestamp, UTC
Call13
Call_CallPathArrayPath of call indexes from the transaction root down to the emitting frame
Call_CallerIndexInt32Call_Index of the frame that called the emitting frame; -1 at the top level
Call_CreateStringWhether the emitting frame deployed a contract; true or false
Call_ErrorStringError the emitting frame returned; empty on success
Call_FromStringCaller of the emitting frame, 0x-prefixed
Call_GasUInt64Gas supplied to the emitting frame
Call_GasUsedUInt64Gas consumed by the emitting frame and everything beneath it
Call_IndexUInt32Position of the emitting frame within the transaction; join to calls on this plus Transaction_Hash
Call_InternalCallsUInt32Number of calls made beneath the emitting frame
Call_RevertedStringWhether the emitting frame reverted; true or false
Call_SelfDestructStringWhether the emitting contract self-destructed; true or false
Call_ToStringAddress the emitting frame called, 0x-prefixed
Call_ValueStringNative BNB sent with the emitting frame, decimal adjusted
Call_Signature5
Call_Signature_AbiStringABI fragment of the function the emitting frame ran
Call_Signature_NameStringName of that function, when resolved
Call_Signature_SignatureStringCanonical signature of that function
Call_Signature_SignatureHashStringFour-byte selector of that function, hex
Call_Signature_SignatureTypeStringHow that function signature was resolved
Fee1
Fee_SenderFeeStringNetwork fee the sender paid for the whole transaction, in BNB. It repeats on every log of the transaction, so count it once per transaction
Log11
Log_EnterIndexUInt32Enter index of the emitting frame
Log_ExitIndexUInt32Exit index of the emitting frame
Log_IndexUInt32Position of the log within the transaction
Log_LogAfterCallIndexUInt32Index of the last call frame entered before this log, for ordering logs against calls
Log_PcUInt64Program counter at which the log opcode ran
Log_Signature_AbiStringABI fragment for the resolved event; empty when the topic is unknown
Log_Signature_NameStringEvent name, for example Transfer or Swap, when resolved
Log_Signature_SignatureStringCanonical event signature, for example Transfer(address,address,uint256)
Log_Signature_SignatureHashStringKeccak hash of the event signature, hex; the same value as topic 0
Log_Signature_SignatureTypeStringHow the event signature was resolved
Log_SmartContractStringContract that emitted the log, 0x-prefixed. Filter on this for one contract's events
LogHeader4
LogHeader_AddressStringAddress recorded in the log header, 0x-prefixed
LogHeader_DataStringRaw non-indexed log data, hex
LogHeader_IndexUInt64Index of the log within the block, as the receipt records it
LogHeader_RemovedStringWhether the log was removed by a reorg; true or false
Topics1
Topics_HashArrayIndexed topics of the log, as an array of hex strings; the first is the event signature hash
Transaction4
Transaction_FromStringAddress that signed the transaction, 0x-prefixed
Transaction_HashStringHash of the containing transaction, 0x-prefixed. The join key
Transaction_IndexUInt64Position of the transaction within the block
Transaction_ToStringAddress the transaction called, 0x-prefixed
TransactionStatus1
TransactionStatus_SuccessStringWhether the transaction succeeded; true or false
Sample file
transfers24 columnsOne row per native BNB or token transfer on BNB Smart Chain, with sender, receiver, token metadata and a USD value where a price exists.
ColumnTypeDescription
Block3
Block_DateDateUTC date of the block
Block_NumberUInt64Block height
Block_TimeDateTimeBlock timestamp, UTC
Fee1
Fee_SenderFeeStringNetwork fee the sender paid for the whole transaction, in BNB, as a decimal string. It repeats on every row of the transaction, so count it once per transaction
Transaction3
Transaction_HashStringHash of the transaction this row settled in, 0x-prefixed; the join key to transactions and logs
Transaction_IndexUInt64Position of the transaction within the block
Transaction_TypeUInt32EIP-2718 transaction type: 0 legacy, 1 access list, 2 EIP-1559, 3 blob, 4 EIP-7702
TransactionStatus1
TransactionStatus_SuccessStringWhether the transaction succeeded; the string true or false. Failed transactions are kept
Transfer16
Transfer_AmountStringAmount moved, decimal adjusted, as a decimal string with exactly as many places as the token has decimals. Multiply by 10 to the power of the decimals for the raw on-chain integer
Transfer_AmountInUSDFloat64Amount valued in USD at the hourly price for the block's hour; 0 when the amount is 0 or the token has no price
Transfer_Currency_DecimalsInt32Decimals of the transferred currency, as its contract reports them
Transfer_Currency_DelegatedToStringImplementation address for proxy tokens; the string 0x when there is none
Transfer_Currency_FungibleStringWhether the currency is fungible; the string true or false, and false for NFTs
Transfer_Currency_NameStringName reported by the contract; lookalike tokens copy real names
Transfer_Currency_NativeStringtrue for native BNB, false for tokens. Filter on this column to separate BNB movement from token movement
Transfer_Currency_ProtocolNameStringToken standard, for example erc20 or erc721; empty for native BNB
Transfer_Currency_SmartContractStringContract of the transferred token, 0x-prefixed; the string 0x for native BNB
Transfer_Currency_SymbolStringSymbol reported by the contract; repeats across tokens, so join on the contract address
Transfer_IdStringToken id for NFT transfers; the string 0 for fungible transfers
Transfer_IndexUInt32Position within the transaction. Several rows in one transaction can share it
Transfer_SenderStringSending address, 0x-prefixed
Transfer_ReceiverStringReceiving address, 0x-prefixed
Transfer_TypeStringtoken for token transfers, transaction for a plain BNB send, call for BNB moved by a contract in an internal call
Transfer_URIStringMetadata URI for NFT transfers; empty otherwise
Sample file
dex_trades54 columnsOne row per DEX swap on BNB Smart Chain, with both sides, pool and protocol, fees, transaction details and a USD value where a price exists.
ColumnTypeDescription
Block3
Block_DateDateUTC date of the block
Block_NumberUInt64Block height
Block_TimeDateTimeBlock timestamp, UTC
Fee1
Fee_SenderFeeStringNetwork fee the sender paid for the whole transaction, in BNB, as a decimal string. It repeats on every row of the transaction, so count it once per transaction
Trade_Buy15
Trade_Buy_AmountStringAmount bought, decimal adjusted, as a decimal string with exactly as many places as the token has decimals; for NFTs, the number of items
Trade_Buy_AmountInUSDFloat64USD value of the swap at the block's hourly price, set from its best-priced side and the same on both sides; 0 when neither side has a price
Trade_Buy_BuyerStringAddress that received the bought currency, usually a router or the trader
Trade_Buy_Currency_DecimalsInt32Decimals of the bought token, as its contract reports them
Trade_Buy_Currency_FungibleStringWhether the bought token is fungible; true or false, and false for NFTs
Trade_Buy_Currency_HasURIStringWhether the bought token carries a metadata URI; true or false
Trade_Buy_Currency_NameStringName reported by the bought token's contract; lookalike tokens copy real names
Trade_Buy_Currency_ProtocolNameStringToken standard on the bought side, for example erc20 or erc1155; empty for native BNB
Trade_Buy_Currency_SmartContractStringContract of the bought token, 0x-prefixed; the string 0x for native BNB
Trade_Buy_Currency_SymbolStringSymbol reported by the bought token's contract; not unique, so join on the contract
Trade_Buy_IdsArrayToken ids bought, as strings; empty for fungible tokens
Trade_Buy_OrderIdStringOrder id for order-book and marketplace trades such as Seaport, hex without 0x; empty for pool swaps. The same value on both sides
Trade_Buy_PriceFloat64Price of the bought currency in units of the sold currency
Trade_Buy_PriceInUSDFloat64USD price of one unit of the bought currency: the swap's USD value divided by the bought amount, so per item for NFTs; 0 when unpriced
Trade_Buy_SellerStringAddress that sent the bought currency, usually the pool
Trade_Dex10
Trade_Dex_DelegatedStringtrue when the pool ran through a delegate call, as proxy and clone pools do, else false; the implementation address is not included
Trade_Dex_OwnerAddressStringFactory or owner the index records for the pool, 0x-prefixed; the string 0x when none. Use it to tell forks apart
Trade_Dex_Pair_DecimalsInt32Decimals of the pool's own LP token; 0 when the pool has none, as in v3 and v4
Trade_Dex_Pair_NameStringName of the pool's own LP token, for example Uniswap V2; empty for v3, v4 and other pools without one
Trade_Dex_Pair_SmartContractStringPool token contract for v2-style pools, 0x-prefixed; the string 0x otherwise, where Trade_Dex_SmartContract or Trade_PoolId names the pool
Trade_Dex_Pair_SymbolStringSymbol of the pool's own LP token, for example UNI-V2; not unique
Trade_Dex_ProtocolFamilyStringProtocol family, for example Uniswap, PancakeSwap, PancakeSwapInfinity, Flap or FourMeme. Filter this column to keep or drop a venue
Trade_Dex_ProtocolNameStringProtocol and version as indexed, for example uniswap_v3 or seaport_v1.4. It names the pool design, so forks can share it
Trade_Dex_ProtocolVersionStringProtocol version string
Trade_Dex_SmartContractStringContract that emitted the swap, 0x-prefixed: the pool for v2 and v3 designs, the shared PoolManager for Uniswap v4 and PancakeSwap Infinity, the exchange for marketplaces
Trade5
Trade_FeesStringFees charged on the swap as a JSON array of [amount, amountInUSD, [decimals, name, token standard, contract hex, symbol], payer, recipient]; the USD value is set when the fee token is one side of the swap; [] when none
Trade_IndexUInt32Position of the swap within the transaction
Trade_PoolIdString32-byte pool id, 0x-prefixed, for Uniswap v4 and PancakeSwap Infinity, whose pools share one contract; empty for other protocols
Trade_SenderStringAddress that called the pool, often a router or aggregator
Trade_SuccessStringWhether this swap succeeded; true or false. A swap can fail inside a successful transaction, so filter on this column
Trade_Sell15
Trade_Sell_AmountStringAmount sold, decimal adjusted, as a decimal string with exactly as many places as the token has decimals; for NFTs, the number of items
Trade_Sell_AmountInUSDFloat64USD value of the swap at the block's hourly price, set from its best-priced side and the same on both sides; 0 when neither side has a price
Trade_Sell_BuyerStringAddress that received the sold currency, usually the pool
Trade_Sell_Currency_DecimalsInt32Decimals of the sold token, as its contract reports them
Trade_Sell_Currency_FungibleStringWhether the sold token is fungible; true or false, and false for NFTs
Trade_Sell_Currency_HasURIStringWhether the sold token carries a metadata URI; true or false
Trade_Sell_Currency_NameStringName reported by the sold token's contract; lookalike tokens copy real names
Trade_Sell_Currency_ProtocolNameStringToken standard on the sold side, for example erc20 or erc1155; empty for native BNB
Trade_Sell_Currency_SmartContractStringContract of the sold token, 0x-prefixed; the string 0x for native BNB
Trade_Sell_Currency_SymbolStringSymbol reported by the sold token's contract; not unique, so join on the contract
Trade_Sell_IdsArrayToken ids sold, as strings; empty for fungible tokens
Trade_Sell_OrderIdStringOrder id for order-book and marketplace trades such as Seaport, hex without 0x; empty for pool swaps. The same value on both sides
Trade_Sell_PriceFloat64Price of the sold currency in units of the bought currency
Trade_Sell_PriceInUSDFloat64USD price of one unit of the sold currency: the swap's USD value divided by the sold amount, so per item for NFTs; 0 when unpriced
Trade_Sell_SellerStringAddress that sent the sold currency, usually a router or the trader
Transaction4
Transaction_FromStringAddress that signed the transaction: the trader behind any router
Transaction_HashStringHash of the transaction, 0x-prefixed; the join key to transfers and logs
Transaction_IndexUInt64Position of the transaction within the block
Transaction_ToStringContract the transaction called, often a router
TransactionStatus1
TransactionStatus_SuccessStringWhether the transaction succeeded; true or false
Sample file
miner_rewards27 columnsOne row per block, splitting the validator's take into static, dynamic, transaction-fee and burnt components.
ColumnTypeDescription
Block12
Block_NumberUInt64Block height
Block_TimeDateTimeBlock timestamp, UTC
Block_TxCountUInt32Number of transactions in the block
Block_RootStringState root after the block
Block_UnclesCountUInt32Number of uncles; always 0 on BSC
Block_TxHashStringRoot of the transactions trie
Block_GasUsedUInt64Total gas used by the block
Block_BaseFeeStringBase fee per gas of the block, in BNB, as a decimal string
Block_CoinbaseStringValidator credited with the block, 0x-prefixed
Block_GasLimitUInt64Gas limit of the block
Block_DateDateUTC date of the block
Block_HashStringBlock hash, 0x-prefixed
Reward12
Reward_BurntFeesStringBNB burnt by the base fee across the block, as a decimal string
Reward_BurntFeesInUSDFloat64Burnt fees in USD at the block's hourly BNB price
Reward_DynamicInUSDFloat64Dynamic reward component in USD
Reward_DynamicStringDynamic reward component, as a decimal string
Reward_StaticStringFixed block subsidy, as a decimal string. BSC pays no protocol subsidy, so this is 0
Reward_StaticInUSDFloat64Static reward in USD
Reward_TotalStringTotal reward credited for the block, as a decimal string
Reward_TotalInUSDFloat64Total reward in USD
Reward_TxFeesStringTransaction fees paid to the validator, as a decimal string. On BSC this is effectively the whole reward
Reward_TxFeesInUSDFloat64Transaction fees in USD
Reward_UncleInUSDFloat64Uncle reward in USD; always 0 on BSC
Reward_UncleStringUncle reward, as a decimal string; always 0 on BSC
Uncle2
Uncle_Block_NumberUInt64Block height of the uncle; always 0 on BSC
Uncle_IndexUInt32Index of the uncle; always 0 on BSC
Other1
ChainIdUInt64EVM chain id; 56 for BNB Smart Chain mainnet
Sample file

Ask an AI about this data

Send this dataset’s full schema to an assistant and ask it anything. It reads the plain-text brief first, so the answer comes from the real column list rather than a guess.

Start with

Opens a new chat with the question filled in. Nothing about you is sent to Bitquery, and the assistant sees only the public brief.

Delivery

Parquet files in a Requester Pays S3 bucket or a Cloudflare R2 bucket, chosen at checkout. On S3 you download with your own AWS account and AWS bills the transfer; on R2 you download with a read-only API key and pay no egress. Layout:

# blocks: 50 blocks per file, sorted ascending
bsc/blocks<start_block>_<end_block>.parquet

# transactions: 50 blocks per file, sorted ascending
bsc/transactions<start_block>_<end_block>.parquet

# calls: 50 blocks per file, sorted ascending
bsc/calls<start_block>_<end_block>.parquet

# events: 50 blocks per file, sorted ascending
bsc/events<start_block>_<end_block>.parquet

# transfers: 50 blocks per file, sorted ascending
bsc/transfers<start_block>_<end_block>.parquet

# dex_trades: 50 blocks per file, sorted ascending
bsc/dex_trades<start_block>_<end_block>.parquet

# miner_rewards: 50 blocks per file, sorted ascending
bsc/miner_rewards<start_block>_<end_block>.parquet
  1. Download a free sampleNo email needed.
  2. Pay nowName, work email and licence check.
  3. Pay the invoiceBy card or bank transfer.
  4. Download from S3 or R2The team prepares the export and emails the bucket path, plus a read-only API key for R2 orders.

Time windows

Every window includes all 7 tables and 268 columns. Only the time range changes.

30 days
Latest month
Sep 4, 2026 → Oct 4, 2026
$700
Pay now
365 days
Last 12 months
Oct 4, 2025 → Oct 4, 2026
$4,000
Pay now
730 days
Last 24 months
Oct 4, 2024 → Oct 4, 2026
$8,000
Pay now
2,227 days
Full history
Aug 29, 2020 → Oct 4, 2026
$20,000
Pay now
In every window
  • All 7 tables, 268 columns
  • Parquet files in the layout under Delivery
  • S3 or R2 download, chosen at checkout
  • Licensed under the Data License

FAQ

15 questions
What is included in the BSC dataset?

Seven Parquet tables with 268 documented columns in total: blocks (22), transactions (55), calls (41), events (45), transfers (24), dex_trades (54) and miner_rewards (27). Each purchase covers the window you choose, through to yesterday, refreshed daily. The Full tier starts at the genesis block of 29 August 2020.

How far back does the full history go, and why buy it?

To block 0 on 29 August 2020. Most of BSC's research-relevant history sits in the full archive: the PancakeSwap boom of 2021, the memecoin launchpad cycles, and the block-time reductions that took the chain from three-second blocks to sub-second ones. A baseline before those shifts, a long backtest, or a contract's deployment-to-present history needs the full archive rather than a recent slice.

How large is the full dataset?

The largest tier by a wide margin, and calls and events dominate it; both carry several rows per transaction, where transfers and dex_trades carry one per movement. We size it per table before delivery and send you the exact figures with the manifest, so you can plan storage before downloading. If calls and events are more than you need, we can quote the other five tables on their own.

How do the tables join?

On Transaction_Hash, which appears in every table except blocks and miner_rewards; those join on Block_Number. Within a transaction, Call_Index orders the call frames, Log_Index orders the logs, Transfer_Index orders the transfers and Trade_Index orders the swaps. A log points back to the frame that emitted it through Call_Index.

What is deliberately not in this dataset?

Balance updates. The chain-wide balance_updates table exists in our store but is not part of this bundle, because it carries several rows per transfer and would dominate the size. If you need it, ask and we will quote it alongside this one.

Does BSC have uncles? The schema has uncle columns.

No. Parlia consensus produces no uncle blocks, so Block_UnclesCount is 0 on every block, Block_UncleHash is the empty-list hash, and Reward_Uncle, Uncle_Block_Number and Uncle_Index in miner_rewards are 0 throughout. The columns exist because the schema is shared with chains that do have uncles; they are kept so a query written against one EVM chain runs unchanged here.

Which DEXes are in dex_trades?

Every venue we decode on BSC, in one table, identified by Trade_Dex_ProtocolFamily and Trade_Dex_ProtocolName on each row. In the sample window the families present were Uniswap, PancakeSwap, PancakeSwap Infinity, Flap and Four.meme, whose bonding-curve trades are decoded as swaps. Filter the family column to keep or drop a venue.

What does Block_Difficulty mean on a chain without mining?

On BSC it is a consensus signal, not a mining figure: 2 when the block was sealed by the validator whose turn it was, 1 when an out-of-turn validator stepped in. Reading it as difficulty gives nonsense; reading it as a liveness indicator per validator is useful.

How much of it is valued in USD?

Only currencies with an hourly price series are valued, and the dataset says so rather than filling the gap: a USD value of 0 means either a zero-value row or no price, and the column cannot tell the two apart. DEX trades are priced from the safer side of the swap, so most swaps with a stablecoin or BNB on one side carry a value; transfers of long-tail and spam tokens mostly do not.

Are failed transactions included?

Yes, throughout, and the export applies no filter of its own. TransactionStatus_Success carries the transaction's outcome on every table that has it, and dex_trades additionally carries Trade_Success, because a single swap can fail inside a transaction that succeeded. Spam tokens, zero-value rows and lookalike contracts are all kept too; the columns let you drop what you do not want.

How do I get one contract's activity?

Filter Call_To in calls and Log_SmartContract in events to the contract, lower case with 0x. For token flow, filter Transfer_Currency_SmartContract in transfers. Join on contract addresses rather than symbols or names; both repeat, and lookalike tokens copy them deliberately.

How are amounts and booleans encoded?

Amounts are decimal-adjusted decimal strings, carrying exactly as many places as the token has decimals; multiply by ten to the power of the decimals for the raw on-chain integer. Casting to float loses precision on large values. Booleans are the strings true and false, not 0 and 1, in every column.

How do I load it?

One line in DuckDB: SELECT * FROM read_parquet('transfers/*.parquet') LIMIT 10. Pandas works too: pandas.read_parquet(path). The sample files open without credentials.

How is the data delivered, and how current is it?

As flat Parquet named by block range, 50 blocks per file and sorted ascending, 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. Enterprise orders can be delivered into your own S3, GCS or R2 bucket. Refreshed daily with T+1 latency, so a purchase made today includes everything to yesterday.

Can I try before I buy?

Yes. Each table links to a public sample file with real records, and the sample bucket holds full Parquet files you can load directly. No email address required.