Skip to main content
Schema: tron.core Table: ez_token_transfers Type: Base Table

What

This convenience table provides a comprehensive view of all TRC-20 token transfers on Tron with enriched metadata including decimal adjustments, USD values, and token information. It simplifies token flow analysis by joining transfer events with contract details and price data.

Key Use Cases

  • Tracking token movements and holder activity
  • Analyzing stablecoin flows and volumes (USDT is the dominant stablecoin on Tron)
  • Monitoring DEX token inflows and outflows
  • Detecting new token launches and adoption
  • Calculating wallet token balances from transfer history

Important Relationships

  • Join with fact_event_logs: Use tx_hash and event_index for raw event details
  • Join with fact_transactions: Use tx_hash for transaction context
  • Join with dim_contracts: Use contract_address = address for additional token metadata
  • Complement to ez_native_transfers: Together provides a complete picture of all value flows on Tron

Commonly-used Fields

  • contract_address: The TRC-20 token contract address
  • from_address: Token sender address
  • to_address: Token recipient address
  • amount: Decimal-adjusted transfer amount
  • amount_usd: USD value at time of transfer
  • symbol: Token symbol (e.g., USDT, USDC)

Sample queries

-- Top token transfers by USD value
SELECT
    block_timestamp,
    tx_hash,
    symbol,
    from_address,
    to_address,
    amount,
    amount_usd,
    contract_address
FROM tron.core.ez_token_transfers
WHERE block_timestamp >= CURRENT_DATE - 7
    AND amount_usd > 100000  -- Over $100k
ORDER BY amount_usd DESC
LIMIT 100;

-- Daily USDT volume on Tron
SELECT
    DATE_TRUNC('day', block_timestamp) AS day,
    COUNT(*) AS transfer_count,
    COUNT(DISTINCT from_address) AS unique_senders,
    SUM(amount) AS total_usdt,
    SUM(amount_usd) AS total_usd
FROM tron.core.ez_token_transfers
WHERE symbol = 'USDT'
    AND block_timestamp >= CURRENT_DATE - 30
GROUP BY 1
ORDER BY 1 DESC;

-- Most transferred tokens by transaction count
SELECT
    contract_address,
    symbol,
    name,
    COUNT(*) AS transfer_count,
    COUNT(DISTINCT from_address) AS unique_senders,
    COUNT(DISTINCT to_address) AS unique_receivers
FROM tron.core.ez_token_transfers
WHERE block_timestamp >= CURRENT_DATE - 7
GROUP BY 1, 2, 3
ORDER BY 4 DESC
LIMIT 50;

-- Token holder activity
SELECT
    from_address,
    COUNT(DISTINCT contract_address) AS tokens_sent,
    COUNT(DISTINCT DATE(block_timestamp)) AS active_days,
    COUNT(*) AS total_transfers,
    SUM(amount_usd) AS total_usd_sent
FROM tron.core.ez_token_transfers
WHERE block_timestamp >= CURRENT_DATE - 30
    AND amount_usd IS NOT NULL
    AND amount_usd > 10  -- Filter dust
GROUP BY 1
HAVING COUNT(*) > 10
ORDER BY total_usd_sent DESC
LIMIT 100;

Columns

