# Solana Tokenized Stocks | Bitquery Data Store Transfers and DEX trades of xStocks, Ondo, Backpack Securities and PreStocks tokens on Solana since October 2025, one row per transfer or trade. Dataset page: https://bitquery.io/datastore/datasets/solana-tokenized-stocks Network: Solana Category: RWA, Transfers, Trades Tables: 2 Columns: 129 Coverage: 2025-10-28 to 2026-10-14 Rows: about 550M Size: about 100 GB Format: Apache Parquet, ZSTD compression, one prefix per table Licence: https://bitquery.io/datastore/legal/data-license ## What this is Tokenized stocks on Solana come from four issuers, and pump.fun copies with the same names are everywhere. We keep only the real mints: xStocks by Backed (names ending "xStock", mints starting "Xs", 71 tokens traded on 1 October 2026), Ondo Global Markets ("(Ondo Tokenized)", mints ending "ondo", 186), PreStocks pre-IPO tokens (mints starting "Pre", 9) and Backpack Securities (a listed set of 69 mints). Each table keeps the standard Solana schema, with nothing renamed or added. Two tables. transfers has every transfer of a stock token; dex_trades has every DEX trade with a stock token on either side, including Jupiter Z RFQ fills from 29 September 2026. Filter on the mint address, never on the symbol. Ondo's tokens trade almost only through RFQ, so most of their activity shows up in transfers rather than pool trades. ## What people use it for - Volume and liquidity per stock token across DEXs, such as TSLAx or NVDAx - Holder and wallet flows for one tokenized stock - On-chain price against the listed share price - Comparing issuers of the same stock: xStocks, Ondo and Backpack ## Tables (2) ### transfers: 47 columns One row per transfer of an xStocks, Ondo, Backpack Securities or PreStocks token, in the standard Solana transfers schema. Bucket prefix: solana/tokenized_stocks_transfers File naming: _.parquet Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/solana/tokenized_stocks_transfers/452119600_452119699.parquet Sample updated: Oct 15, 2026 | column | type | description | | --- | --- | --- | | Block_Date | Date | UTC date of the block | | Block_Height | UInt64 | Count of blocks produced before this one; lower than the slot because some slots are skipped | | Block_Slot | UInt64 | Slot number of the block; delivered files are split by slot range | | Block_Time | DateTime | Block timestamp, UTC | | Instruction_CallPath | Array | Instruction_Index values of the parent instructions; empty on a top-level instruction | | Instruction_ExternalSeqNumber | UInt32 | Number of the top-level instruction this row falls under, counting from 1 | | Instruction_Index | UInt32 | Position of the instruction in the transaction, counting inner instructions | | Instruction_InternalSeqNumber | UInt32 | Position under its top-level instruction, counting from 1; 0 on a top-level instruction | | Instruction_Program_Address | String | Program that executed the instruction | | Instruction_Program_Method | String | Decoded instruction name, for example swap, buy or route | | Instruction_Program_Name | String | Decoded program name | | Transaction_Fee | String | Network fee paid, in SOL | | Transaction_FeeInUSD | Float64 | Network fee, in USD | | Transaction_FeePayer | String | Wallet that paid the network fee; Solana makes it the first signer | | Transaction_Index | UInt32 | Position of the transaction within the block | | Transaction_Result_ErrorMessage | String | Error the runtime returned when the transaction failed; empty on success | | Transaction_Result_Success | String | Whether the transaction succeeded | | Transaction_Signature | String | Transaction signature, base58 | | Transaction_Signer | String | Wallet that signed the transaction and paid its fee | | Transfer_Amount | String | Amount transferred, decimal adjusted, as a decimal string. Multiply by 10^Transfer_Currency_Decimals for the raw on-chain integer | | Transfer_AmountInUSD | Float64 | Amount valued in USD at the hourly price for the block's hour; 0 for tokens with no price | | Transfer_Authority_Address | String | Account that authorised the transfer, usually the token account owner or its delegate | | Transfer_Currency_CollectionAddress | String | NFT collection of the transferred token; empty for fungible tokens | | Transfer_Currency_Decimals | UInt32 | Decimals of the transferred token | | Transfer_Currency_EditionNonce | UInt32 | Metaplex edition bump seed of the transferred token; a technical value, 0 when unset | | Transfer_Currency_Fungible | String | Whether the transferred token is fungible; the string true or false | | Transfer_Currency_IsMutable | String | Whether the transferred token's metadata can still be changed; the string true or false | | Transfer_Currency_Key | String | Metaplex metadata account type of the transferred token, such as MetadataV1 | | Transfer_Currency_MetadataAddress | String | Metaplex metadata account of the transferred token, when recorded | | Transfer_Currency_MintAddress | String | Mint address of the transferred token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped) | | Transfer_Currency_Name | String | Name of the transferred token | | Transfer_Currency_Native | String | true for SOL, false for every SPL token; the string true or false | | Transfer_Currency_PrimarySaleHappened | String | Whether the transferred token's first sale has happened, from Metaplex metadata; the string true or false | | Transfer_Currency_ProgramAddress | String | Program that owns the transferred token's mint, SPL Token or Token-2022, when recorded | | Transfer_Currency_SellerFeeBasisPoints | UInt32 | Creator royalty on the transferred token in basis points (100 = 1%); 0 for nearly all fungible coins | | Transfer_Currency_Symbol | String | Symbol of the transferred token; reported by the token metadata, not unique | | Transfer_Currency_TokenCreator_Address | Array | Creator wallets from the transferred token's metadata; mostly empty in this table | | Transfer_Currency_TokenStandard | String | Metaplex standard of the transferred token, such as Fungible or FungibleAsset, when recorded | | Transfer_Currency_UpdateAuthority | String | Account that can change the transferred token's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL | | Transfer_Currency_Uri | String | Link to the transferred token's off-chain metadata file, often on IPFS or Arweave | | Transfer_Currency_VerifiedCollection | String | Whether the transferred token's NFT collection is verified; false for fungible tokens | | Transfer_Currency_Wrapped | String | Whether the transferred token is wrapped SOL; the string true or false | | Transfer_Index | UInt32 | Position of the transfer within the transaction | | Transfer_Receiver_Address | String | Receiving token account, base58; for SOL the receiving wallet | | Transfer_Receiver_Token_Owner | String | Wallet that owns the receiving token account; the address you usually want | | Transfer_Sender_Address | String | Sending token account, base58; for SOL the sending wallet | | Transfer_Sender_Token_Owner | String | Wallet that owns the sending token account; the address you usually want | ### dex_trades: 82 columns One row per DEX trade with a stock token on either side, in the standard Solana dex_trades schema. Bucket prefix: solana/tokenized_stocks_dex_trades File naming: _.parquet Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/solana/tokenized_stocks_dex_trades/452119600_452119699.parquet Sample updated: Oct 15, 2026 | column | type | description | | --- | --- | --- | | Block_Date | Date | UTC date of the block | | Block_Height | UInt64 | Count of blocks produced before this one; lower than the slot because some slots are skipped | | Block_Slot | UInt64 | Slot number of the block; delivered files are split by slot range | | Block_Time | DateTime | Block timestamp, UTC | | Instruction_CallPath | Array | Instruction_Index values of the parent instructions; empty on a top-level instruction | | Instruction_ExternalSeqNumber | UInt32 | Number of the top-level instruction this row falls under, counting from 1 | | Instruction_Index | UInt32 | Position of the instruction in the transaction, counting inner instructions | | Instruction_InternalSeqNumber | UInt32 | Position under its top-level instruction, counting from 1; 0 on a top-level instruction | | Instruction_Program_Address | String | Program that executed the instruction | | Instruction_Program_Method | String | Decoded instruction name, for example swap, buy or route | | Instruction_Program_Name | String | Decoded program name | | Trade_Buy_Account_Address | String | Token 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_Owner | String | Wallet that owns the receiving token account; often the signer, and often empty | | Trade_Buy_Amount | String | Amount bought, decimal adjusted | | Trade_Buy_AmountInUSD | Float64 | Amount 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_CollectionAddress | String | NFT collection of the bought asset; empty for fungible tokens | | Trade_Buy_Currency_Decimals | UInt32 | Decimal places of the bought token, as its mint sets them | | Trade_Buy_Currency_EditionNonce | UInt32 | Metaplex edition bump seed; a technical value, 0 when unset | | Trade_Buy_Currency_Fungible | String | Whether the bought asset is fungible; false for NFTs | | Trade_Buy_Currency_MetadataAddress | String | Metaplex metadata account of the bought asset, when recorded | | Trade_Buy_Currency_MintAddress | String | Mint address of the bought token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped) | | Trade_Buy_Currency_Name | String | Name from the bought token's metadata; lookalikes copy real names | | Trade_Buy_Currency_ProgramAddress | String | Program that owns the bought mint, SPL Token or Token-2022, when recorded | | Trade_Buy_Currency_SellerFeeBasisPoints | UInt32 | Creator royalty in basis points (100 = 1%); 0 for nearly all fungible coins | | Trade_Buy_Currency_Symbol | String | Ticker of the bought token; not unique, so join on the mint address | | Trade_Buy_Currency_TokenCreator_Address | Array | Creator wallets from the bought asset's metadata; mostly empty in this table | | Trade_Buy_Currency_TokenStandard | String | Metaplex standard, such as Fungible or FungibleAsset, when recorded | | Trade_Buy_Currency_Uri | String | Link to the bought asset's off-chain metadata file, often on IPFS or Arweave | | Trade_Buy_Currency_UpdateAuthority | String | Account that can change the bought asset's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL | | Trade_Buy_Currency_VerifiedCollection | String | Whether the NFT collection is verified; false for fungible tokens | | Trade_Buy_Order_Account | String | Account of the matched order; set only on Magic Eden marketplace trades, empty on AMM and order-book swaps | | Trade_Buy_Order_BuySide | String | Whether the matched order is a buy; false when none is attached | | Trade_Buy_Order_LimitAmount | UInt64 | Order size limit; 0 in all rows checked, Magic Eden included | | Trade_Buy_Order_LimitPrice | UInt64 | Order limit price; 0 in all rows checked, Magic Eden included | | Trade_Buy_Order_Mint | String | Mint of the NFT or token the order is for, when one is attached | | Trade_Buy_Order_OrderId | String | Order ID, when one is attached | | Trade_Buy_Order_Owner | String | Wallet that placed the order, when one is attached | | Trade_Buy_Order_Payer | String | Account that paid for the order, normally its owner | | Trade_Buy_Price | Float64 | Price of the bought currency in units of the sold currency | | Trade_Buy_PriceInUSD | Float64 | USD price of one bought token; 0 when unpriced or when only Trade_Buy_AmountInUSD is set, then divide that by Trade_Buy_Amount | | Trade_Dex_ProgramAddress | String | Program address of the DEX that ran the swap, base58; filter on it to pick out one venue | | Trade_Dex_ProtocolFamily | String | Venue family as indexed, which can span several programs; for example Pumpswap, Meteora, Raydium, Jupiter, OrcaWhirpool or OKX | | Trade_Dex_ProtocolName | String | Program 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 | | Trade_Index | UInt32 | Position of the swap within the transaction | | Trade_Market_MarketAddress | String | Pool, bonding curve or order-book market the swap ran against; empty when the program reports none, as on Jupiter, DFlow, OKX and Aquifer | | Trade_PriceAsymmetry | Float64 | Relative difference between buy and sell side USD values; 0 when only one side is valued | | Trade_Sell_Account_Address | String | Token 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_Owner | String | Wallet that owns the paying token account; often the signer, and often empty | | Trade_Sell_Amount | String | Amount sold, decimal adjusted | | Trade_Sell_AmountInUSD | Float64 | Amount 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_CollectionAddress | String | NFT collection of the sold asset; empty for fungible tokens | | Trade_Sell_Currency_Decimals | UInt32 | Decimal places of the sold token, as its mint sets them | | Trade_Sell_Currency_EditionNonce | UInt32 | Metaplex edition bump seed; a technical value, 0 when unset | | Trade_Sell_Currency_Fungible | String | Whether the sold asset is fungible; false for NFTs | | Trade_Sell_Currency_MetadataAddress | String | Metaplex metadata account of the sold asset, when recorded | | Trade_Sell_Currency_MintAddress | String | Mint address of the sold token and the key for joins; SOL shows as 11111111111111111111111111111111 (native) or So11111111111111111111111111111111111111112 (wrapped) | | Trade_Sell_Currency_Name | String | Name from the sold token's metadata; lookalikes copy real names | | Trade_Sell_Currency_ProgramAddress | String | Program that owns the sold mint, SPL Token or Token-2022, when recorded | | Trade_Sell_Currency_SellerFeeBasisPoints | UInt32 | Creator royalty in basis points (100 = 1%); 0 for nearly all fungible coins | | Trade_Sell_Currency_Symbol | String | Ticker of the sold token; not unique, so join on the mint address | | Trade_Sell_Currency_TokenCreator_Address | Array | Creator wallets from the sold asset's metadata; mostly empty in this table | | Trade_Sell_Currency_TokenStandard | String | Metaplex standard, such as Fungible or FungibleAsset, when recorded | | Trade_Sell_Currency_Uri | String | Link to the sold asset's off-chain metadata file, often on IPFS or Arweave | | Trade_Sell_Currency_UpdateAuthority | String | Account that can change the sold asset's metadata unless it is immutable; NativeLoader1111111111111111111111111111111 for SOL | | Trade_Sell_Currency_VerifiedCollection | String | Whether the NFT collection is verified; false for fungible tokens | | Trade_Sell_Order_Account | String | Account of the matched order; set only on Magic Eden marketplace trades, empty on AMM and order-book swaps | | Trade_Sell_Order_BuySide | String | Whether the matched order is a buy; false when none is attached | | Trade_Sell_Order_LimitAmount | UInt64 | Order size limit; 0 in all rows checked, Magic Eden included | | Trade_Sell_Order_LimitPrice | UInt64 | Order limit price; 0 in all rows checked, Magic Eden included | | Trade_Sell_Order_Mint | String | Mint of the NFT or token the order is for, when one is attached | | Trade_Sell_Order_OrderId | String | Order ID, when one is attached | | Trade_Sell_Order_Owner | String | Wallet that placed the order, when one is attached | | Trade_Sell_Order_Payer | String | Account that paid for the order, normally its owner | | Trade_Sell_Price | Float64 | Price of the sold currency in units of the bought currency | | Trade_Sell_PriceInUSD | Float64 | USD price of one sold token; 0 when unpriced or when only Trade_Sell_AmountInUSD is set, then divide that by Trade_Sell_Amount | | Transaction_Fee | String | Network fee paid, in SOL | | Transaction_FeeInUSD | Float64 | Network fee, in USD | | Transaction_FeePayer | String | Wallet that paid the network fee; Solana makes it the first signer | | Transaction_Index | UInt32 | Position of the transaction within the block | | Transaction_Result_Success | String | Whether the transaction succeeded | | Transaction_Signature | String | Transaction signature, base58 | | Transaction_Signer | String | Wallet that signed the transaction and paid its fee | ## Price - Latest month (Sep 14, 2026 → Oct 14, 2026): $300 one-time, USD - Last 12 months (Oct 14, 2025 → Oct 14, 2026): $3,000 one-time, USD Every window includes all 2 tables and 129 columns. Only the time range changes. ## Questions buyers ask Q: What is in the Solana Tokenized Stocks dataset? A: Two Parquet tables in the standard Solana schema: transfers (47 columns) and dex_trades (82 columns), from 28 October 2025, the start of our Solana archive. Earlier xStocks history, from its launch on 30 June 2025, is not included. Q: Which issuers and tokens are included? A: xStocks by Backed, Ondo Global Markets, Backpack Securities and PreStocks: about 335 tokens traded on 1 October 2026. Copies under the same names from pump.fun and other launchpads are left out by checking each issuer's mint pattern, or for Backpack its listed mints. Q: How big is it? A: Roughly 220 million DEX trades and 330 million transfers to mid-October 2026, about 100 GB of ZSTD Parquet, estimated from sampled days. A recent month is about 35 to 45 GB. Activity grew fast: stock-token trades went from about 60,000 a day in January 2026 to 3.8 million on 1 October 2026. Failed transactions are included and marked. Q: Are there mint and burn records? A: No. Our Solana transfers hold transfer instructions only, so issuance and redemption are not in this dataset. The Robinhood Tokenized Stocks dataset has a mint_burn table. Q: How were the tables checked? A: For one block range on 1 October 2026 (slots 452,119,504 to 452,149,503) the query returned 269,135 NVDAx trades against 269,101 from our GraphQL API, a 0.01% gap. Prices and USD values in the sample match the market, for example NVDAx at about $230. Q: Are USD values included? A: Yes, from our 10-minute Solana price feed. A token it does not price gets 0; on 1 October 2026 that included the Backpack tokens. Q: What should I watch for? A: Symbols are not unique, so filter by mint address. Failed transactions are kept; filter Transaction_Result_Success = 'true' for trades that took effect. A Backpack listing added after 1 October 2026 is only included once we add its mint. Q: How do I load it? A: With DuckDB: SELECT Trade_Buy_Currency_Symbol, count(*) FROM read_parquet('dex_trades/*.parquet') WHERE Transaction_Result_Success = 'true' GROUP BY 1 ORDER BY 2 DESC. pandas, Polars, Spark and ClickHouse read the same files. Q: How is the data delivered? A: As flat Parquet files under a stable layout, one prefix per table, with a JSON manifest listing each file and its sha256. We prepare the files within 7 business days of purchase and email you the location. You choose at checkout where to collect them: a Requester Pays S3 bucket, downloaded with your own AWS account, or a Cloudflare R2 bucket with a read-only API key and no egress fees. Files stay available for 7 days from delivery. Q: Can I try before I buy? A: Yes. Each table links to a public sample file from 1 October 2026, slots 452,119,600 to 452,119,699: 1,606 transfers and 1,062 DEX trades. 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.