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 5042HTTPS
https://rpc.arcrpc.com/v1/{API_KEY}
WebSocket
wss://rpc.arcrpc.com/v1/{API_KEY}
Arc Testnet
chain 5042002HTTPS
https://rpc-testnet.arcrpc.com/v1/{API_KEY}
WebSocket
wss://rpc-testnet.arcrpc.com/v1/{API_KEY}
The numbers your config needs.
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.
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" } },});Where requests are served.
Core regions run full archive nodes. Edge regions serve recent state and route archive reads to the nearest core region.
Both networks behind one key.
Build on testnet, ship to mainnet by changing a hostname.