# TRON Transfers — Bitquery Data Store Every TRX, TRC-10 and TRC-20 transfer on TRON since mainnet launch in June 2018, one row per transfer, valued in USD at block time. Dataset page: https://bitquery.io/datastore/datasets/tron-transfers Network: Tron Category: Transfers Tables: 1 Columns: 43 Coverage: 2018-06-25 to 2026-09-23 Rows: about 13B Format: Apache Parquet, Snappy compression, one prefix per table Licence: https://bitquery.io/datastore/legal/data-license ## What this is TRON carries more USDT than any other chain, and this is every transfer of it, alongside native TRX and every TRC-10 and TRC-20 token. We decode transfers from the chain, attach the token's name, symbol and decimals to each row, and value the amount in USD at block time so you are not joining a price feed yourself. 13.2 billion rows from the June 2018 mainnet launch to yesterday. The query most buyers run first is flow for one token: filter Transfer_Currency_SmartContract to the contract, then group sender and receiver. Filter Transfer_Currency_Native instead to get base-asset TRX movement on its own. Amounts are decimal strings, so cast with care, and join on contract addresses rather than symbols, which repeat across tokens. ## What people use it for - USDT flow analysis on the chain that carries most of it - Address-level balance reconstruction at any block - Exchange deposit and withdrawal attribution - Native TRX movement separated from token movement ## Tables (1) ### transfers — 43 columns One row per TRX, TRC-10 or TRC-20 transfer, with sender, receiver, token metadata and the USD value at block time. S3 prefix: tron/transfers File naming: _.parquet, 50 blocks per file, sorted ascending Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/tron/transfers/78861100_78861149.parquet Sample updated: Jan 20, 2026 | column | type | description | | --- | --- | --- | | Block_Number | Int64 | Block height | | Block_Time | DateTime | Block timestamp, UTC | | Block_Date | Date | UTC date of the block | | 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 block time | | Transfer_CallIndex | UInt64 | Index of the call the transfer happened in | | Transfer_Currency_AssetId | String | TRC-10 asset id; the string 0 for native TRX and empty for TRC-20 | | Transfer_Currency_Decimals | Int64 | Decimals of the transferred currency | | Transfer_Currency_Delegated | String | Whether the currency is delegated; the string true or false | | Transfer_Currency_DelegatedTo | String | Address the currency is delegated to; empty when it is not | | Transfer_Currency_Fungible | String | Whether the currency is fungible; true or false | | Transfer_Currency_Name | String | Name of the transferred currency | | Transfer_Currency_HasURI | String | Whether the currency carries a metadata URI; true or false | | Transfer_Currency_Native | String | true for native TRX, false for TRC-10 and TRC-20. Filter on this to separate base-asset flow from token flow | | Transfer_Currency_Symbol | String | Symbol reported by the contract; repeats across tokens, so join on the contract address | | Transfer_Currency_SmartContract | String | Contract of the transferred token; empty for native TRX. USDT is TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t | | Transfer_Currency_ProtocolName | String | Token standard, for example trc20 or trc10 | | Transfer_TransactionIndex | UInt64 | Position of the transaction within the block | | Transfer_URI | String | Metadata URI for non-fungible transfers; empty otherwise | | Transfer_Success | String | Whether the transfer succeeded; true or false | | Transfer_Sender | String | Sending address, base58 | | Transfer_Receiver | String | Receiving address, base58 | | Transfer_LogIndex | UInt64 | Log index within the transaction; the event index for TRC-20 transfers | | Transfer_Index | UInt64 | Transfer index within the transaction | | Transfer_Data | String | Raw transfer payload; empty on TRX, TRC-10 and TRC-20 transfers, which is all of them today | | Transfer_Id | String | Token id for non-fungible transfers; the string 0 when there is none, not empty | | Witness_Signature | String | Signature of the block producer | | Witness_Address | String | Address of the block producer | | TransactionStatus_Success | String | Whether the transaction succeeded; the string true or false | | Transaction_Fee | String | Transaction fee in TRX, decimal adjusted from SUN, as a decimal string | | Transaction_FeePayer | String | Address that paid the fee, which is the transaction sender | | Transaction_Hash | String | Hash of the transaction this transfer settled in; the join key to the transactions and events tables | | Transaction_FeeInUSD | Float64 | Transaction fee valued in USD at block time | | Log_Signature_Name | String | Decoded event name, for example Transfer | | Log_Signature_Signature | String | Full event signature | | Log_Signature_Type | String | Whether the event signature came from a registered ABI; the string true or false | | Log_Signature_SignatureHash | String | Event topic0, hex without a 0x prefix | | Contract_Address | String | Contract the transaction called | | Contract_Type | String | TRON contract type, for example TriggerSmartContract or TransferContract | | Call_Signature_Name | String | Decoded function name | | Call_Signature_Signature | String | Full function signature | | Call_Signature_Type | String | Whether the function signature came from a registered ABI; the string true or false | | Call_Signature_SignatureHash | String | Four-byte selector, hex without a 0x prefix | ## Price - Latest month (Aug 23, 2026 → Sep 23, 2026): $200 one-time, USD - Last 12 months (Sep 23, 2025 → Sep 23, 2026): $1,200 one-time, USD - Last 24 months (Sep 23, 2024 → Sep 23, 2026): $2,400 one-time, USD - Full history (Jun 25, 2018 → Sep 23, 2026): $6,000 one-time, USD Every window includes all 43 columns. Only the time range changes. ## Questions buyers ask Q: What is in the TRON Transfers dataset? A: One Parquet table with 43 columns: every TRX, TRC-10 and TRC-20 transfer, one row each, with sender, receiver, amount, token metadata, the transaction it settled in, and the fee. Q: How big is it? A: About 13.2 billion rows and 1.9 TiB across 100 monthly partitions. Roughly 245 million transfers in the last 30 days and 2.9 billion in the last 12 months. Figures are approximate until the delivery manifest is generated. Q: How far back does it go? A: To June 2018, when TRON mainnet launched, through to yesterday. The full window is the whole chain. Q: How do I get USDT only, or native TRX only? A: Filter Transfer_Currency_SmartContract to TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t for USDT. For base-asset flow with no tokens, filter Transfer_Currency_Native to true. In the week to 21 September 2026 those were 16.7 million and 30.5 million rows respectively, out of 59.9 million. Q: Where is the raw integer amount? A: Transfer_Amount is decimal adjusted. Multiply it by 10 to the power of Transfer_Currency_Decimals for the raw on-chain integer. We ship the adjusted value because the decimals differ per token and the raw figure is wrong without them. Q: How are these produced, and how were they checked? A: Decoded from TRON mainnet and indexed with no time-to-live, so nothing is a rolling window. The published sample was read back with pyarrow before release: 11,488 rows across 50 blocks, 97.6% carrying a USD value, no amount above a million dollars. Q: What should I watch out for? A: Amounts are decimal strings, so casting to float loses precision on large values. Token symbols come from the contract and repeat, so join on the contract address. Failed transactions are kept, so filter TransactionStatus_Success when you want settled flow only. Q: How are chain reorganisations handled? A: TRON finalises quickly and the dump is built behind the head, so a delivered file is not rewritten. Incremental daily partitions are appended, never edited in place, and the manifest records the block range each file covers. Q: How do I load it? A: One line in DuckDB: SELECT * FROM read_parquet('transfers/*.parquet') LIMIT 10. Pandas works too: pandas.read_parquet(path). The sample file opens without credentials. Q: How current is it, and how is it delivered? A: Refreshed daily with T+1 latency, so a purchase made today includes everything to yesterday. Delivered as Parquet named by block range and sorted ascending, under a stable S3 layout, with a JSON manifest listing every file and its sha256. Signed HTTPS links are emailed once the files are prepared, or we deliver into your own S3, GCS or BigQuery. ## 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.