BitqueryBitqueryData Store
Solana logoSolanaBlocksTransactionsTransfersTradesPoolsOrdersRewards

Solana

The last 12 months of Solana as flat Parquet at slot resolution: blocks, transactions, SOL and token transfers, DEX swaps, pool events and order-book events on all indexed programs, and block rewards.

Coverage
Last 12 monthsto Oct 4, 2026 · yesterday
Tables
7Parquet, one prefix each
Columns
300across 7 tables
Coverage ends yesterday, UTC

Overview

Seven flat Parquet tables covering the last twelve months of Solana at slot resolution: blocks, transactions, transfers, dex_trades, dex_pools, dex_orders and rewards. Every table carries Block_Slot and Block_Time, and every table but blocks and rewards carries Transaction_Signature, so they join without a lookup table.

Solana's data model is not the EVM's, and the schema follows the chain. Transfers name both the token account and the wallet that owns it, so you do not need to resolve token accounts yourself. Trades, pools and orders carry the program address and protocol family on every row, so one filter slices the whole market down to any venue.

Row-level Solana history is held for the last twelve months on a rolling basis, so this dataset is sold as 1, 6 and 12 month windows and has no full-history tier. Addresses are base58, amounts are decimal strings adjusted from lamports or the token's decimals, and the S3 prefix is solana/.

Use cases

  • Whole-chain analytics without running a Solana RPC node or replaying ledger history
  • Token flow and wallet activity across all programs, with token-account owners resolved on each transfer
  • Whole-market DEX research: swaps, pool reserves and order-book events across all indexed venues in one schema
  • Validator and fee economics from per-block rewards and per-transaction fees

7 tables

300 columns · free sample for each table

blocks

9 columns

One row per Solana block, with slot, height, parent slot, hash and reward count.

solana/blocks<start_slot>_<end_slot>.parquet50 slots per file, sorted ascending
Browse columns Sample fileSample updated Jan 2, 2026

transactions

17 columns

One row per Solana transaction, with signer, fee, result, the accounts loaded and instruction and balance-change counts.

solana/transactions<start_slot>_<end_slot>.parquet50 slots per file, sorted ascending
Browse columns Sample fileSample updated Jan 2, 2026

transfers

47 columns

One row per SOL or SPL token transfer, with sending and receiving token accounts and their owners, token metadata and a USD value where a price exists.

solana/transfers<start_slot>_<end_slot>.parquet50 slots per file, sorted ascending
Browse columns Sample fileSample updated Jan 2, 2026

dex_trades

82 columns

One row per swap on an indexed Solana DEX program, with buy and sell sides, venue identifiers, token metadata and USD pricing.

solana/dex_trades<start_slot>_<end_slot>.parquet50 slots per file, sorted ascending
Browse columns Sample fileSample updated Jan 2, 2026

dex_pools

64 columns

One row per pool or market state change on an indexed Solana DEX program, with the change amount and the resulting balance for both sides, USD-valued at block time.

solana/dex_pools<start_slot>_<end_slot>.parquet50 slots per file, sorted ascending
Browse columns Sample fileSample updated Jan 2, 2026

dex_orders

63 columns

One row per order-book event on indexed Solana order-book programs, NFT marketplaces such as Magic Eden included, with the market, both currencies, side, size and limit price.

solana/dex_orders<start_slot>_<end_slot>.parquet50 slots per file, sorted ascending
Browse columns Sample fileSample updated Jan 2, 2026

rewards

18 columns

One row per reward paid in a block: the leader's fee reward on every block, and staking, voting and rent rewards where the chain records them.

solana/rewards<start_slot>_<end_slot>.parquet50 slots per file, sorted ascending
Browse columns Sample fileSample updated Jan 2, 2026

Schema reference

