> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dune.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tron Token Transfers

> Curated and enriched fungible token transfer activity on the Tron blockchain.

export const TableSample = ({tableName, tableSchema}) => <>
    <div className="hidden dark:block">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}&darkMode=true`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
    <div className="dark:hidden">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
  </>;

The `tokens_tron.transfers` table contains curated fungible token transfer activity for Tron assets indexed on Dune. This dataset encompasses:

* TRC20 token transfers decoded from `Transfer` event logs
* Native TRX transfers from successful transactions with non-zero value

<Info>
  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](/data-catalog/tron/tokens/transfers/erc20-transfers).
</Info>

### 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

The `tokens_tron.transfers` table is built from two source paths:

* **TRC20 transfers** — decoded from `erc20_tron.evt_Transfer` and joined to `tron.transactions` for transaction context
* **Native TRX transfers** — successful `tron.transactions` rows with `value > 0`

Each row is enriched with token symbol and decimals from `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.

<Note>
  In `tokens_multichain.transfers`, Tron rows use the base58 `*_varchar` address columns from this table rather than 0x hex casts from the EVM union.
</Note>

### Pricing Methodology

The `price_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](/data-catalog/curated/prices/overview).

## 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                                     |

<TableSample tableSchema="tokens_tron" tableName="transfers" />

## Query Performance

**Partition key:** `block_month`

Always include `block_date` or `block_month` in your `WHERE` clause for partition pruning.

```sql theme={null}
-- ✅ Good: date filter on partition column
SELECT *
FROM tokens_tron.transfers
WHERE block_date >= CURRENT_DATE - INTERVAL '7' DAY
  AND contract_address_varchar = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t' -- USDT

-- ❌ Slow: no partition filters
SELECT *
FROM tokens_tron.transfers
WHERE from_varchar = 'T...'
```

## 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:

```sql theme={null}
SELECT
    block_time,
    token_standard,
    symbol,
    CASE
        WHEN from_varchar = 'TYPF789fwTYPSbkahd51QbPkY3N3n9XHm' THEN 'Outgoing'
        WHEN to_varchar = 'TYPF789fwTYPSbkahd51QbPkY3N3n9XHm' THEN 'Incoming'
    END AS direction,
    amount,
    amount_usd,
    contract_address_varchar
FROM tokens_tron.transfers
WHERE (
        from_varchar = 'TYPF789fwTYPSbkahd51QbPkY3N3n9XHm'
        OR to_varchar = 'TYPF789fwTYPSbkahd51QbPkY3N3n9XHm'
    )
    AND block_date >= CURRENT_DATE - INTERVAL '30' DAY
ORDER BY block_time DESC
LIMIT 100
```

**Calculate daily USDT transfer volume on Tron**

This query aggregates daily transfer activity for USDT, the dominant Tron token:

```sql theme={null}
SELECT
    block_date,
    COUNT(*) AS num_transfers,
    COUNT(DISTINCT from_varchar) AS unique_senders,
    SUM(amount_usd) AS transfer_volume_usd
FROM tokens_tron.transfers
WHERE contract_address_varchar = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'
    AND block_date >= CURRENT_DATE - INTERVAL '30' DAY
GROUP BY 1
ORDER BY 1 DESC
```

**Split TRC20 and native TRX transfer activity**

This query compares transfer counts and volume by token standard:

```sql theme={null}
SELECT
    block_date,
    token_standard,
    COUNT(*) AS num_transfers,
    SUM(amount_usd) AS transfer_volume_usd
FROM tokens_tron.transfers
WHERE block_date >= CURRENT_DATE - INTERVAL '30' DAY
GROUP BY 1, 2
ORDER BY 1 DESC, 2
```

## Related Tables

* [TRC20 Transfers](/data-catalog/tron/tokens/transfers/erc20-transfers) — raw TRC20 `Transfer` event logs
* [USDT on Tron](/data-catalog/tron/tether) — decoded Tether contract events
* [Stablecoin Transfers (Tron)](/data-catalog/curated/stablecoins/transfers/stablecoins-tron-transfers) — stablecoin-only subset with issuer metadata
