Skip to main content
Optimistic cross-chain bridge powered by UMA’s optimistic oracle. Uses relayers for fast fills and canonical bridges for settlement.

Notes

  • Fast fills: relayers fill deposits on destination within minutes, then claim reimbursement via optimistic oracle
  • Finality: deposit confirmation on source chain, fill within 1-10 minutes typically
  • Requires ERC-20 approval to the SpokePool address on source chain
  • HubPool on Ethereum only — SpokePools on all supported L2s
  • On Arc (5042) the SpokePool’s wrappedNativeToken() is the zero address, so deposit ERC-20s (USDC is 0x3600000000000000000000000000000000000000), not native value

Its names in a program

On Ethereum, Across is a namespace: its contracts need no import.

Deployments

ABI

Where a line says what an address it returns is, a program that calls the function through its namespace calls that contract’s methods on the result directly: <Namespace>.<Contract>.<function>(...).<method>(...). A token’s methods are the ERC-20 functions, and its writes are SafeERC20.

AcrossHubPoolABI

import AcrossHubPoolABI from "./protocols/across/AcrossHubPoolABI.json"; Speaks for: hubPool.
  • liquidityUtilizationCurrent(address l1Token) returns (uint256)
  • pooledTokens(address l1Token) view returns (address lpToken, bool isEnabled, uint32 lastLpFeeUpdate, int256 utilizedReserves, uint256 liquidReserves, uint256 undistributedLpFees): lpToken is a token

AcrossSpokePoolABI

import AcrossSpokePoolABI from "./protocols/across/AcrossSpokePoolABI.json"; Speaks for: spokePool.
  • depositV3(address depositor, address recipient, address inputToken, address outputToken, uint256 inputAmount, uint256 outputAmount, uint256 destinationChainId, address exclusiveRelayer, uint32 quoteTimestamp, uint32 fillDeadline, uint32 exclusivityParameter, bytes message) payable
  • deposit(bytes32 depositor, bytes32 recipient, bytes32 inputToken, bytes32 outputToken, uint256 inputAmount, uint256 outputAmount, uint256 destinationChainId, bytes32 exclusiveRelayer, uint32 quoteTimestamp, uint32 fillDeadline, uint32 exclusivityParameter, bytes message) payable

Next steps