Skip to main content
One row per cross-chain transfer, with the sending and arriving legs matched onto the same row. transfer_amount_usd holds the transfer valued once in USD, taken from whichever leg the row is anchored on.

Columns

ColumnTypeDescription
block_timestampTIMESTAMPTime of the block the row is anchored on: the sending leg’s block, or the arriving leg’s on a row anchored there. Partition column.
project_idSTRINGProject operating the bridge.
product_idSTRINGVersion of the bridge within that project.
app_idSTRINGBridge app the transfer went through: chainlink-ccip, circle-cctp-v1, circle-cctp-v2, layerzero-v1 or layerzero-v2.
match_keySTRINGIdentifier the two legs are paired on, published by the bridge itself, such as LayerZero’s GUID or CCIP’s message id.
match_methodSTRINGHow the two legs were paired. Reads exact on a row with both legs.
latency_secondsINT64Seconds the transfer took: the arriving block’s time minus the sending block’s. Populated on a row with both legs.
unmatched_reasonSTRINGWhy a row has a single leg. On a row anchored on its sending leg it reads source_key_missing, destination_chain_not_indexed, destination_leg_not_decoded or destination_pending_or_failed; on one anchored on its arriving leg, destination_key_missing, source_chain_not_indexed, source_leg_not_decoded or source_leg_missing.
intermediary_addressSTRINGAddress of the relayer that relayed the message, on bridges that name one.
source_chain_idSTRINGChain the transfer left. Clustering column.
source_transaction_hashSTRINGHash of the transaction the sending leg was in.
source_log_indexINT64Position of the sending event within its block.
source_sub_log_indexINT64Which token inside a sending event that moved more than one, counting up from zero. CCIP sending legs are the ones that move more than one.
source_block_timestampTIMESTAMPTime of the block the transfer left in.
source_block_numberINT64Number of that block.
source_sender_addressSTRINGAddress that sent the transfer.
source_recipient_addressSTRINGAddress the sending leg names as the recipient.
source_token_addressSTRINGToken contract on the chain the transfer left.
source_token_idSTRINGThat token’s key in dimensions.tokens.
source_bridge_contract_addressSTRINGBridge contract the sending event came from.
source_amount_rawBIGNUMERICAmount leaving, in the token’s smallest units, before decimals are applied.
destination_chain_idSTRINGChain the transfer arrived on. Clustering column.
destination_transaction_hashSTRINGHash of the transaction the arriving leg was in.
destination_log_indexINT64Position of the arriving event within its block.
destination_block_timestampTIMESTAMPTime of the block the transfer arrived in.
destination_block_numberINT64Number of that block.
destination_sender_addressSTRINGSender named on the arriving leg.
destination_recipient_addressSTRINGAddress that received the transfer.
destination_token_addressSTRINGToken contract on the chain the transfer arrived on.
destination_token_idSTRINGThat token’s key in dimensions.tokens.
destination_bridge_contract_addressSTRINGBridge contract the arriving event came from.
destination_amount_rawBIGNUMERICAmount arriving, in the token’s smallest units, before decimals are applied.
source_transfer_amountFLOAT64Amount leaving, in whole token units.
source_transfer_amount_usdFLOAT64Amount leaving, in USD, measured on the sending leg.
destination_transfer_amountFLOAT64Amount arriving, in whole token units. On bridges whose arrival event omits the amount, such as CCIP, this takes the sending leg’s amount.
destination_transfer_amount_usdFLOAT64Amount arriving, in USD, measured on the arriving leg, with the same fallback.
transfer_amountFLOAT64The transfer counted once, in whole token units: the sending leg’s amount, or the arriving leg’s on a row anchored there.
transfer_amount_usdFLOAT64The transfer counted once, in USD. Sum this column for total volume; the two directional columns describe the same value from opposite ends.

Sample queries

This table is large and split by day. Bound block_timestamp and filter source_chain_id on every query, or you read the whole table and the whole table is billed to you.
source_chain_id is a clustering column alongside the partition, so a single chain over one day reads a fraction of that day. Amounts here are the sending leg’s own, in the token’s units and in USD.