L2BEAT Bridges is a work in progress. You might find incomplete research or inconsistent naming. Join our discord to suggest improvements!

Across V2 logoAcross V2




Across V2 is a cross-chain optimistic bridge that uses actors called Relayers to fulfill user transfer requests on the destination chain. Relayers are later reimbursed by providing a proof of their action to an Optimistic Oracle on Ethereum. The architecture leverages a single liquidity pool on Ethereum and separate deposit/reimburse pools on destination chains that are rebalanced using canonical bridges.

If you find something wrong on this page you can submit an issue or edit the information.

Risk summary

Funds can be frozen if

  1. owner pauses the contract.
Note: This project's overview requires more research and might not present accurate information. If you want to contribute you can edit the information on Github. Alternatively you contact the project team on Twitter and encourage them to contribute a PR.


Principle of operation

Note: This section requires more research and might not present accurate information.

This bridge performs cross-chain swaps by borrowing liquidity from a network of Relayers who are then reimbursed on a chain of their choosing from a common liquidity pool (which consists of user deposits and deposits of independent Liquidity Providers). Specifically, when a user deposits funds for a swap into a dedicated pool on origin chain, a Relayer first pays the user on the requested destination chain and then shows proof of that deposit to Optimistic Oracle on Ethereum to be reimbursed. Liquidity used for reimbursements is rebalanced between a main pool on Ethereum (called Hub Pool) and pools on destination chains (called Spoke Pools) via native chain bridges.

  • Funds can be frozen if owner pauses the contract.

  • Funds can be lost if owner invokes a "haircut" functionality, dedicated for irrecoverable loss of funds on L2.

  1. Across V2 Architecture

Validation via Optimistic Oracle

Money from the liquidity pool is used to reimburse Relayers based on a proof of deposit on destination chain that is provided to Optimistic Oracle on Ethereum. The proof can be disputed in a configured time period.

  • Funds can be stolen if a false claim to the Optimistic Oracle is not disputed in time.

  • Funds can be lost if a re-org occurs on destination chain after Optimistic Oracle dispute time passes.

  1. Across V2 Optimistic Oracle documentation

Destination tokens

Only tokens that have been bridged using native chain bridges are supported.

Permissioned Addresses

The system uses the following set of permissioned addresses:

HubPool Owner MultiSig 0xB524…3715

Can invoke admin functions of HubPool contract, and by implication of other contracts.

Smart Contracts

The system consists of the following smart contracts:

Escrow contract for ERC20 tokens and administration of other contracts. This contract stores the following tokens: USDC, WETH, WBTC, DAI, BAL, UMA, BOBA, USDT.

LpTokenFactory 0x7dB6…fD9d
Optimism_Adapter 0x22eD…71fF
Boba_Adapter 0x33B0…5Af3
Arbitrum_Adapter 0x9379…2216
Ethereum_Adapter 0x527E…5084
Ethereum_SpokePool 0x4D90…7381

This contract stores the following tokens: USDC, WETH, WBTC, DAI, BAL, UMA, BOBA, USDT.

PolygonTokenBridger 0x48d9…2c65
Polygon_Adapter 0x3E94…CE1A
AcrossConfigStore 0x3B03…43f5