Concepts › Bridge
Model
Hyperlane warp route of type collateral ⇄ collateral (@hyperlane-xyz/core 12.1.0), 1 : 1 ratio, two routes:
| Route | Arbitrum One | Bitcoin Swap 482120 | |
|---|---|---|---|
| USDC | USDC (6 decimals) locked in the router | ⇄ | USDw (18 decimals) released from the router's vault |
| USD₮0 | USD₮0 (6 decimals) locked in the router | ⇄ | USDw (18 decimals) released from the router's vault |
Nothing is minted on either side: each router only releases what it currently holds. So withdrawals from one side can never exceed the amount locked on that side. Both routes share USDw on the 482120 side but have separate vaults.
Lifecycle of a transfer
- The user calls
transferRemoteon the source-chain router — tokens are locked in the router and the Mailbox dispatches a message. - The source chain's validator signs a checkpoint for the message.
- The relayer delivers the message + signature to the destination Mailbox.
- The ISM (Interchain Security Module) on the destination chain verifies the signature: multisig message-id with a 1/1 threshold.
- The destination router releases tokens to the recipient and emits
ReceivedTransferRemote.
Usually takes 10–30 seconds. If the relayer is down, messages wait and are delivered once it restarts — sent messages are not lost.
Dedicated Hyperlane infrastructure
The Mailbox, hooks and ISM on both chains are dedicated deployments for Bitcoin Swap, not the standard Mailbox of the Hyperlane network. The bridge's validator and relayer are dedicated as well. Consequences:
- Hyperlane Explorer and public relayers do not track or deliver these messages.
- There is no interchain gas payment: call
transferRemotewithmsg.value = 0; the bridge relayer pays destination gas itself. - Bridge security = security of the validator key and the Owner key. See Trust model.
Rounding — granularity
USDC/USD₮0 have 6 decimals, USDw has 18. The 482120 router only accepts amounts divisible by granularity() = 1012
(i.e. rounded to 6 decimal places); finer amounts revert with BadGranularity.
Limits and pausing
The routers are GuardedCollateralRouter — a standard warp route plus two Owner-controlled switches:
allowlistEnabled(): when on, only allowlisted wallets can send (NotAllowed). Currently off on all 4 routers — any wallet can send.paused(): halts sending (Paused). In-flight messages are not lost and are delivered after unpausing. Each chain also has a PausableHook for emergency stops at the Mailbox level.
Live state: Status. Step by step: Bridge funds.
Receive BTCw or ETHw directly
The btcw.tech/swap/#bridge page lets you pick the asset on the Bitcoin Swap side: USDw (1 : 1), BTCw (swapped via OracleAMM) or ETHw (swapped via the ETHw oracle-priced vault). On deposit, USDw is then swapped to BTCw/ETHw (one more transaction on 482120, which needs a little BTCw for gas); on withdrawal, BTCw/ETHw is first swapped to USDw and then bridged. The bridge itself only moves USDw.