Addresses

This page is for people shipping code.

Source of truth is deployments/<chainId>.json, written by contracts/script/Deploy.s.sol on broadcast. npm run sync:addresses <chainId> copies it into packages/shared/src/addresses.ts and into the lists below. Zeros mean Kleos is not deployed on that chain.

USDC on Arc mainnet and testnet: 0x3600000000000000000000000000000000000000 (6 decimals on the ERC-20 interface, 18 as native gas).

Arc mainnet (5042)

RPC https://rpc.mainnet.arc.io, explorer https://explorer.arc.io (Blockscout).

Chain singletons, verified live 2026-09-16:

Kleos contracts, deployed 2026-09-16 at block 21160829 (8 txs, 7,254,380 gas, deployer 0x64E3B0240f5aCde9FEE2d88Faa1dEa49C5E78f06). Sources are exact_match on Sourcify for all five. kleosToken stays zero until the arc.sol token is wired in with npm run set:token -- 0x<token>; until then KleosStaking.stake reverts with token unset and everything else (identity, registry reads, escrow jobs at the flat 50 bps fee) already works.

<!-- 5042:start --> <!-- 5042:end -->

Arc testnet (5042002)

RPC https://rpc.testnet.arc.io, explorer https://testnet.arcscan.app. The ERC-8004 identity registry there is 0x8004A818BFB912233c491871b3d84c89A494BD9e (a different address from mainnet). No official Uniswap V2 router on testnet; pass UNI_V2_ROUTER if you deploy one.

<!-- 5042002:start --> <!-- 5042002:end -->

Local Anvil (31337)

Last DeployLocal in this repo. Mock USDC, mock identity, mock router.

<!-- 31337:start --> <!-- 31337:end -->