copies a column name
300 columns
blocks9 columnsOne row per Solana block, with slot, height, parent slot, hash and reward count.
ColumnTypeDescription
Block_DateDateUTC date of the block
Block_HashStringBlock hash, base58
Block_HeightUInt64Count of blocks produced before this one; lower than the slot because some slots are skipped
Block_ParentHashStringHash of the parent block, base58
Block_ParentSlotUInt64Slot of the parent block; lower than Block_Slot minus one when slots were skipped
Block_RewardsCountUInt32Reward records attached to the block
Block_SlotUInt64Slot number of the block; delivered files are split by slot range
Block_TimeDateTimeBlock timestamp, UTC
Block_TxCountUInt32Transactions in the block
Sample file
transactions17 columnsOne row per Solana transaction, with signer, fee, result, the accounts loaded and instruction and balance-change counts.
ColumnTypeDescription
Block_DateDateUTC date of the block
Block_HeightUInt64Count of blocks produced before this one; lower than the slot because some slots are skipped
Block_SlotUInt64Slot number of the block; delivered files are split by slot range
Block_TimeDateTimeBlock timestamp, UTC
Transaction_AccountsStringAccounts the transaction loaded, as a JSON array of address, is-signer flag and token metadata
Transaction_BalanceUpdatesCountUInt32SOL balance changes caused by the transaction
Transaction_FeeStringNetwork fee paid, in SOL
Transaction_FeeInUSDFloat64Network fee, in USD
Transaction_FeePayerStringWallet that paid the network fee; Solana makes it the first signer
Transaction_IndexUInt32Position of the transaction within the block
Transaction_InstructionsCountUInt32Instructions in the transaction, inner instructions included
Transaction_RecentBlockhashStringRecent blockhash the transaction was signed against, base58
Transaction_Result_ErrorMessageStringError the runtime returned when the transaction failed; empty on success
Transaction_Result_SuccessStringWhether the transaction succeeded
Transaction_SignatureStringTransaction signature, base58
Transaction_SignerStringWallet that signed the transaction and paid its fee
Transaction_TokenBalanceUpdatesCountUInt32Token account balance changes caused by the transaction
Sample file
transfers47 columnsOne row per SOL or SPL token transfer, with sending and receiving token accounts and their owners, token metadata and a USD value where a price exists.
ColumnTypeDescription
Block4
Block_DateDateUTC date of the block
Block_HeightUInt64Count of blocks produced before this one; lower than the slot because some slots are skipped
Block_SlotUInt64Slot number of the block; delivered files are split by slot range
Block_TimeDateTimeBlock timestamp, UTC
Instruction7
Instruction_CallPathArrayInstruction_Index values of the parent instructions; empty on a top-level instruction
Instruction_ExternalSeqNumberUInt32Number of the top-level instruction this row falls under, counting from 1
Instruction_IndexUInt32Position of the instruction in the transaction, counting inner instructions
Instruction_InternalSeqNumberUInt32Position under its top-level instruction, counting from 1; 0 on a top-level instruction
Instruction_Program_AddressStringProgram that executed the instruction
Instruction_Program_MethodStringDecoded instruction name, for example swap, buy or route
Instruction_Program_NameStringDecoded program name
Transaction8
Transaction_FeeStringNetwork fee paid, in SOL
Transaction_FeeInUSDFloat64Network fee, in USD
Transaction_FeePayerStringWallet that paid the network fee; Solana makes it the first signer
Transaction_IndexUInt32Position of the transaction within the block
Transaction_Result_ErrorMessageStringError the runtime returned when the transaction failed; empty on success
Transaction_Result_SuccessStringWhether the transaction succeeded
Transaction_SignatureStringTransaction signature, base58
Transaction_SignerStringWallet that signed the transaction and paid its fee
Transfer8
Transfer_AmountStringAmount transferred, decimal adjusted, as a decimal string. Multiply by 10^Transfer_Currency_Decimals for the raw on-chain integer
Transfer_AmountInUSDFloat64Amount valued in USD at the hourly price for the block's hour; 0 for tokens with no price
Transfer_Authority_AddressStringAccount that authorised the transfer, usually the token account owner or its delegate
Transfer_IndexUInt32Position of the transfer within the transaction
Transfer_Receiver_AddressStringReceiving token account, base58; for SOL the receiving wallet
Transfer_Receiver_Token_OwnerStringWallet that owns the receiving token account; the address you usually want
Transfer_Sender_AddressStringSending token account, base58; for SOL the sending wallet
Transfer_Sender_Token_OwnerStringWallet that owns the sending token account; the address you usually want
Transfer_Currency20
Transfer_Currency_CollectionAddressStringNFT collection of the transferred token; empty for fungible tokens
Transfer_Currency_DecimalsUInt32Decimals of the transferred token
Transfer_Currency_EditionNonceUInt32Metaplex edition bump seed of the transferred token; a technical value, 0 when unset
Transfer_Currency_FungibleStringWhether the transferred token is fungible; the string true or false
Transfer_Currency_IsMutableStringWhether the transferred token's metadata can still be changed; the string true or false
Transfer_Currency_KeyStringMetaplex metadata account type of the transferred token, such as MetadataV1
Transfer_Currency_MetadataAddressStringMetaplex metadata account of the transferred token, when recorded
Transfer_Currency_MintAddressStringMint address of the transferred token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped)
Transfer_Currency_NameStringName of the transferred token
Transfer_Currency_NativeStringtrue for SOL, false for every SPL token; the string true or false
Transfer_Currency_PrimarySaleHappenedStringWhether the transferred token's first sale has happened, from Metaplex metadata; the string true or false
Transfer_Currency_ProgramAddressStringProgram that owns the transferred token's mint, SPL Token or Token-2022, when recorded
Transfer_Currency_SellerFeeBasisPointsUInt32Creator royalty on the transferred token in basis points (100 = 1%); 0 for nearly all fungible coins
Transfer_Currency_SymbolStringSymbol of the transferred token; reported by the token metadata, not unique
Transfer_Currency_TokenCreator_AddressArrayCreator wallets from the transferred token's metadata; mostly empty in this table
Transfer_Currency_TokenStandardStringMetaplex standard of the transferred token, such as Fungible or FungibleAsset, when recorded
Transfer_Currency_UpdateAuthorityStringAccount that can change the transferred token's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL
Transfer_Currency_UriStringLink to the transferred token's off-chain metadata file, often on IPFS or Arweave
Transfer_Currency_VerifiedCollectionStringWhether the transferred token's NFT collection is verified; false for fungible tokens
Transfer_Currency_WrappedStringWhether the transferred token is wrapped SOL; the string true or false
Sample file
dex_trades82 columnsOne row per swap on an indexed Solana DEX program, with buy and sell sides, venue identifiers, token metadata and USD pricing.
ColumnTypeDescription
Block4
Block_DateDateUTC date of the block
Block_HeightUInt64Count of blocks produced before this one; lower than the slot because some slots are skipped
Block_SlotUInt64Slot number of the block; delivered files are split by slot range
Block_TimeDateTimeBlock timestamp, UTC
Instruction7
Instruction_CallPathArrayInstruction_Index values of the parent instructions; empty on a top-level instruction
Instruction_ExternalSeqNumberUInt32Number of the top-level instruction this row falls under, counting from 1
Instruction_IndexUInt32Position of the instruction in the transaction, counting inner instructions
Instruction_InternalSeqNumberUInt32Position under its top-level instruction, counting from 1; 0 on a top-level instruction
Instruction_Program_AddressStringProgram that executed the instruction
Instruction_Program_MethodStringDecoded instruction name, for example swap, buy or route
Instruction_Program_NameStringDecoded program name
Trade_Buy29
Trade_Buy_Account_AddressStringToken account that received the bought tokens; empty on nearly all DFlow rows, and a plain wallet on some native SOL rows
Trade_Buy_Account_Token_OwnerStringWallet that owns the receiving token account; often the signer, and often empty
Trade_Buy_AmountStringAmount bought, decimal adjusted
Trade_Buy_AmountInUSDFloat64Amount bought, in USD; 0 when unpriced or when only the sold side was valued, then use Trade_Buy_Amount × Trade_Buy_PriceInUSD
Trade_Buy_Currency_CollectionAddressStringNFT collection of the bought asset; empty for fungible tokens
Trade_Buy_Currency_DecimalsUInt32Decimal places of the bought token, as its mint sets them
Trade_Buy_Currency_EditionNonceUInt32Metaplex edition bump seed; a technical value, 0 when unset
Trade_Buy_Currency_FungibleStringWhether the bought asset is fungible; false for NFTs
Trade_Buy_Currency_MetadataAddressStringMetaplex metadata account of the bought asset, when recorded
Trade_Buy_Currency_MintAddressStringMint address of the bought token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped)
Trade_Buy_Currency_NameStringName from the bought token's metadata; lookalikes copy real names
Trade_Buy_Currency_ProgramAddressStringProgram that owns the bought mint, SPL Token or Token-2022, when recorded
Trade_Buy_Currency_SellerFeeBasisPointsUInt32Creator royalty in basis points (100 = 1%); 0 for nearly all fungible coins
Trade_Buy_Currency_SymbolStringTicker of the bought token; not unique, so join on the mint address
Trade_Buy_Currency_TokenCreator_AddressArrayCreator wallets from the bought asset's metadata; mostly empty in this table
Trade_Buy_Currency_TokenStandardStringMetaplex standard, such as Fungible or FungibleAsset, when recorded
Trade_Buy_Currency_UriStringLink to the bought asset's off-chain metadata file, often on IPFS or Arweave
Trade_Buy_Currency_UpdateAuthorityStringAccount that can change the bought asset's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL
Trade_Buy_Currency_VerifiedCollectionStringWhether the NFT collection is verified; false for fungible tokens
Trade_Buy_Order_AccountStringAccount of the matched order; set only on Magic Eden marketplace trades, empty on AMM and order-book swaps
Trade_Buy_Order_BuySideStringWhether the matched order is a buy; false when none is attached
Trade_Buy_Order_LimitAmountUInt64Order size limit; 0 in all rows checked, Magic Eden included
Trade_Buy_Order_LimitPriceUInt64Order limit price; 0 in all rows checked, Magic Eden included
Trade_Buy_Order_MintStringMint of the NFT or token the order is for, when one is attached
Trade_Buy_Order_OrderIdStringOrder ID, when one is attached
Trade_Buy_Order_OwnerStringWallet that placed the order, when one is attached
Trade_Buy_Order_PayerStringAccount that paid for the order, normally its owner
Trade_Buy_PriceFloat64Price of the bought currency in units of the sold currency
Trade_Buy_PriceInUSDFloat64USD price of one bought token; 0 when unpriced or when only Trade_Buy_AmountInUSD is set, then divide that by Trade_Buy_Amount
Trade_Dex3
Trade_Dex_ProgramAddressStringProgram address of the DEX that ran the swap, base58; filter on it to pick out one venue
Trade_Dex_ProtocolFamilyStringVenue family as indexed, which can span several programs; for example Pumpswap, Meteora, Raydium, Jupiter, OrcaWhirpool or OKX
Trade_Dex_ProtocolNameStringProgram name and version as indexed; forks can share one, so pair it with the program address; for example pump_amm, lb_clmm, whirlpool, or amm_v3 for both Raydium CLMM and PancakeSwap
Trade3
Trade_IndexUInt32Position of the swap within the transaction
Trade_Market_MarketAddressStringPool, bonding curve or order-book market the swap ran against; empty when the program reports none, as on Jupiter, DFlow, OKX and Aquifer
Trade_PriceAsymmetryFloat64Relative difference between buy and sell side USD values; 0 when only one side is valued
Trade_Sell29
Trade_Sell_Account_AddressStringToken account that the sold tokens came from; empty on nearly all DFlow rows, and a plain wallet on some native SOL rows
Trade_Sell_Account_Token_OwnerStringWallet that owns the paying token account; often the signer, and often empty
Trade_Sell_AmountStringAmount sold, decimal adjusted
Trade_Sell_AmountInUSDFloat64Amount sold, in USD; 0 when unpriced or when only the bought side was valued, then use Trade_Sell_Amount × Trade_Sell_PriceInUSD
Trade_Sell_Currency_CollectionAddressStringNFT collection of the sold asset; empty for fungible tokens
Trade_Sell_Currency_DecimalsUInt32Decimal places of the sold token, as its mint sets them
Trade_Sell_Currency_EditionNonceUInt32Metaplex edition bump seed; a technical value, 0 when unset
Trade_Sell_Currency_FungibleStringWhether the sold asset is fungible; false for NFTs
Trade_Sell_Currency_MetadataAddressStringMetaplex metadata account of the sold asset, when recorded
Trade_Sell_Currency_MintAddressStringMint address of the sold token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped)
Trade_Sell_Currency_NameStringName from the sold token's metadata; lookalikes copy real names
Trade_Sell_Currency_ProgramAddressStringProgram that owns the sold mint, SPL Token or Token-2022, when recorded
Trade_Sell_Currency_SellerFeeBasisPointsUInt32Creator royalty in basis points (100 = 1%); 0 for nearly all fungible coins
Trade_Sell_Currency_SymbolStringTicker of the sold token; not unique, so join on the mint address
Trade_Sell_Currency_TokenCreator_AddressArrayCreator wallets from the sold asset's metadata; mostly empty in this table
Trade_Sell_Currency_TokenStandardStringMetaplex standard, such as Fungible or FungibleAsset, when recorded
Trade_Sell_Currency_UriStringLink to the sold asset's off-chain metadata file, often on IPFS or Arweave
Trade_Sell_Currency_UpdateAuthorityStringAccount that can change the sold asset's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL
Trade_Sell_Currency_VerifiedCollectionStringWhether the NFT collection is verified; false for fungible tokens
Trade_Sell_Order_AccountStringAccount of the matched order; set only on Magic Eden marketplace trades, empty on AMM and order-book swaps
Trade_Sell_Order_BuySideStringWhether the matched order is a buy; false when none is attached
Trade_Sell_Order_LimitAmountUInt64Order size limit; 0 in all rows checked, Magic Eden included
Trade_Sell_Order_LimitPriceUInt64Order limit price; 0 in all rows checked, Magic Eden included
Trade_Sell_Order_MintStringMint of the NFT or token the order is for, when one is attached
Trade_Sell_Order_OrderIdStringOrder ID, when one is attached
Trade_Sell_Order_OwnerStringWallet that placed the order, when one is attached
Trade_Sell_Order_PayerStringAccount that paid for the order, normally its owner
Trade_Sell_PriceFloat64Price of the sold currency in units of the bought currency
Trade_Sell_PriceInUSDFloat64USD price of one sold token; 0 when unpriced or when only Trade_Sell_AmountInUSD is set, then divide that by Trade_Sell_Amount
Transaction7
Transaction_FeeStringNetwork fee paid, in SOL
Transaction_FeeInUSDFloat64Network fee, in USD
Transaction_FeePayerStringWallet that paid the network fee; Solana makes it the first signer
Transaction_IndexUInt32Position of the transaction within the block
Transaction_Result_SuccessStringWhether the transaction succeeded
Transaction_SignatureStringTransaction signature, base58
Transaction_SignerStringWallet that signed the transaction and paid its fee
Sample file
dex_pools64 columnsOne row per pool or market state change on an indexed Solana DEX program, with the change amount and the resulting balance for both sides, USD-valued at block time.
ColumnTypeDescription
Block3
Block_DateDateUTC date of the block
Block_SlotUInt64Slot number of the block; delivered files are split by slot range
Block_TimeDateTimeBlock timestamp, UTC
Instruction7
Instruction_CallPathArrayInstruction_Index values of the parent instructions; empty on a top-level instruction
Instruction_ExternalSeqNumberUInt32Number of the top-level instruction this row falls under, counting from 1
Instruction_IndexUInt32Position of the instruction in the transaction, counting inner instructions
Instruction_InternalSeqNumberUInt32Position under its top-level instruction, counting from 1; 0 on a top-level instruction
Instruction_Program_AddressStringProgram that executed the instruction
Instruction_Program_MethodStringDecoded instruction name, for example swap, buy or route
Instruction_Program_NameStringDecoded program name
Pool_BaseCurrency6
Pool_BaseCurrency_ChangeAmountStringBase-token amount the event added to the pool (positive) or took out (negative), decimal adjusted
Pool_BaseCurrency_ChangeAmountInUSDFloat64Base-token change in USD; 0 when unpriced or when only the quote side was valued
Pool_BaseCurrency_PostAmountStringBase-token reserve left in the pool after the event, decimal adjusted
Pool_BaseCurrency_PostAmountInUSDFloat64Base-token reserve after the event, in USD; 0 when unpriced or when only the quote side was valued
Pool_BaseCurrency_PriceFloat64Quote-token reserve divided by base-token reserve after the event; a fair price only on constant-product pools
Pool_BaseCurrency_PriceInUSDFloat64Base-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_Dex3
Pool_Dex_ProgramAddressStringProgram address of the DEX that owns the pool, base58; filter on it to pick out one venue
Pool_Dex_ProtocolFamilyStringVenue family as indexed, which can span several programs; for example Pumpswap, Meteora, Raydium, OrcaWhirpool, Phoenix or Manifest
Pool_Dex_ProtocolNameStringProgram name and version as indexed; forks can share one, so pair it with the program address; for example pump_amm, lb_clmm, whirlpool, or amm_v3 for both Raydium CLMM and PancakeSwap
Pool_Market31
Pool_Market_BaseCurrency_CollectionAddressStringNFT collection of the base asset; empty for fungible tokens
Pool_Market_BaseCurrency_DecimalsUInt32Decimal places of the base token, as its mint sets them
Pool_Market_BaseCurrency_EditionNonceUInt32Metaplex edition bump seed; a technical value, 0 when unset
Pool_Market_BaseCurrency_FungibleStringWhether the base asset is fungible; false for NFTs
Pool_Market_BaseCurrency_MetadataAddressStringMetaplex metadata account of the base asset, when recorded
Pool_Market_BaseCurrency_MintAddressStringMint address of the base token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped)
Pool_Market_BaseCurrency_NameStringName from the base token's metadata; lookalikes copy real names
Pool_Market_BaseCurrency_ProgramAddressStringProgram that owns the base mint, SPL Token or Token-2022, when recorded
Pool_Market_BaseCurrency_SellerFeeBasisPointsUInt32Creator royalty in basis points (100 = 1%); 0 for nearly all fungible coins
Pool_Market_BaseCurrency_SymbolStringTicker of the base token; not unique, so join on the mint address
Pool_Market_BaseCurrency_TokenCreators_AddressArrayCreator wallets from the base asset's metadata; often empty
Pool_Market_BaseCurrency_TokenStandardStringMetaplex standard, such as Fungible or FungibleAsset, when recorded
Pool_Market_BaseCurrency_UriStringLink to the base asset's off-chain metadata file, often on IPFS or Arweave
Pool_Market_BaseCurrency_UpdateAuthorityStringAccount that can change the base asset's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL
Pool_Market_BaseCurrency_VerifiedCollectionStringWhether the NFT collection is verified; false for fungible tokens
Pool_Market_MarketAddressStringAddress of the pool, bonding curve or order-book market
Pool_Market_QuoteCurrency_CollectionAddressStringNFT collection of the quote asset; empty for fungible tokens
Pool_Market_QuoteCurrency_DecimalsUInt32Decimal places of the quote token, as its mint sets them
Pool_Market_QuoteCurrency_EditionNonceUInt32Metaplex edition bump seed; a technical value, 0 when unset
Pool_Market_QuoteCurrency_FungibleStringWhether the quote asset is fungible; false for NFTs
Pool_Market_QuoteCurrency_MetadataAddressStringMetaplex metadata account of the quote asset, when recorded
Pool_Market_QuoteCurrency_MintAddressStringMint address of the quote token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped)
Pool_Market_QuoteCurrency_NameStringName from the quote token's metadata; lookalikes copy real names
Pool_Market_QuoteCurrency_ProgramAddressStringProgram that owns the quote mint, SPL Token or Token-2022, when recorded
Pool_Market_QuoteCurrency_SellerFeeBasisPointsUInt32Creator royalty in basis points (100 = 1%); 0 for nearly all fungible coins
Pool_Market_QuoteCurrency_SymbolStringTicker of the quote token; not unique, so join on the mint address
Pool_Market_QuoteCurrency_TokenCreators_AddressArrayCreator wallets from the quote asset's metadata; often empty
Pool_Market_QuoteCurrency_TokenStandardStringMetaplex standard, such as Fungible or FungibleAsset, when recorded
Pool_Market_QuoteCurrency_UriStringLink to the quote asset's off-chain metadata file, often on IPFS or Arweave
Pool_Market_QuoteCurrency_UpdateAuthorityStringAccount that can change the quote asset's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL
Pool_Market_QuoteCurrency_VerifiedCollectionStringWhether the NFT collection is verified; false for fungible tokens
Pool_QuoteCurrency6
Pool_QuoteCurrency_ChangeAmountStringQuote-token amount the event added to the pool (positive) or took out (negative), decimal adjusted
Pool_QuoteCurrency_ChangeAmountInUSDFloat64Quote-token change in USD; 0 when unpriced or when only the base side was valued
Pool_QuoteCurrency_PostAmountStringQuote-token reserve left in the pool after the event, decimal adjusted
Pool_QuoteCurrency_PostAmountInUSDFloat64Quote-token reserve after the event, in USD; 0 when unpriced or when only the base side was valued
Pool_QuoteCurrency_PriceFloat64Base-token reserve divided by quote-token reserve after the event; a fair price only on constant-product pools
Pool_QuoteCurrency_PriceInUSDFloat64Quote-token USD price from the reserve ratio, so off on order books and concentrated liquidity; Pool_QuoteCurrency_PostAmountInUSD ÷ Pool_QuoteCurrency_PostAmount matches trade prices
PoolEvent1
PoolEvent_IndexUInt32Position of the pool event within its instruction
Transaction7
Transaction_FeeStringNetwork fee paid, in SOL
Transaction_FeeInUSDFloat64Network fee, in USD
Transaction_FeePayerStringWallet that paid the network fee; Solana makes it the first signer
Transaction_IndexUInt32Position of the transaction within the block
Transaction_Result_SuccessStringWhether the transaction succeeded
Transaction_SignatureStringTransaction signature, base58
Transaction_SignerStringWallet that signed the transaction and paid its fee
Sample file
dex_orders63 columnsOne row per order-book event on indexed Solana order-book programs, NFT marketplaces such as Magic Eden included, with the market, both currencies, side, size and limit price.
ColumnTypeDescription
Block3
Block_DateDateUTC date of the block
Block_SlotUInt64Slot number of the block; delivered files are split by slot range
Block_TimeDateTimeBlock timestamp, UTC
Instruction7
Instruction_CallPathArrayInstruction_Index values of the parent instructions; empty on a top-level instruction
Instruction_ExternalSeqNumberUInt32Number of the top-level instruction this row falls under, counting from 1
Instruction_IndexUInt32Position of the instruction in the transaction, counting inner instructions
Instruction_InternalSeqNumberUInt32Position under its top-level instruction, counting from 1; 0 on a top-level instruction
Instruction_Program_AddressStringProgram that executed the instruction
Instruction_Program_MethodStringDecoded instruction name, for example swap, buy or route
Instruction_Program_NameStringDecoded program name
OrderEvent_Dex3
OrderEvent_Dex_ProgramAddressStringProgram address of the order-book program that recorded the event, base58
OrderEvent_Dex_ProtocolFamilyStringOrder-book protocol family, for example Magic Eden, Phoenix or OpenBook
OrderEvent_Dex_ProtocolNameStringOrder-book protocol name and version
OrderEvent2
OrderEvent_IndexUInt32Position of the order event within the transaction
OrderEvent_TypeStringEvent type as the program records it, for example Open or Cancel
OrderEvent_Market31
OrderEvent_Market_BaseCurrency_CollectionAddressStringNFT collection of the market's base currency; empty for fungible tokens
OrderEvent_Market_BaseCurrency_DecimalsUInt32Decimals of the market's base currency
OrderEvent_Market_BaseCurrency_EditionNonceUInt32Metaplex edition bump seed of the market's base currency; a technical value, 0 when unset
OrderEvent_Market_BaseCurrency_FungibleStringWhether the market's base currency is fungible; the string true or false
OrderEvent_Market_BaseCurrency_MetadataAddressStringMetaplex metadata account of the market's base currency, when recorded
OrderEvent_Market_BaseCurrency_MintAddressStringMint address of the market's base currency and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped)
OrderEvent_Market_BaseCurrency_NameStringName of the market's base currency
OrderEvent_Market_BaseCurrency_ProgramAddressStringProgram that owns the market's base currency's mint, SPL Token or Token-2022, when recorded
OrderEvent_Market_BaseCurrency_SellerFeeBasisPointsUInt32Creator royalty on the market's base currency in basis points (100 = 1%); 0 for nearly all fungible coins
OrderEvent_Market_BaseCurrency_SymbolStringSymbol of the market's base currency; reported by the token metadata, not unique
OrderEvent_Market_BaseCurrency_TokenCreator_AddressArrayCreator wallets from the market's base currency's metadata; mostly empty in this table
OrderEvent_Market_BaseCurrency_TokenStandardStringMetaplex standard of the market's base currency, such as Fungible or FungibleAsset, when recorded
OrderEvent_Market_BaseCurrency_UriStringLink to the market's base currency's off-chain metadata file, often on IPFS or Arweave
OrderEvent_Market_BaseCurrency_UpdateAuthorityStringAccount that can change the market's base currency's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL
OrderEvent_Market_BaseCurrency_VerifiedCollectionStringWhether the market's base currency's NFT collection is verified; false for fungible tokens
OrderEvent_Market_MarketAddressStringOrder-book market the order was placed on, base58
OrderEvent_Market_QuoteCurrency_CollectionAddressStringNFT collection of the market's quote currency; empty for fungible tokens
OrderEvent_Market_QuoteCurrency_DecimalsUInt32Decimals of the market's quote currency
OrderEvent_Market_QuoteCurrency_EditionNonceUInt32Metaplex edition bump seed of the market's quote currency; a technical value, 0 when unset
OrderEvent_Market_QuoteCurrency_FungibleStringWhether the market's quote currency is fungible; the string true or false
OrderEvent_Market_QuoteCurrency_MetadataAddressStringMetaplex metadata account of the market's quote currency, when recorded
OrderEvent_Market_QuoteCurrency_MintAddressStringMint address of the market's quote currency and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped)
OrderEvent_Market_QuoteCurrency_NameStringName of the market's quote currency
OrderEvent_Market_QuoteCurrency_ProgramAddressStringProgram that owns the market's quote currency's mint, SPL Token or Token-2022, when recorded
OrderEvent_Market_QuoteCurrency_SellerFeeBasisPointsUInt32Creator royalty on the market's quote currency in basis points (100 = 1%); 0 for nearly all fungible coins
OrderEvent_Market_QuoteCurrency_SymbolStringSymbol of the market's quote currency; reported by the token metadata, not unique
OrderEvent_Market_QuoteCurrency_TokenCreator_AddressArrayCreator wallets from the market's quote currency's metadata; mostly empty in this table
OrderEvent_Market_QuoteCurrency_TokenStandardStringMetaplex standard of the market's quote currency, such as Fungible or FungibleAsset, when recorded
OrderEvent_Market_QuoteCurrency_UriStringLink to the market's quote currency's off-chain metadata file, often on IPFS or Arweave
OrderEvent_Market_QuoteCurrency_UpdateAuthorityStringAccount that can change the market's quote currency's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL
OrderEvent_Market_QuoteCurrency_VerifiedCollectionStringWhether the market's quote currency's NFT collection is verified; false for fungible tokens
OrderEvent_Order10
OrderEvent_Order_AccountStringAccount that holds the order on the book
OrderEvent_Order_BuySideStringWhether the order buys the base currency; the string true or false
OrderEvent_Order_LimitAmountStringOrder size in the base currency, decimal adjusted, as a decimal string
OrderEvent_Order_LimitAmountInUSDFloat64Order size valued in USD at the hourly price for the block's hour; 0 when no price
OrderEvent_Order_LimitPriceStringLimit price in quote per base, as a decimal string
OrderEvent_Order_LimitPriceInUSDFloat64Limit price valued in USD at the hourly price for the block's hour; 0 when no price
OrderEvent_Order_MintStringMint the order is denominated in, base58
OrderEvent_Order_OrderIdStringOrder id assigned by the market
OrderEvent_Order_OwnerStringWallet that owns the order
OrderEvent_Order_PayerStringAccount that paid for placing the order
Transaction7
Transaction_FeeStringNetwork fee paid, in SOL
Transaction_FeeInUSDFloat64Network fee, in USD
Transaction_FeePayerStringWallet that paid the network fee; Solana makes it the first signer
Transaction_IndexUInt32Position of the transaction within the block
Transaction_Result_SuccessStringWhether the transaction succeeded
Transaction_SignatureStringTransaction signature, base58
Transaction_SignerStringWallet that signed the transaction and paid its fee
Sample file
rewards18 columnsOne row per reward paid in a block: the leader's fee reward on every block, and staking, voting and rent rewards where the chain records them.
ColumnTypeDescription
Block_DateDateUTC date of the block
Block_HashStringBlock hash, base58
Block_HeightUInt64Count of blocks produced before this one; lower than the slot because some slots are skipped
Block_ParentHashStringHash of the parent block, base58
Block_ParentSlotUInt64Slot of the parent block; lower than Block_Slot minus one when slots were skipped
Block_RewardsCountUInt32Reward records attached to the block
Block_SlotUInt64Slot number of the block; delivered files are split by slot range
Block_TimeDateTimeBlock timestamp, UTC
Block_TxCountUInt32Transactions in the block
Reward_AddressStringAccount that received the reward, base58
Reward_AmountStringReward paid in SOL, decimal adjusted from lamports, as a decimal string
Reward_AmountInUSDFloat64Reward valued in USD at the hourly SOL price for the block's hour
Reward_CommissionStringValidator commission on staking and voting rewards, in percent, as a decimal string; 0 for fee rewards
Reward_CommissionInUSDFloat64Commission valued in USD at the hourly SOL price for the block's hour
Reward_IndexUInt32Position of the reward within the block's reward list
Reward_PostBalanceStringAccount balance in SOL after the reward, decimal adjusted, as a decimal string
Reward_PostBalanceInUSDFloat64Post-reward balance valued in USD at the hourly SOL price for the block's hour
Reward_RewardTypeStringReward type as the chain records it: Fee on every block, and Rent, Staking or Voting where the block carries them
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 slots per file, sorted ascending
solana/blocks<start_slot>_<end_slot>.parquet

