Bridges

Track movement of assets across major blockchain networks.

The crosschain.bridges.transfers aggregates transaction-level bridge transfers across multiple blockchains indexed by Allium.

We are actively improving bridge protocol & blockchain coverage and data completeness for the bridges vertical.

Blockchain Coverage

The crosschain.bridges.transfers includes bridge transfers indexed from the following blockchains.

Blockchains
Total Blockchains Supported

arbitrum, avalanche, base, blast, bsc, ethereum, fantom, linea, mode, optimism, polygon, scroll

12

Source and Destination Blockchain Coverage

A bridge event connects a source blockchain (origin of the asset) to a destination blockchain (target for the bridged asset).

The total number of source and destination blockchains covered can be greater than the number of blockchains covered.

An example would be indexing the canonical bridge event of L2 Worldchain will allow us to cover bridge events between Ethereum<>Worldchain without indexing Worldchain events.

Distinct Source Blockchains
Distinct Destination Blockchains

61

139

Bridge Types

We broadly classify bridges into the following types:

  • Applications bridges: bridges that have their underlying liquidity/mechanism to transfer assets across to typically more than one blockchain.

  • Canonical bridges are bridges from Ethereum to a Rollup and serve as the "official" bridge for the roll-up/blockchain and service 1 destination blockchain.

    • For Canonical Bridges protocols, OP (Optimism Stack) bridges and Arbitrum Bridges will include blockchains under the same ecosystem:

      • Optimism Stack Bridges: includes Optimism, Base, Worldchain, Mode, Mint, Redstone, RSS3, Mantle, Manta, Blast, Fraxtal, Zora bridge and more

      • Arbitrum Orbit Bridges: Arbitrum, Arbitrum Nova, Alienx

Protocol Coverage

The bridge transfer schema supports both protocols across canonical and application bridge types.

Bridge Type
Direction
Protocols
Count

application

outbound only

circle_cctp, hop, across, synapse, celer, axelar, zkbridge, stargate, symbiosis, debridge, ybridge, eywa

11

canonical

inbound and outbound

op, arbitrum, polygon, polygon_zkevm, near, sui, zk_shared_bridge, zksync, immutable_x, starknet, ronin

11

Directional Coverage

Bridge transfer events include both inbound and outbound transfers. We include inbound and outbound bridge transfers for canonical bridges only.

  • Canonical Bridges on Etheruem Mainnet

    • Bridging direction

      • Inbound: bridging from the Ethereum to the destination chain

      • Outbound: briding back to Ethereum. E.g. for Base Bridge, this will be from Base -> Ethereum

  • Application and Asset Bridges on EVM-Blockchains (including Ethereum)

    • Bridging direction

      • Outbound only: bridging from the source chain (if the transaction originated from Ethereum, this will be the source chain) to the destination

Frequently Asked Questions

Q: Why include both inbound and outbound transfers for Canonical bridges and outbound transfers only for Application bridges?

  • This combination of coverage prevents double-counting bridge volume during simple aggregations, while including broad coverage of source-destination bridge transfers for canonical bridges from Ethereum to various Layer2s.

Q: Why do we exclude events from bridge aggregators?

  • We define bridge aggregators as bridges that tap into the underlying mechanism/functionality of other application and canonical bridges.

  • Typically, an interaction with such aggregators will result in 2 events, one from the bridge aggregator and another from the underlying bridge. We currently do not include these events in the bridges schema as it would double count transfer volumes.

Sample Query

Finding the most popular bridge flows in the last month.

select 
    concat(source_chain, ' > ', destination_chain) as flow, 
    count(distinct transaction_from_address) as unique_users,
    count(1) as transfers,
    round(median(usd_amount)) as median_volume_usd,
    sum(nvl(usd_amount,0)) as usd_volume,
    round(usd_volume/pow(10,6),2) as usd_mil
from crosschain.bridges.transfers
where block_timestamp >= current_timestamp - interval '1 months'
group by all 
order by usd_volume desc

Columns

Unique key: unique_id

Column Name
Description

chain

The blockchain where this bridge transaction occurred, i.e. the transaction hash where the bridge transfers occurred.

bridge

The slug or name of the bridge. For canonical bridges, the bridge name corresponds to the destination chain name.

protocol

The protocol associated with the bridge transfer. Optimism stack bridge events will share the same bridge protocol, op.

contract_address

The contract address of the bridge.

event_name

The name of the event that triggered the transfer.

sender_address

The address that initiated the transfer.

recipient_address

The address that received the transfer on the destination chain, if applicable.

direction

The direction of the transfer (e.g., inbound or outbound), based on the chain.

source_chain_id

The ID of the source chain. Note that for non-EVM chains, there is typically no chainID.

source_chain

The name of the source chain, i.e. the chain on which a token was originally deployed and minted.

destination_chain_id

The ID of the destination chain. Note that for non-EVM chains, there is typically no chainID.

destination_chain

The name of the destination chain, i.e. the chain on which a bridge user wants to have their tokens.

token_in_address

The address of the token being transferred.

token_in_name

The name of the token being transferred.

token_in_symbol

The symbol of the token being transferred.

token_in_amount_raw

The raw amount of the token being transferred.

token_in_amount

The normalized amount of the token being transferred.

usd_in_amount

The USD equivalent of the token being transferred.

token_out_address

(Nullable) The address of the token being transferred out.

token_out_name

(Nullable) The name of the token being transferred out.

token_out_symbol

(Nullable) The symbol of the token being transferred out.

token_out_amount_raw

(Nullable) The raw amount of the token being transferred out.

token_out_amount

(Nullable) The normalized amount of the token being transferred out.

usd_out_amount

(Nullable) The USD equivalent of the token being transferred out.

usd_amount

The USD equivalent of the transfer, capped at a maximum value.

extra_fields

Additional fields related to the transfer.

transaction_from_address

The address from which the transaction was sent.

transaction_to_address

The address to which the transaction was sent.

transaction_hash

The hash of the transaction.

transaction_index

The index of the transaction within the block.

log_index

The index of the log within the transaction.

block_number

The number of the block containing the transaction.

block_timestamp

The timestamp of the block containing the transaction.

block_hash

The hash of the block containing the transaction.

unique_id

A unique identifier for the transfer.

_created_at

The timestamp when the record was created.

_updated_at

The timestamp when the record was last updated.

Last updated