Get started › Contract addresses
All contracts on the 482120 side are verified on explorer.btcw.tech
(the ISM of each bridge core — 0x6003…e817 for USDC/USD₮0, 0xf6c9…06a3 for the sealed WBTC route — is a 214-byte
EIP-3448 MetaProxy with no source of its own; their implementations 0xb296e5632e2957c6fcda3efcc0fcf758ee5ddb54 and
0x1f8410baba198fa9d467bc028a199b3501a2c880 are verified). Arbitrum side: exact match on
Sourcify / arbitrum.blockscout.com. Machine-readable version (addresses + ABIs): /developers/contracts.json.
Always identify assets by chainId + address. Symbols such as BTCW and USDW are already used by unrelated assets on other chains.
Assets
| Name | Address (482120) | Notes |
|---|---|---|
| BTCw | native coin — the API uses 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE | pays gas; paired in every pool |
| USDw | 0x3b5BD179CA6Aab4DAF0f842829776843ABe6e727 | ERC-20, 18 decimals; the asset of the bridge and OracleAMM |
| TokenFactory | 0xa4860BdfaE9B2881B1B593aFFC8740d926eCC1d1 | creates the 321 price-tracker tokens (100 crypto, 201 US stocks, 20 US ETFs); token list: /api/v2/swap/assets |
Swap
| Name | Address (482120) | Notes |
|---|---|---|
| ClpPools | 0x557aDc3d900c471F3907cdDA3a9F5377d6F9E7e0 | 322 THORChain-style pools, each paired with BTCw |
| UsdClpPools | 0x78aCB6Ec7aF4cc83BF9E698706de79c08D61C13f | R-61: 321 THORChain-style pools, each paired with USDw (a second set beside ClpPools) |
| UsdRebalancer | 0xF9DAD09811755b8cf4863ed880AdD6F92358623D | keeps the UsdClpPools pools near the PriceHub price from its own inventory; mints nothing |
| OracleAMM | 0xd953d53414a81eb6AC5a4edE73d13992181aF51E | BTCw ⇄ USDw at the oracle price ± 0.3% |
| OracleTokenAMM (ETHw) | 0xFd6d78A3b60175D37146793396A2FA7864039D54 | ETHw ⇄ USDw at the oracle price ± 0.3%; the bridge's ETHw destination |
| SwapRouter | 0x397E607eA05eF7909f84540077F3a716778031E4 | chains up to 4 hops across ClpPools / OracleAMM / the ETHw vault into one transaction; ownerless |
| OracleRebalancer | 0x6c811003D301769575e9A8661B9197FAf2A32e69 | pulls token pool prices back to the oracle (crypto and stocks); minter of all 321 price-tracker tokens |
WBTCw / USDC.e pool (Uniswap V2)
Official, unmodified Uniswap V2 on chain 482120 — pair init code hash 0x96e8ac42…845f. UI: /pool/. Deployed by the Owner wallet 0xB17b…d952 on 3 Oct 2026.
| Name | Address (482120) | Notes |
|---|---|---|
| WBTCw | 0xA7182E25e635108AD401E3be78f1c2A4593B8831 | Wrapped BTCw, 18 decimals; minted only by the BTCw vault against WBTC locked on Arbitrum One; withdraw unwraps 1:1 any time; no owner |
| USDC.e | 0x7b56B7B06B8e586064787E7FfE466Ab6B78C31C7 | Bridged USDC (Bitcoin Swap), 6 decimals; 1:1 with USDC locked in the Arbitrum router below |
| UniswapV2Factory | 0x453F946CB371a2039137453BAafFb83FF4ccf9f7 | feeToSetter = Owner wallet, feeTo unset |
| UniswapV2Router02 | 0x436997135b9332B2dFa1B20e6B24f0987778a246 | WETH slot = WBTCw |
| Pair WBTCw / USDC.e | 0xED2967B738d98B3e4D3e6780A08Dc161A55EF304 | token0 = USDC.e; 0.30% fee; opened at the Chainlink BTC/USD price; LP in the Owner wallet, unlocked |
| Peg keeper | 0xe20dA14F7A9715Ba685048292e53C05c097E766D | swaps its own inventory when the pool drifts more than 0.5% from Chainlink BTC/USD; holds no other rights |
Oracle
| Name | Address (482120) | Notes |
|---|---|---|
| BtcwPriceFeed | 0x6E0687A5D5a5b98CC5fb05c4d8d742fBD75ba96c | BTC/USD, Chainlink AggregatorV3-compatible, 8 decimals |
| PriceHub | 0xE87FDdCC0b668564a20B23F3bE1EE108C805ecb4 | USD prices of the 321 price-tracker tokens, 18 decimals |
Bridge
| Route | Arbitrum One (42161) | Bitcoin Swap (482120) |
|---|---|---|
| USDC | router 0x10B5757aC9a40E3467846e35749ae30b00ef0182 token USDC 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
router 0x10EDFF80C17A39940a4dc724b9c24fE9D2E8Fd9b token USDw |
| USD₮0 | router 0x984fDC24D1A2Be538C7290487d0fc212635D98A5 token USD₮0 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 |
router 0xD6d8452FdCC26B155BEc4fc878635c05CaC95FB1 token USDw |
| Mailbox | 0xBf4E868aE56870DC92dC906E1ad21ce038EF3198 | 0x489DC54c2d2f7df9175d7F99716094C85E008392 |
Dedicated core — WBTC and USDC routes (R-52)
A second Hyperlane core, owned by the Owner wallet 0xB17b…d952, with sealed routes: fixed verifier, counterpart enrolled once and never changeable, no fees. Allowlist on (Owner wallet only) at 3 Oct 2026.
| Route | Arbitrum One (42161) | Bitcoin Swap (482120) |
|---|---|---|
| WBTC ⇄ BTCw | router 0x9A37C4a711b23Ae3508E0Dbd8d994ae98c92A86A token WBTC 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f |
vault 0x10Ecc6EF494D0Ec1A1446a30026951b0923F3606 native BTCw (released from the vault's unissued supply; 8 ↔ 18 decimals) |
| USDC ⇄ USDC.e | router 0x1e458688336872Eb744Ccb588C7775480675b2A6 token USDC 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
token = router 0x7b56B7B06B8e586064787E7FfE466Ab6B78C31C7 USDC.e, 6 decimals |
| Mailbox | 0x11A6a8348ab4307A7e9974413f6963025AD70A4E | 0x148889eE67A6EB672171024086fC9819B6424142 |
Standard infrastructure
Same addresses as on Ethereum and other EVM chains, deployed 5 Oct 2026 through the deterministic CREATE2 deployer with the exact Ethereum-mainnet calldata, so tools that expect these addresses work without extra configuration. Source is verified on the explorer.
| Name | Address (482120) | Notes |
|---|---|---|
| CREATE2 deployer | 0x4e59b44847b379578588920cA78FbF26c0B4956C | Arachnid deterministic-deployment-proxy; calldata = salt (32 bytes) ++ initcode |
| Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 | Uniswap token approvals; EIP-712 domain uses chain 482120 |
| EntryPoint v0.7 | 0x0000000071727De22E5E9d8BAf0edAc6f37da032 | ERC-4337 smart accounts |
| Safe 1.3.0 | 0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552 | Safe multisig |
| SafeL2 1.3.0 | 0x3E5c63644E683549055b9Be8653de26E0B4CD36E | Safe multisig |
| SafeProxyFactory 1.3.0 | 0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2 | Safe multisig |
| CompatibilityFallbackHandler 1.3.0 | 0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4 | Safe multisig |
| MultiSend 1.3.0 | 0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761 | Safe multisig |
| MultiSendCallOnly 1.3.0 | 0x40A2aCCbd92BCA938b02010E17A5b8929b49130D | Safe multisig |
| CreateCall 1.3.0 | 0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4 | Safe multisig |
| SignMessageLib 1.3.0 | 0xA65387F16B013cf2Af4605Ad8aA5ec25a2cbA3a2 | Safe multisig |
| SimulateTxAccessor 1.3.0 | 0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da | Safe multisig |
| Multicall3 | 0xA0093EA76633A983364cb2582959870eaffDdea0 | Same bytecode as the usual Multicall3, at this chain's own address (not 0xcA11…CA11) |
Owner and Treasury wallets
Published so you can filter or monitor them yourself:
| Role | Address |
|---|---|
| Owner — owns every contract above, on both chains | 0x4aFd0A931176103d704Ff0d696614d4E10d74A4a |
| Owner wallet B — owns the dedicated core, its routes, WBTCw and the Uniswap V2 pool | 0xB17bdA8F14EEb9fd67B34810A2e1E82A737Ad952 |
| Treasury arbitrage bot (USDw pool) | 0x4b3418e3d21932610faafef8caefdb0f2c05a836 |
The Dashboard and /api/v2/stats report the volume of the bot and OracleRebalancer separately (the treasury_addresses field) — these are the trades
that keep pool prices near the oracle. Owner permissions: Trust model.