The tokens.transfers table contains token transfer events across ERC20 tokens and native tokens for all EVM-compatible networks indexed on Dune. This dataset encompasses:

  • Transfer events for ERC20 tokens
  • WETH deposits and withdrawals
  • Native currency transfers
    • Transaction value transfers
    • Trace value transfers
    • Gas used transfers

Some erc20 tokens and native currencies have non-standard ways of being transferred and might not be included in the transfers table. You can check the logic for the transfers table here. The level of detail of the transfers table will vary by chain.

Utility

The transfers table provides a comprehensive view of token movement across networks, enabling you to:

  • Track token flows between addresses
  • Analyze transaction volumes and patterns
  • Identify significant token movements
  • Monitor exchange and DeFi protocol activity

The table contains the following columns:

Datatypes on Snowflake datashare are different in some cases, read more here.

Network Coverage

Transfer data is available for the following EVM-compatible networks:

Sample Queries

Query recent token transfers for a specific address

This query returns the most recent token transfers (both incoming and outgoing) for a specified address:

SELECT
    block_time,
    symbol,
    CASE 
        WHEN "from" = 0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77 THEN 'Outgoing'
        WHEN "to" = 0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77 THEN 'Incoming'
    END AS direction,
    amount,
    amount_usd
FROM tokens.transfers
WHERE ("from" = 0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77 OR "to" = 0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77)
    AND block_time > now() - interval '30' day
ORDER BY block_time DESC
LIMIT 100

Calculate daily transfer volume for a specific token

This query calculates the daily transfer volume for a specific ERC20 token.

Please be aware that token volumes are not necessarily indicative of anything. These metric can be misleading if the token is not well-known or if there are a lot of small transfers. Token transfers can be mints, burns, transfers, flashloans and anything in between, trying to read into the data can lead to misleading results.

SELECT
    block_date,
    COUNT(*) AS num_transfers,
    SUM(amount) AS total_amount,
    SUM(amount_usd) AS total_amount_usd
FROM tokens.transfers
WHERE contract_address = 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984
    AND block_time > now() - interval '30' day
    and blockchain = 'ethereum'
GROUP BY 1
ORDER BY 1 DESC

Identify largest transfers in the last 24 hours

This query finds the largest token transfers by USD value in the last 24 hours:

SELECT
    block_time,
    token_symbol,
    "from",
    "to",
    amount,
    amount_usd
FROM tokens.transfers
WHERE block_time > now() - interval '1' day
    AND amount_usd IS NOT NULL
ORDER BY amount_usd DESC
LIMIT 50