Column NameData TypeDescription
BLOCK_NUMBERNUMBERSequential counter representing the position of a block in the Tron blockchain since genesis (block 0). Key Facts: Immutable once finalized Primary ordering mechanism for blockchain data Increments by 1 for each new block Encoded in the first bytes of blockhash Usage in Queries: Important: Many early Tron blocks are empty (zero transactions). Expect blocknumber gaps in transaction-based tables.
BLOCK_TIMESTAMPTIMESTAMP_NTZUTC timestamp when the block was produced by the super representative (SR). Format: TIMESTAMP_NTZ (no timezone) Precision: Second-level accuracy Best Practices: Note: Tron produces blocks every 3 seconds via DPoS consensus.
TX_HASHTEXTUnique identifier for the transaction. Format: 0x + 64 hexadecimal characters Usage: Primary key for transaction lookups Join key for event logs, internal transactions, and token transfers Immutable once confirmed Example: ‘0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060’
TX_POSITIONNUMBERZero-indexed position of the transaction within its block. Example: 5
EVENT_INDEXNUMBERZero-based sequential position of the event log within the transaction’s execution. Key Facts: Starts at 0 for first event Increments across all contracts in transaction Preserves execution order Used with tx_hash as a composite key for unique event identification
FROM_ADDRESSTEXTToken sender address, decoded from the Transfer event topic_1, in 0x-prefixed hex format. Example: ‘0x1234567890123456789012345678901234567890’
TO_ADDRESSTEXTToken recipient address, decoded from the Transfer event topic_2, in 0x-prefixed hex format. Example: ‘0xabcdefabcdefabcdefabcdefabcdefabcdefabcd’
CONTRACT_ADDRESSTEXTThe TRC-20 token contract address that emitted the Transfer event (NOT the recipient). Example: ‘0xa614f803b6fd780986a42c78ec9c7f77e6ded13c’
TOKEN_STANDARDTEXTThe token standard for the transfer. Always ‘trc20’ in this table. Example: ‘trc20’
TOKEN_IS_VERIFIEDBOOLEANBoolean flag indicating if the token is verified by the Flipside team. Example: true
NAMETEXTHuman-readable contract name from the name() function. NULL if not a token or metadata unavailable. Example: ‘Tether USD’
SYMBOLTEXTToken symbol from the symbol() function. NULL if not a token or metadata unavailable. Example: ‘USDT’
DECIMALSNUMBERNumber of decimal places for token amounts, read directly from the contract. TRX uses 6 decimals; most TRC-20 tokens use 18. NULL if not a token or metadata unavailable. Example: 6
RAW_AMOUNT_PRECISETEXTRaw token amount without decimal adjustment, as a string for precision preservation. Example: ‘1000500000’
RAW_AMOUNTFLOATRaw token amount without decimal adjustment, as a float. Example: 1000500000
AMOUNT_PRECISETEXTDecimal-adjusted token amount as a string for full precision. Example: ‘1000.500000’
AMOUNTFLOATDecimal-adjusted token amount as a float. Example: 1000.5
AMOUNT_USDFLOATUSD value of the token transfer at the time of the transaction. NULL if price data unavailable. Example: 1000.5
ORIGIN_FUNCTION_SIGNATURETEXTFunction signature (first 4 bytes) of the called method in the originating transaction. Format: 0x + 8 hex characters Common Signatures: 0xa9059cbb: transfer(address,uint256) 0x095ea7b3: approve(address,uint256) 0x23b872dd: transferFrom(address,address,uint256) Note: NULL for simple TRX transfers or non-contract calls.
ORIGIN_FROM_ADDRESSTEXTThe address that initiated the originating transaction, in 0x-prefixed hex format. Useful when viewing events or internal transactions to trace back to the original caller.
ORIGIN_TO_ADDRESSTEXTThe destination address of the originating transaction. For contract interactions, this is the contract that was directly called (not necessarily the contract that emitted the event).
EZ_TOKEN_TRANSFERS_IDTEXTPrimary key — unique identifier for each row ensuring data integrity. Format: VARCHAR containing composite key generated using MD5 hash of the relevant columns. Usage: Deduplication in incremental loads Join operations for data quality checks Troubleshooting specific records
INSERTED_TIMESTAMPTIMESTAMP_NTZUTC timestamp when the record was first added to the Flipside database. Format: TIMESTAMP_NTZ Use Cases: Data freshness monitoring Incremental processing markers Debugging data pipeline issues
MODIFIED_TIMESTAMPTIMESTAMP_NTZUTC timestamp of the most recent update to this record. Format: TIMESTAMP_NTZ Use Cases: Tracking data corrections and reprocessing Monitoring incremental model updates Data quality audits