# transactions: 50 slots per file, sorted ascending
solana/transactions<start_slot>_<end_slot>.parquet

# transfers: 50 slots per file, sorted ascending
solana/transfers<start_slot>_<end_slot>.parquet

# dex_trades: 50 slots per file, sorted ascending
solana/dex_trades<start_slot>_<end_slot>.parquet

# dex_pools: 50 slots per file, sorted ascending
solana/dex_pools<start_slot>_<end_slot>.parquet

# dex_orders: 50 slots per file, sorted ascending
solana/dex_orders<start_slot>_<end_slot>.parquet

# rewards: 50 slots per file, sorted ascending
solana/rewards<start_slot>_<end_slot>.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 300 columns. Only the time range changes.

30 days
Latest month
Sep 4, 2026 → Oct 4, 2026
$1,200
Pay now
183 days
Last 6 months
Apr 4, 2026 → Oct 4, 2026
$6,000
Pay now
365 days
Last 12 months
Oct 4, 2025 → Oct 4, 2026
$12,000
Pay now
In every window
  • All 7 tables, 300 columns
  • Parquet files in the layout under Delivery
  • S3 or R2 download, chosen at checkout
  • Licensed under the Data License

FAQ

16 questions
What is included in the Solana dataset?

Seven Parquet tables with 300 documented columns in total: blocks (9), transactions (17), transfers (47), dex_trades (82), dex_pools (64), dex_orders (63) and rewards (18). Each purchase covers the window you choose, 1, 6 or 12 months, through to yesterday, refreshed daily.

