Skip to main content
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

ColumnTypeDescription
block_timestampTIMESTAMPTime of the block containing the transfer. Partition column.
block_numberINT64Number of the block containing the transfer.
transaction_hashSTRINGHash of the transaction that emitted the transfer.
log_indexINT64Position of the Transfer log in the block.
unique_idINT64Row key: fingerprint of chain_id, block_number, transaction_hash, log_index.
chain_idSTRINGChain the transfer happened on.
token_typeSTRINGToken standard, such as erc20.
token_idSTRINGToken transferred: {token_address}-{chain_id}.
token_addressSTRINGContract address of the token.
from_addressSTRINGAccount the value left.
to_addressSTRINGAccount the value arrived at.
value_rawSTRINGRaw amount as text; a uint256 exceeds every BigQuery number type.

Sample queries

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