Complete historical record of swaps executed through the Jupiter aggregator (program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4) on Solana, at slot resolution.
Jupiter holds no liquidity of its own: it routes orders into Raydium, Meteora, Orca, PumpSwap and dozens of other venues. This dataset is the aggregator's own trade records, decoded from its program instructions and priced in USD at block time, which makes it the cleanest view of Solana retail order flow and of how that flow is split across venues.
Use cases
Aggregator market share and routing analysis across Solana venues
Price improvement and slippage benchmarking against direct venue execution
Order flow and retail demand measurement at slot resolution
Sandwich and MEV detection on aggregated flow
Table
82 columns · free sample for the table
jupiter_trades
82 columns
One row per swap routed through the Jupiter aggregator, with buy and sell sides, token metadata and USD pricing.
datashare/solana/jupiter/dex_trades<start_slot>_<end_slot>.parquet100 slots per file
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_ExternalSeqNumberUInt64Number of the top-level instruction this row falls under, counting from 1
Instruction_IndexUInt64Position of the instruction in the transaction, counting inner instructions
Instruction_InternalSeqNumberUInt64Position 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_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_DecimalsUInt64Decimal places of the bought token, as its mint sets them
Trade_Buy_Currency_EditionNonceUInt64Metaplex edition bump seed; a technical value, 0 when unset
Trade_Buy_Currency_FungibleBoolWhether 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_SellerFeeBasisPointsUInt64Creator 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_VerifiedCollectionBoolWhether 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_BuySideBoolWhether 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; Jupiter's is JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4
Trade_Dex_ProtocolFamilyStringVenue family as indexed, which can span several programs; Jupiter for Jupiter
Trade_Dex_ProtocolNameStringProgram name and version as indexed; forks can share one, so pair it with the program address; jupiter for Jupiter
Trade3
Trade_IndexUInt64Position 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_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_DecimalsUInt64Decimal places of the sold token, as its mint sets them
Trade_Sell_Currency_EditionNonceUInt64Metaplex edition bump seed; a technical value, 0 when unset
Trade_Sell_Currency_FungibleBoolWhether 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_SellerFeeBasisPointsUInt64Creator 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_VerifiedCollectionBoolWhether 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_BuySideBoolWhether 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_FeeDecimalNetwork fee paid, in SOL
Transaction_FeeInUSDFloat64Network fee, in USD
Transaction_FeePayerStringWallet that paid the network fee; Solana makes it the first signer
Transaction_IndexUInt64Position of the transaction within the block
Transaction_Result_SuccessBoolWhether the transaction succeeded
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.
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:
# jupiter_trades: 100 slots per file
datashare/solana/jupiter/dex_trades<start_slot>_<end_slot>.parquet
Download a free sampleNo email needed.
Pay nowName, work email and licence check.
Pay the invoiceBy card or bank transfer.
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 82 columns. Only the time range changes.
One Parquet table, jupiter_trades, with 82 documented columns. Full history to yesterday, refreshed daily.
Why is there no pools table?
Jupiter is an aggregator, not an AMM. It holds no liquidity and has no pools of its own, so there are no pool reserve events to report. For pool data, buy the dataset of the venue the order was routed into.
How is the data delivered?
As flat Parquet files under a stable layout, one prefix per table, with a JSON manifest listing every file and its sha256. We prepare the files within 7 business days of purchase and email you the location. You choose at checkout where to collect them: a Requester Pays S3 bucket, downloaded with your own AWS account, or a Cloudflare R2 bucket with a read-only API key and no egress fees. Files stay available for 7 days from delivery.
How current is the data?
Refreshed daily with T+1 latency. A purchase made today includes everything up to yesterday.
Can I try before I buy?
Yes. The 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.