BitqueryBitqueryData Store
TronTransfers

TRON Transfers

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.

Coverage
Jun 25, 2018→ Sep 23, 2026 · yesterday
Rows
≈13Brows · estimate
Table
1transfers
Columns
43typed
Coverage ends yesterday, UTC

Overview

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.

Use cases

  • 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

Table

43 columns · free sample for the table

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.

tron/transfers<start_block>_<end_block>.parquet50 blocks per file, sorted ascending
Browse columns Sample fileSample updated Jan 20, 2026

Schema reference

copies a column name
43 columns
ColumnTypeDescription
Block3
Block_NumberInt64Block height
Block_TimeDateTimeBlock timestamp, UTC
Block_DateDateUTC date of the block
Transfer12
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 block time
Transfer_CallIndexUInt64Index of the call the transfer happened in
Transfer_TransactionIndexUInt64Position of the transaction within the block
Transfer_URIStringMetadata URI for non-fungible transfers; empty otherwise
Transfer_SuccessStringWhether the transfer succeeded; true or false
Transfer_SenderStringSending address, base58
Transfer_ReceiverStringReceiving address, base58
Transfer_LogIndexUInt64Log index within the transaction; the event index for TRC-20 transfers
Transfer_IndexUInt64Transfer index within the transaction
Transfer_DataStringRaw transfer payload; empty on TRX, TRC-10 and TRC-20 transfers, which is all of them today
Transfer_IdStringToken id for non-fungible transfers; the string 0 when there is none, not empty
Transfer_Currency11
Transfer_Currency_AssetIdStringTRC-10 asset id; the string 0 for native TRX and empty for TRC-20
Transfer_Currency_DecimalsInt64Decimals of the transferred currency
Transfer_Currency_DelegatedStringWhether the currency is delegated; the string true or false
Transfer_Currency_DelegatedToStringAddress the currency is delegated to; empty when it is not
Transfer_Currency_FungibleStringWhether the currency is fungible; true or false
Transfer_Currency_NameStringName of the transferred currency
Transfer_Currency_HasURIStringWhether the currency carries a metadata URI; true or false
Transfer_Currency_NativeStringtrue for native TRX, false for TRC-10 and TRC-20. Filter on this to separate base-asset flow from token flow
Transfer_Currency_SymbolStringSymbol reported by the contract; repeats across tokens, so join on the contract address
Transfer_Currency_SmartContractStringContract of the transferred token; empty for native TRX. USDT is TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
Transfer_Currency_ProtocolNameStringToken standard, for example trc20 or trc10
Witness2
Witness_SignatureStringSignature of the block producer
Witness_AddressStringAddress of the block producer
TransactionStatus1
TransactionStatus_SuccessStringWhether the transaction succeeded; the string true or false
Transaction4
Transaction_FeeStringTransaction fee in TRX, decimal adjusted from SUN, as a decimal string
Transaction_FeePayerStringAddress that paid the fee, which is the transaction sender
Transaction_HashStringHash of the transaction this transfer settled in; the join key to the transactions and events tables
Transaction_FeeInUSDFloat64Transaction fee valued in USD at block time
Log4
Log_Signature_NameStringDecoded event name, for example Transfer
Log_Signature_SignatureStringFull event signature
Log_Signature_TypeStringWhether the event signature came from a registered ABI; the string true or false
Log_Signature_SignatureHashStringEvent topic0, hex without a 0x prefix
Contract2
Contract_AddressStringContract the transaction called
Contract_TypeStringTRON contract type, for example TriggerSmartContract or TransferContract
Call4
Call_Signature_NameStringDecoded function name
Call_Signature_SignatureStringFull function signature
Call_Signature_TypeStringWhether the function signature came from a registered ABI; the string true or false
Call_Signature_SignatureHashStringFour-byte selector, hex without a 0x prefix
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, delivered as signed download links by email after payment, in this layout:

# transfers — 50 blocks per file, sorted ascending
tron/transfers<start_block>_<end_block>.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. Get signed linksThe team prepares the export and emails the links.

Time windows

Every window includes 43 columns. Only the time range changes.

31 days
Latest month
Aug 23, 2026 → Sep 23, 2026
$200
Pay now
365 days
Last 12 months
Sep 23, 2025 → Sep 23, 2026
$1,200
Pay now
730 days
Last 24 months
Sep 23, 2024 → Sep 23, 2026
$2,400
Pay now
3,012 days
Full history
Jun 25, 2018 → Sep 23, 2026
$6,000
Pay now
In every window
  • The transfers table, 43 columns
  • Parquet files in the layout under Delivery
  • Signed download links by email
  • Licensed under the Data License

FAQ

10 questions
What is in the TRON Transfers dataset?

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.

How big is it?

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.

How far back does it go?

To June 2018, when TRON mainnet launched, through to yesterday. The full window is the whole chain.

How do I get USDT only, or native TRX only?

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.

Where is the raw integer amount?

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.

How are these produced, and how were they checked?

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.

What should I watch out for?

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.

How are chain reorganisations handled?

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.

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 file opens without credentials.

How current is it, and how is it delivered?

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.