Why is there no full-history tier?

Because we hold row-level Solana data, meaning individual transactions, transfers, swaps and orders, for the last twelve months on a rolling basis. Aggregated series such as per-token OHLCV go back further and are sold separately. The 12-month tier is therefore the deepest window we can deliver at this grain, and we would rather say so than sell a longer label.

How large is a window?

Large. In the sample window Solana carried about 1,100 transactions and 700 transfers per slot, at roughly two and a half slots a second, and the DEX tables add one row per swap and per pool change. We size it per table before delivery and send you the exact figures with the manifest. If you need only the DEX tables, the Solana DEX Trades and Pools dataset is the same two tables at a lower price.

How do the tables join?

On Transaction_Signature, which appears in every table except blocks and rewards; those two join on Block_Slot. Within a transaction, Transfer_Index, Trade_Index and OrderEvent_Index order the rows, and the Instruction_CallPath columns say which program invocation each row came from.

What is deliberately not in this dataset?

Two things. Balance updates, the per-account pre and post balances for every transaction, exist in our store but are not in this bundle, because they run to several rows per transfer and would dominate the size. Raw instructions are also not a table here. If you need either, ask and we will quote them alongside this one.

Why do slots and block heights differ?

A slot is a scheduled chance to produce a block, and some slots pass with no block. Block_Slot is the slot, Block_Height counts only blocks actually produced, and Block_ParentSlot shows the gap when slots were skipped. Files are cut by slot range, 50 slots per file, so a file can hold fewer than 50 blocks.

