# Across Protocol Bridge: Volume, Relayer Fees and Fill Times

> Across Protocol bridge activity by route: volume, deposits, fees users paid, relayer fill times, slow fills and the root bundles that repay relayers on-chain.

Markdown copy of https://voltfincrypto.com/apps/across-bridge-volume

**Question:** How much moves through the Across bridge on each route, what does it cost and how fast do relayers fill it?

- Kind: Dashboard in Voltfin Vantage
- Topic: [Layer 2s](https://voltfincrypto.com/topics/layer-2)
- Chains: Ethereum, Arbitrum, Base, OP Mainnet, Polygon, Linea, ZKsync, Unichain
- Status: Planned. The data is not published yet, so this page states no figure; each figure will open its receipt when it is.

Across is an intent-based bridge. A user deposits tokens into the SpokePool on one chain and states what should arrive on another; a relayer delivers it on the destination from its own funds, often within seconds, and is repaid later. Repayments are grouped into root bundles proposed to the HubPool on Ethereum and checked through UMA's optimistic oracle, where anyone can dispute a wrong bundle.

This dashboard follows that cycle from the contracts: deposits matched to fills, the fee each user paid, how long each fill took, the relayers doing the filling and the bundles that settled their repayments. It also tracks the liquidity in the HubPool, which backs relayer refunds and the slow fills made when no relayer steps in.

## Blueprint

### Transfers

Volume, fees and fill times by route.

- **Volume bridged** (USD): Value of deposits filled in the selected period, valued at the deposit block.
- **Transfers** (count): Deposits filled in the selected period.
- **Median fill time** (seconds): The median time from deposit block to fill block across transfers in the period.
- **Median fee** (%): The median of input minus output as a share of the input amount, across transfers in the period.
- **Volume by destination chain** (USD): Value bridged each day, split by destination chain.
- **Busiest routes**: Each route's volume, transfers, median fill time and median fee over the period.

### Relayers and settlement

Who fills, how relayers are repaid and the liquidity behind them.

- **Active relayers** (count): Relayers that filled at least one deposit in the selected period.
- **HubPool liquidity** (USD): Liquidity provider funds held in the HubPool at the latest day's end, valued at oracle prices.
- **Volume by relayer** (USD): Value each of the most active relayers filled in the period.
- **Root bundles**: Each bundle with its proposer, the blocks it covers, relayer refunds, slow fills, whether it was disputed and when it was executed.

Filters: Route (Every covered origin and destination pair); Token (Every token Across bridges between covered chains); Period (Last 7, 30 or 90 days).

## How it will be measured

- Deposits and fills are read from each chain's SpokePool deposit and fill events and matched by origin chain and deposit id, so each transfer counts once and its fill time is the gap between the two blocks.
- The fee a user paid is the input amount minus the output amount, valued at the deposit block; the part paid to HubPool liquidity providers is read from the relayer's refund in the executed bundle.
- Root bundles are read from the HubPool's proposal, dispute and execution events, with the proposer, the bond and the challenge window recorded.
- HubPool liquidity is read from the pool's reserves for each token at the day's last block, valued at oracle prices.

## Data it needs

- `bridge_flows_daily` (to build): Deposits into and withdrawals out of canonical and major third-party bridges by chain, token and day, plus escrow balances at day end.
- `defi_tvl_daily` (to build): Assets deposited in DeFi protocols per protocol, chain and asset at day end, valued with oracle prices, never double counting receipt tokens.
- `protocol_revenue_daily` (to build): Fees users paid to each protocol and the part kept by the protocol or its token holders, per protocol and day, including buybacks.
- `address_labels` (to build): Labels for known addresses: exchanges, bridges, protocols, funds, treasuries, sanctioned addresses and known attackers.
- `native_prices_daily` (to build): Reference prices of major assets read from on-chain oracle feeds (Chainlink latestRoundData) at each day's last block, with each round's update time.
- Source: SpokePool deposit and fill events on each covered chain, with deposit id, input and output amounts and the relayer
- Source: HubPool root bundle proposal, dispute and execution events on Ethereum
- Source: Relayer refund leaves in executed bundles, for the liquidity provider fee
- Source: HubPool pooled token reserves at each day's last block

## Questions

### How does Across Protocol work?

A user deposits into the Across SpokePool on the origin chain. A relayer sends the user the requested tokens on the destination chain from its own balance, then asks to be repaid. Repayments are batched into bundles that settle on Ethereum after a challenge window, backed by UMA's optimistic oracle.

### How long does an Across transfer take?

Most transfers are filled as soon as a relayer sees the deposit, often within seconds, because the relayer takes on the wait for settlement. Fill time depends on the route and the token, and the dashboard shows the median per route.

### What fees does Across charge?

The user receives slightly less than they deposit. The difference pays the relayer for gas and for lending its capital until repayment, plus a fee to the liquidity providers whose funds back the system. The dashboard measures the total and splits out the liquidity provider part.

### What is a slow fill on Across?

When no relayer fills a deposit, a slow fill can be requested and the protocol fills it from SpokePool funds once the next bundle is executed. Slow fills take longer but still deliver; the dashboard counts how often they happen.

### What role does UMA play in Across?

UMA's optimistic oracle guards the root bundles that decide who gets repaid. A proposer posts a bundle with a bond, and anyone can dispute it during the challenge window; disputes are settled by UMA token holders, and undisputed bundles are executed.

## Glossary

- **Relayer**: An operator who fills Across deposits on the destination chain with its own funds and is repaid through a root bundle.
- **Root bundle**: A set of Merkle roots proposed to the HubPool that says which relayers to repay, how much and on which chain.
- **HubPool**: The Across contract on Ethereum that holds liquidity provider funds and settles root bundles.

## Related apps

- [Cross-Chain Intents: Volume, Solvers and Fill Times](https://voltfincrypto.com/apps/cross-chain-intents-solvers)
- [Stargate Bridge Tracker: Volume, Pools and Bus vs Taxi](https://voltfincrypto.com/apps/stargate-bridge-tracker)
- [Ethereum L2 Fees Compared: Cost per Transaction](https://voltfincrypto.com/apps/ethereum-l2-fees)
- [Chainlink CCIP Tracker: Cross-Chain Messages and Token Transfers](https://voltfincrypto.com/apps/chainlink-ccip-tracker)
- [NEAR Intents Volume: Swaps and Cross-Chain Fills](https://voltfincrypto.com/apps/near-intents-volume)
- [Ethereum TPS: Mainnet and Layer 2 Transactions per Second](https://voltfincrypto.com/apps/ethereum-tps)

Build it in Voltfin Studio: https://app.voltfincrypto.com/signup?next=%2F
