tokens_tron.transfers table contains curated fungible token transfer activity for Tron assets indexed on Dune. This dataset encompasses:
- TRC20 token transfers decoded from
Transferevent logs - Native TRX transfers from successful transactions with non-zero value
The table aims to capture standard Tron fungible token movement. Some TRC20 tokens use non-standard transfer patterns that may not appear here. For raw TRC20 event logs without enrichment, see TRC20 Transfers.
Utility
The Tron transfers table provides a consistent view of fungible token movement on Tron, enabling you to:- Track token flows between wallets, contracts, and exchanges
- Analyze transfer volume by token, address, and day
- Monitor large stablecoin movements such as USDT
- Build wallet activity feeds with both base58 and hex address columns
Methodology
Thetokens_tron.transfers table is built from two source paths:
- TRC20 transfers — decoded from
erc20_tron.evt_Transferand joined totron.transactionsfor transaction context - Native TRX transfers — successful
tron.transactionsrows withvalue > 0
tokens.erc20, then priced from prices_external.hour. The table exposes both VARBINARY (0x) and VARCHAR (base58) representations for addresses and transaction hashes via the *_varchar columns.
In
tokens_multichain.transfers, Tron rows use the base58 *_varchar address columns from this table rather than 0x hex casts from the EVM union.Pricing Methodology
Theprice_usd and amount_usd columns come from Dune’s external hourly price feed (prices_external.hour). If a token has a price for that hour, the transfer row gets a USD price and value. If not, both columns stay NULL.
For tokens outside Dune’s trusted token set, very large computed USD values are set to NULL to avoid inflated outlier prices.
For more details on Dune’s pricing methodology, see the Prices documentation.
Table Schema
| Column | Type | Description |
|---|---|---|
unique_key | VARCHAR | Surrogate key to identify a unique transfer row |
blockchain | VARCHAR | Blockchain identifier (tron) |
block_month | DATE | Month bucket derived from block_time (partition key) |
block_date | DATE | Block date |
block_time | TIMESTAMP | Block timestamp |
block_number | BIGINT | Block number |
tx_hash | VARBINARY | Transaction hash (0x) |
evt_index | BIGINT | Log event index for TRC20 transfers; NULL for native TRX |
trace_address | ARRAY(BIGINT) | Trace address; currently NULL for Tron transfers |
token_standard | VARCHAR | Token standard (trc20 or native) |
tx_from | VARBINARY | Transaction sender (0x) |
tx_to | VARBINARY | Transaction receiver (0x) |
tx_index | BIGINT | Transaction index within the block |
from | VARBINARY | Transfer sender (0x) |
to | VARBINARY | Transfer receiver (0x) |
contract_address | VARBINARY | Token contract address for TRC20; native TRX token address for TRX rows (0x) |
tx_hash_varchar | VARCHAR | Transaction hash (base58) |
contract_address_varchar | VARCHAR | Token contract address (base58) |
from_varchar | VARCHAR | Transfer sender (base58) |
to_varchar | VARCHAR | Transfer receiver (base58) |
tx_from_varchar | VARCHAR | Transaction sender (base58) |
tx_to_varchar | VARCHAR | Transaction receiver (base58) |
symbol | VARCHAR | Token symbol |
amount_raw | UINT256 | Raw transfer amount before decimal adjustment |
amount | DOUBLE | Transfer amount in display units |
price_usd | DOUBLE | Hourly USD price used to calculate amount_usd |
amount_usd | DOUBLE | USD value of the transfer |
_updated_at | TIMESTAMP | Timestamp when this row was last written |
Query Performance
Partition key:block_month
Always include block_date or block_month in your WHERE clause for partition pruning.
Sample Queries
Query recent token transfers for a specific Tron address This query returns the most recent incoming and outgoing transfers for a wallet using base58 address columns:Related Tables
- TRC20 Transfers — raw TRC20
Transferevent logs - USDT on Tron — decoded Tether contract events
- Stablecoin Transfers (Tron) — stablecoin-only subset with issuer metadata