Which address should I use for a wallet?

The owner. On Solana a token is held in a token account owned by a wallet, and most people mean the wallet. Transfers carry both: Transfer_Sender_Address and Transfer_Receiver_Address are the token accounts, Transfer_Sender_Token_Owner and Transfer_Receiver_Token_Owner are the wallets. For SOL itself the two coincide.

Which venues are in the DEX tables?

All programs we decode, identified by the ProtocolFamily and ProgramAddress columns on every row. In the sample window dex_trades held Pumpswap, Meteora, Raydium, Jupiter, Pump.fun, Orca Whirlpool, PancakeSwap and SolFi among others, and dex_orders held Magic Eden order events. The set grows as new programs are indexed; nothing is pinned to a fixed venue list.

What is in rewards?

What the chain attaches to each block. Every block carries the leader's fee reward, which is what the sample window shows; blocks at epoch boundaries also carry staking and voting rewards, and rent rewards where they occur. Reward_RewardType says which, and Reward_Commission is the validator's cut on the staking and voting kinds.

How much of it is valued in USD?

Swaps are priced from the safer side, so nearly every trade with SOL or a stablecoin on one side carries a value, and the token side's PriceInUSD is derived through it. Transfers and rewards are valued only for tokens with an hourly price series. A USD value of 0 means either a zero-value row or no price; the column cannot tell the two apart.

Are failed transactions included?

Yes. Transaction_Result_Success carries the outcome on every table that has it, and Transaction_Result_ErrorMessage carries the runtime's error text when it failed. The export applies no filter of its own, so vote transactions, spam tokens and zero-value rows are all kept; the columns let you drop what you do not want.

How do I get one program's or one token's activity?

Filter Trade_Dex_ProgramAddress in dex_trades, Pool_Dex_ProgramAddress in dex_pools or OrderEvent_Dex_ProgramAddress in dex_orders to the program, base58. For a token, filter the MintAddress columns: Transfer_Currency_MintAddress in transfers, and the Buy or Sell currency mint in dex_trades. Join on mint addresses rather than symbols, which repeat.

How are amounts and booleans encoded?

Amounts are decimal-adjusted decimal strings, carrying exactly as many places as the token has decimals; SOL is adjusted from lamports, where one SOL is a billion lamports. Multiply by ten to the power of the decimals for the raw integer. Casting to float loses precision on large values. Booleans are the strings true and false.

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 slots 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.