Networks

Mainnet and testnet, one key.

Both Arc networks over HTTPS and WebSocket, unpruned archive on each, served from our own execution and consensus nodes. The only difference between them is the hostname.

Arc Mainnet

chain 5042

HTTPS

https://rpc.arcrpc.com/v1/{API_KEY}

WebSocket

wss://rpc.arcrpc.com/v1/{API_KEY}

Arc Testnet

chain 5042002

HTTPS

https://rpc-testnet.arcrpc.com/v1/{API_KEY}

WebSocket

wss://rpc-testnet.arcrpc.com/v1/{API_KEY}

Chain parameters

The numbers your config needs.

ParameterMainnetTestnet
Chain ID5042 (0x13b2)5042002 (0x4cef52)
Gas tokenUSDC, 18 decimals nativeUSDC, 18 decimals native
Block time0.5s0.5s
Finalitydeterministic, on commitdeterministic, on commit
Base fee floor20 Gwei20 Gwei
Consensus / executionMalachite BFT / RethMalachite BFT / Reth
Explorerexplorer.arc.ioexplorer.testnet.arc.io
Faucetgas USDC via Circlefaucet.circle.com
Contract addresses

The system contracts worth knowing.

Mainnet addresses. USDC, the system emitter, Memo and Multicall3From are the same on testnet; testnet EURC and CCTP are listed separately.

ContractAddress
USDC (ERC-20 interface, 6 decimals)0x3600000000000000000000000000000000000000
System emitter (EIP-7708, 18 decimals)0xffffFFFfFFffffffffffffffFfFFFfffFFFfFFfE
EURC0xbEf5f6d51CB62b58e6A8f77868681825C6fe21c1
Memo0x5294E9927c3306DcBaDb03fe70b92e01cCede505
Multicall3From (batches keep the caller)0x522fAf9A91c41c443c66765030741e4AaCe147D0
Denylist (protocol compliance)0x3600000000000000000000000000000000000004
CCTP TokenMessengerV2 (domain 26)0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d
CCTP MessageTransmitterV20x81D40F21F12A8F0E3252Bccb954D722d4c464B64
Gateway Wallet0x77777777Dcc4d5A8B6E418Fd04D8997ef11000eE
Gateway Minter0x2222222d7164433c4C09B0b0D809a9b52C04C205
StableFX FxEscrow0xe2E5F173576B513d994073CCbDaCBE027d43DFe6
EURC (testnet)0x89B50855Aa3bE2F677cD6303Cec089B5F319D72a
CCTP TokenMessengerV2 (testnet)0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA
CCTP MessageTransmitterV2 (testnet)0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275
Add the network

Paste, then point at the endpoint.

Declare 18 decimals for the native currency. Tools that assume 6 will display balances off by a factor of 10^12.

import { defineChain } from "viem"; export const arc = defineChain({  id: 5042,  name: "Arc",  nativeCurrency: { name: "USDC", symbol: "USDC", decimals: 18 },  rpcUrls: {    default: {      http: ["https://rpc.arcrpc.com/v1/YOUR_KEY"],      webSocket: ["wss://rpc.arcrpc.com/v1/YOUR_KEY"],    },  },  blockExplorers: { default: { name: "Arc", url: "https://explorer.arc.io" } },});
Regions

Where requests are served.

Core regions run full archive nodes. Edge regions serve recent state and route archive reads to the nearest core region.

RegionLocationTierArchive
us-east-1N. VirginiaCoreYes
us-west-2OregonCoreYes
eu-central-1FrankfurtCoreYes
eu-west-1IrelandCoreYes
ap-southeast-1SingaporeCoreYes
ap-northeast-1TokyoCoreYes
eu-west-2LondonEdgeRouted
us-east-2OhioEdgeRouted
ap-south-1MumbaiEdgeRouted
ap-southeast-2SydneyEdgeRouted

Both networks behind one key.

Build on testnet, ship to mainnet by changing a hostname.