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

# Transfers

> Every fungible token transfer.

`facts.token_transfers` holds one row per fungible token transfer, read from the Transfer logs token contracts emit onchain. `token_type` names the token standard and `chain_id` the chain.

## Columns

<table>
  <thead>
    <tr>
      <th width="280">Column</th>
      <th width="130">Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><code>block\_timestamp</code></td>
      <td><code>TIMESTAMP</code></td>
      <td>Time of the block containing the transfer. Partition column.</td>
    </tr>

    <tr>
      <td><code>block\_number</code></td>
      <td><code>INT64</code></td>
      <td>Number of the block containing the transfer.</td>
    </tr>

    <tr>
      <td><code>transaction\_hash</code></td>
      <td><code>STRING</code></td>
      <td>Hash of the transaction that emitted the transfer.</td>
    </tr>

    <tr>
      <td><code>log\_index</code></td>
      <td><code>INT64</code></td>
      <td>Position of the Transfer log in the block.</td>
    </tr>

    <tr>
      <td><code>unique\_id</code></td>
      <td><code>INT64</code></td>
      <td>Row key: fingerprint of <code>chain\_id</code>, <code>block\_number</code>, <code>transaction\_hash</code>, <code>log\_index</code>.</td>
    </tr>

    <tr>
      <td><code>chain\_id</code></td>
      <td><code>STRING</code></td>
      <td>Chain the transfer happened on.</td>
    </tr>

    <tr>
      <td><code>token\_type</code></td>
      <td><code>STRING</code></td>
      <td>Token standard, such as <code>erc20</code>.</td>
    </tr>

    <tr>
      <td><code>token\_id</code></td>
      <td><code>STRING</code></td>
      <td>Token transferred: <code>\{token\_address}-\{chain\_id}</code>.</td>
    </tr>

    <tr>
      <td><code>token\_address</code></td>
      <td><code>STRING</code></td>
      <td>Contract address of the token.</td>
    </tr>

    <tr>
      <td><code>from\_address</code></td>
      <td><code>STRING</code></td>
      <td>Account the value left.</td>
    </tr>

    <tr>
      <td><code>to\_address</code></td>
      <td><code>STRING</code></td>
      <td>Account the value arrived at.</td>
    </tr>

    <tr>
      <td><code>value\_raw</code></td>
      <td><code>STRING</code></td>
      <td>Raw amount as text; a <code>uint256</code> exceeds every BigQuery number type.</td>
    </tr>
  </tbody>
</table>

## Sample queries

<Warning>
  The table is partitioned on `block_timestamp` and holds billions of rows. Bound that column in every query; without a bound the query reads the whole table.
</Warning>

<Tabs>
  <Tab title="One token, one day">
    **Read one token's transfers on a single day.** Cast `value_raw` to `BIGNUMERIC` and divide by `10^decimals` from `dimensions.tokens` to get the token amount.

    ```sql theme={null}
    select
        transfers.block_timestamp,
        transfers.transaction_hash,
        transfers.from_address,
        transfers.to_address,
        cast(transfers.value_raw as bignumeric) / pow(10, tokens.decimals) as amount
    from `facts.token_transfers` as transfers
    join `dimensions.tokens` as tokens
        using (token_id)
    where transfers.token_id = '0xdac17f958d2ee523a2206206994597c13d831ec7-ethereum'
      and transfers.block_timestamp >= timestamp('2026-08-01')
      and transfers.block_timestamp < timestamp('2026-08-02')
    limit 100
    ```
  </Tab>

  <Tab title="Largest transfers">
    **Rank the largest transfers of one token in a window.**

    ```sql theme={null}
    select
        transfers.block_timestamp,
        transfers.transaction_hash,
        transfers.from_address,
        transfers.to_address,
        cast(transfers.value_raw as bignumeric) / pow(10, tokens.decimals) as amount
    from `facts.token_transfers` as transfers
    join `dimensions.tokens` as tokens
        using (token_id)
    where transfers.token_id = '0xdac17f958d2ee523a2206206994597c13d831ec7-ethereum'
      and transfers.block_timestamp >= timestamp('2026-08-01')
      and transfers.block_timestamp < timestamp('2026-08-08')
    order by amount desc
    limit 20
    ```
  </Tab>
</Tabs>
