# Phoenix — Bitquery Data Store Every fill and market state change on Phoenix V1, Solana's on-chain central limit order book, decoded and USD-priced at block time. Dataset page: https://bitquery.io/datastore/datasets/phoenix Network: Solana Category: Trades, Pools Tables: 2 Columns: 146 Coverage: first block to 2026-09-23 Format: Apache Parquet, Snappy compression, one prefix per table Licence: https://bitquery.io/datastore/legal/data-license ## What this is Complete historical record of the Phoenix V1 program (PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY) on Solana: every fill and every market state change, at slot resolution. Phoenix is a central limit order book, not an automated market maker. Rows in the trades table are matched orders rather than swaps against a bonding curve, and rows in the market table record the state of a market after an event rather than constant-product reserves. The schema is the same one used across every Solana DEX dataset here, so Phoenix joins directly against the others on mint address, market address, slot or signature. ## What people use it for - Order-book microstructure research on an established Solana CLOB - Execution quality and spread analysis against AMM venues - Market-maker behaviour and fill attribution - Cross-venue routing research where an aggregator settles into Phoenix ## Tables (2) ### phoenix_trades — 82 columns One row per fill matched on a Phoenix market, with buy and sell sides, token metadata and USD pricing. S3 prefix: datashare/solana/phoenix/dex_trades File naming: _.parquet, 100 slots per file Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/datashare/solana/phoenix/dex_trades/423522600_423522699.parquet Sample updated: Sep 24, 2026 | column | type | description | | --- | --- | --- | | Block_Date | Date | UTC date of the block | | Block_Height | UInt64 | Block height | | Block_Slot | UInt64 | Solana slot | | Block_Time | DateTime | Block timestamp, UTC | | Instruction_CallPath | Array | Nested call path of the instruction | | Instruction_ExternalSeqNumber | UInt64 | Sequence number of the outer instruction | | Instruction_Index | UInt64 | Position of the instruction within the transaction | | Instruction_InternalSeqNumber | UInt64 | Sequence number of the inner instruction | | Instruction_Program_Address | String | Program that executed the instruction | | Instruction_Program_Method | String | Decoded program method | | Instruction_Program_Name | String | Decoded program name | | Trade_Buy_Account_Address | String | Trade buy account address | | Trade_Buy_Account_Token_Owner | String | Trade buy account token owner | | Trade_Buy_Amount | Decimal | Amount bought, decimal adjusted | | Trade_Buy_AmountInUSD | Float64 | Amount bought in USD | | Trade_Buy_Currency_CollectionAddress | String | Trade buy currency collection address | | Trade_Buy_Currency_Decimals | UInt64 | Decimals of the bought currency | | Trade_Buy_Currency_EditionNonce | UInt64 | Trade buy currency edition nonce | | Trade_Buy_Currency_Fungible | Bool | Trade buy currency fungible | | Trade_Buy_Currency_MetadataAddress | String | Trade buy currency metadata address | | Trade_Buy_Currency_MintAddress | String | Mint of the bought currency | | Trade_Buy_Currency_Name | String | Name of the bought currency | | Trade_Buy_Currency_ProgramAddress | String | Trade buy currency program address | | Trade_Buy_Currency_SellerFeeBasisPoints | UInt64 | Trade buy currency seller fee basis points | | Trade_Buy_Currency_Symbol | String | Symbol of the bought currency | | Trade_Buy_Currency_TokenCreator_Address | Array | Trade buy currency token creator address | | Trade_Buy_Currency_TokenStandard | String | Trade buy currency token standard | | Trade_Buy_Currency_Uri | String | Trade buy currency uri | | Trade_Buy_Currency_UpdateAuthority | String | Trade buy currency update authority | | Trade_Buy_Currency_VerifiedCollection | Bool | Trade buy currency verified collection | | Trade_Buy_Order_Account | String | Trade buy order account | | Trade_Buy_Order_BuySide | Bool | Trade buy order buy side | | Trade_Buy_Order_LimitAmount | UInt64 | Trade buy order limit amount | | Trade_Buy_Order_LimitPrice | UInt64 | Trade buy order limit price | | Trade_Buy_Order_Mint | String | Trade buy order mint | | Trade_Buy_Order_OrderId | String | Trade buy order order id | | Trade_Buy_Order_Owner | String | Trade buy order owner | | Trade_Buy_Order_Payer | String | Trade buy order payer | | Trade_Buy_Price | Float64 | Price of the bought currency in units of the sold currency | | Trade_Buy_PriceInUSD | Float64 | Price of the bought currency in USD | | Trade_Dex_ProgramAddress | String | Phoenix V1 program address (PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY) | | Trade_Dex_ProtocolFamily | String | Protocol family; Phoenix | | Trade_Dex_ProtocolName | String | Protocol name as indexed; phoenix_v1 | | Trade_Index | UInt64 | Trade index within the transaction | | Trade_Market_MarketAddress | String | Phoenix market address | | Trade_PriceAsymmetry | Float64 | Relative difference between buy and sell side USD values | | Trade_Sell_Account_Address | String | Trade sell account address | | Trade_Sell_Account_Token_Owner | String | Trade sell account token owner | | Trade_Sell_Amount | Decimal | Amount sold, decimal adjusted | | Trade_Sell_AmountInUSD | Float64 | Amount sold in USD | | Trade_Sell_Currency_CollectionAddress | String | Trade sell currency collection address | | Trade_Sell_Currency_Decimals | UInt64 | Decimals of the sold currency | | Trade_Sell_Currency_EditionNonce | UInt64 | Trade sell currency edition nonce | | Trade_Sell_Currency_Fungible | Bool | Trade sell currency fungible | | Trade_Sell_Currency_MetadataAddress | String | Trade sell currency metadata address | | Trade_Sell_Currency_MintAddress | String | Mint of the sold currency | | Trade_Sell_Currency_Name | String | Name of the sold currency | | Trade_Sell_Currency_ProgramAddress | String | Trade sell currency program address | | Trade_Sell_Currency_SellerFeeBasisPoints | UInt64 | Trade sell currency seller fee basis points | | Trade_Sell_Currency_Symbol | String | Symbol of the sold currency | | Trade_Sell_Currency_TokenCreator_Address | Array | Trade sell currency token creator address | | Trade_Sell_Currency_TokenStandard | String | Trade sell currency token standard | | Trade_Sell_Currency_Uri | String | Trade sell currency uri | | Trade_Sell_Currency_UpdateAuthority | String | Trade sell currency update authority | | Trade_Sell_Currency_VerifiedCollection | Bool | Trade sell currency verified collection | | Trade_Sell_Order_Account | String | Trade sell order account | | Trade_Sell_Order_BuySide | Bool | Trade sell order buy side | | Trade_Sell_Order_LimitAmount | UInt64 | Trade sell order limit amount | | Trade_Sell_Order_LimitPrice | UInt64 | Trade sell order limit price | | Trade_Sell_Order_Mint | String | Trade sell order mint | | Trade_Sell_Order_OrderId | String | Trade sell order order id | | Trade_Sell_Order_Owner | String | Trade sell order owner | | Trade_Sell_Order_Payer | String | Trade sell order payer | | Trade_Sell_Price | Float64 | Price of the sold currency in units of the bought currency | | Trade_Sell_PriceInUSD | Float64 | Price of the sold currency in USD | | Transaction_Fee | Decimal | Network fee paid, in SOL | | Transaction_FeeInUSD | Float64 | Network fee valued in USD at block time | | Transaction_FeePayer | String | Fee payer address | | Transaction_Index | UInt64 | Position of the transaction within the block | | Transaction_Result_Success | Bool | Whether the transaction succeeded | | Transaction_Signature | String | Transaction signature, base58 | | Transaction_Signer | String | Transaction signer address | ### phoenix_pools — 64 columns One row per Phoenix market state change, with the change amount and the resulting balance for both sides, USD-valued at block time. S3 prefix: datashare/solana/phoenix/dex_pools File naming: _.parquet, 100 slots per file Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/datashare/solana/phoenix/dex_pools/423522600_423522699.parquet Sample updated: Sep 24, 2026 | column | type | description | | --- | --- | --- | | Block_Date | Date | UTC date of the block | | Block_Slot | UInt64 | Solana slot | | Block_Time | DateTime | Block timestamp, UTC | | Instruction_CallPath | Array | Nested call path of the instruction | | Instruction_ExternalSeqNumber | UInt64 | Sequence number of the outer instruction | | Instruction_Index | UInt64 | Position of the instruction within the transaction | | Instruction_InternalSeqNumber | UInt64 | Sequence number of the inner instruction | | Instruction_Program_Address | String | Program that executed the instruction | | Instruction_Program_Method | String | Decoded program method | | Instruction_Program_Name | String | Decoded program name | | Pool_BaseCurrency_ChangeAmount | Decimal | Base-token amount added to or removed from the market by this event, decimal adjusted | | Pool_BaseCurrency_ChangeAmountInUSD | Float64 | Base-token change valued in USD at block time | | Pool_BaseCurrency_PostAmount | Decimal | Base-token market balance after the event, decimal adjusted | | Pool_BaseCurrency_PostAmountInUSD | Float64 | Base-token balance after the event, valued in USD at block time | | Pool_BaseCurrency_Price | Float64 | Base-token price in quote-token units after the event | | Pool_BaseCurrency_PriceInUSD | Float64 | Base-token price in USD at block time | | Pool_Dex_ProgramAddress | String | Phoenix V1 program address (PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY) | | Pool_Dex_ProtocolFamily | String | Protocol family; Phoenix | | Pool_Dex_ProtocolName | String | Protocol name as indexed; phoenix_v1 | | Pool_Market_BaseCurrency_CollectionAddress | String | Pool market base currency collection address | | Pool_Market_BaseCurrency_Decimals | UInt64 | Pool market base currency decimals | | Pool_Market_BaseCurrency_EditionNonce | UInt64 | Pool market base currency edition nonce | | Pool_Market_BaseCurrency_Fungible | Bool | Pool market base currency fungible | | Pool_Market_BaseCurrency_MetadataAddress | String | Pool market base currency metadata address | | Pool_Market_BaseCurrency_MintAddress | String | Pool market base currency mint address | | Pool_Market_BaseCurrency_Name | String | Pool market base currency name | | Pool_Market_BaseCurrency_ProgramAddress | String | Pool market base currency program address | | Pool_Market_BaseCurrency_SellerFeeBasisPoints | UInt64 | Pool market base currency seller fee basis points | | Pool_Market_BaseCurrency_Symbol | String | Pool market base currency symbol | | Pool_Market_BaseCurrency_TokenCreators_Address | Array | Pool market base currency token creators address | | Pool_Market_BaseCurrency_TokenStandard | String | Pool market base currency token standard | | Pool_Market_BaseCurrency_Uri | String | Pool market base currency uri | | Pool_Market_BaseCurrency_UpdateAuthority | String | Pool market base currency update authority | | Pool_Market_BaseCurrency_VerifiedCollection | Bool | Pool market base currency verified collection | | Pool_Market_MarketAddress | String | Phoenix market address | | Pool_Market_QuoteCurrency_CollectionAddress | String | Pool market quote currency collection address | | Pool_Market_QuoteCurrency_Decimals | UInt64 | Pool market quote currency decimals | | Pool_Market_QuoteCurrency_EditionNonce | UInt64 | Pool market quote currency edition nonce | | Pool_Market_QuoteCurrency_Fungible | Bool | Pool market quote currency fungible | | Pool_Market_QuoteCurrency_MetadataAddress | String | Pool market quote currency metadata address | | Pool_Market_QuoteCurrency_MintAddress | String | Pool market quote currency mint address | | Pool_Market_QuoteCurrency_Name | String | Pool market quote currency name | | Pool_Market_QuoteCurrency_ProgramAddress | String | Pool market quote currency program address | | Pool_Market_QuoteCurrency_SellerFeeBasisPoints | UInt64 | Pool market quote currency seller fee basis points | | Pool_Market_QuoteCurrency_Symbol | String | Pool market quote currency symbol | | Pool_Market_QuoteCurrency_TokenCreators_Address | Array | Pool market quote currency token creators address | | Pool_Market_QuoteCurrency_TokenStandard | String | Pool market quote currency token standard | | Pool_Market_QuoteCurrency_Uri | String | Pool market quote currency uri | | Pool_Market_QuoteCurrency_UpdateAuthority | String | Pool market quote currency update authority | | Pool_Market_QuoteCurrency_VerifiedCollection | Bool | Pool market quote currency verified collection | | Pool_QuoteCurrency_ChangeAmount | Decimal | Quote-token amount added to or removed from the market by this event, decimal adjusted | | Pool_QuoteCurrency_ChangeAmountInUSD | Float64 | Quote-token change valued in USD at block time | | Pool_QuoteCurrency_PostAmount | Decimal | Quote-token market balance after the event, decimal adjusted | | Pool_QuoteCurrency_PostAmountInUSD | Float64 | Quote-token balance after the event, valued in USD at block time | | Pool_QuoteCurrency_Price | Float64 | Quote-token price in base-token units after the event | | Pool_QuoteCurrency_PriceInUSD | Float64 | Quote-token price in USD at block time | | PoolEvent_Index | UInt64 | Index of the market event within the instruction | | Transaction_Fee | Decimal | Network fee paid, in SOL | | Transaction_FeeInUSD | Float64 | Network fee valued in USD at block time | | Transaction_FeePayer | String | Fee payer address | | Transaction_Index | UInt64 | Position of the transaction within the block | | Transaction_Result_Success | Bool | Whether the transaction succeeded | | Transaction_Signature | String | Transaction signature, base58 | | Transaction_Signer | String | Transaction signer address | ## Price - Latest month (Aug 23, 2026 → Sep 23, 2026): $75 one-time, USD - Last 6 months (Mar 23, 2026 → Sep 23, 2026): $375 one-time, USD - Last 12 months (Sep 23, 2025 → Sep 23, 2026): $750 one-time, USD - Full history (Genesis → Sep 23, 2026): $1,250 one-time, USD Every window includes all 2 tables and 146 columns. Only the time range changes. ## Questions buyers ask Q: What is included in Phoenix? A: Two Parquet tables: phoenix_trades and phoenix_pools, with 146 documented columns. Full history to yesterday, refreshed daily. Q: Phoenix is an order book. Why is the second table called pools? A: For schema consistency. Every Solana DEX dataset here uses the same two-table shape, so the second table keeps the pools name and the Pool_ column prefixes. On Phoenix those columns describe market state after an event — base and quote balances and prices — rather than AMM reserves. Read them as market state, not as a constant-product curve. Q: Why are there more market events than fills? A: Because an order book changes state without trading. Placing, modifying and cancelling orders all move a market's recorded state, while only a match produces a fill. In a quiet 100-slot window we measured 2 fills against 17 market events; in a busy one, 39 fills against 41. Neither is missing data — it is the ratio of quoting activity to actual trading, and it is itself a useful signal. Q: How do fills differ from AMM swaps? A: A fill is a match between two resting or incoming orders at a price the book determined, not a price a curve determined. That makes Phoenix useful for spread, depth and execution-quality work that AMM data cannot answer, and it is why price columns here should be compared with AMM venues carefully rather than pooled together. Q: How does this compare to the Manifest dataset? A: Both are Solana central limit order books with the same schema. Holding both lets you compare quoting behaviour, spreads and fill rates across the two books over the same tokens and time windows. Q: How is the data delivered? A: As flat Parquet files under a stable S3 layout, one prefix per table, with a JSON manifest listing every file and its sha256. Signed HTTPS links are emailed to you once the files are prepared. Q: How current is the data? A: Refreshed daily with T+1 latency. A purchase made today includes everything up to yesterday. Q: Can I try before I buy? A: Yes. Every 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. ## 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.