Skip to main content
One row per fungible token movement in facts_tokens.transfers: a transfer, a mint or a burn, on every chain we decode. amount_raw is the amount in the token’s smallest unit, so divide by 10^decimals from dimensions.tokens to read whole tokens.

Coverage

Every chain we cover token transfers on.
acalaalephzeroevmalgorandaptosarbitrumastaravalanchebaseberachainblastbobbobanetworkbsccardanocelestiacelocentrifugechainflipcosmoshubdydxethereumfantomflowflowevmfraxtalgnosisgravityalphahederahydradxhydradxevmhyperevmimmutablezkevminjectiveinjectiveevminkinterlayiotexkatananetworklineamantamantaatlanticmantramantrachainmantraevmmegaethmonadmoonbeammovementnearneurowebnobleopbnboptimismosmosispeaqphalaplasmapolimecpolkadexpolkadotassethubpolygonripplerobinhoodchainroninrootstockscrollseiseievmsolanasonicstacksstarknetstellarsuitempotontronunichainvictionworldchainxaixdcxlayerzksyncera

Columns

ColumnTypeDescription
partition_keyTIMESTAMPThe month the row belongs to. The table is partitioned on it, so a date filter is cheapest when it names this alongside block_timestamp.
block_timestampTIMESTAMPWhen the block was produced.
block_numberINT64Block height, or the slot on Solana.
transaction_hashSTRINGTransaction the movement belongs to. Null on hydradx, where a transfer can be emitted by a block hook instead of by a transaction.
transaction_indexINT64Position of the transaction in its block. Solana only.
outer_event_indexINT64Enclosing instruction position on Solana. Null on the log-shaped chains, which have one nesting level, and null on Solana wherever the instruction is top level and has nothing enclosing it.
event_indexINT64Position within the transaction: the log index, or the instruction index on Solana.
chain_idSTRINGChain the movement happened on.
token_typeSTRINGToken standard: erc20, spl or trc20.
token_idSTRINGJoin key to dimensions.tokens.
token_addressSTRINGThe token. Filter on this. Null on the Solana transfers whose token account the upstream decode could not resolve, which leaves token_id null on the same rows.
event_typeSTRINGtransfer, mint or burn.
from_addressSTRINGAccount debited. Null on a mint.
to_addressSTRINGAccount credited. Null on a burn.
to_ownerSTRINGHolder behind to_address. Solana transfers only: null on exactly the rows where token_address is, and always null on mints and burns.
authority_addressSTRINGAccount that authorised the instruction. Solana only.
transaction_signerSTRINGSigner of the enclosing transaction. Solana only.
executing_accountSTRINGProgram that executed the instruction. Solana only.
amount_rawSTRINGAmount in the token’s smallest unit, as a decimal string, because a uint256 exceeds every BigQuery numeric type. Divide by 10^decimals.
surrogate_keyBYTESRow identity, a 128-bit hash of the columns that define the grain. Stable across rebuilds; compare it with from_hex.

Sample queries

This table is large and split by month on partition_key. Bound block_timestamp and filter chain_id on every query, or you read the whole table and the whole table is billed to you.
dimensions.asset_tokens turns one asset into its deployments, and dimensions.tokens has the decimals that turn amount_raw into whole tokens.