Chain configuration
Arc is testnet only — Circle has not launched a mainnet. See Arc methods for per-method availability and the API reference for interactive examples.
MetaMask
Add Arc Testnet as a custom network. On Chainstack, get your Arc endpoint, then in MetaMask select Add a custom network and fill in:- Network name — Arc Testnet
- Default RPC URL — your Chainstack Arc endpoint
- Chain ID —
5042002 - Currency symbol — USDC
ethers.js
Install ethers.js:send:
viem
Arc is not in viem’s bundled chain list, so define it withdefineChain:
arc_* methods, use client.request:
web3.py
Install web3.py:web3.py rejects lowercase addresses with
InvalidAddress. Wrap any address you did not get from the library itself in Web3.to_checksum_address(), as above.arc_* methods are not in the web3.eth namespace, so send them through the provider:
Two Arc behaviors that affect tooling
Only replay-protected transactions are accepted. Arc rejects pre-EIP-155 transactions on the RPC submission path with-32000 only replay-protected (EIP-155) transactions allowed over RPC. Every current library signs with the chain ID by default, so this only bites if you construct raw transactions by hand or use a very old signer.
Pending state is not readable. Subscribing to pending transactions fails, and eth_getBlockByNumber("pending") returns null rather than an error. Code that polls the pending block to estimate the next state will silently receive nothing. See What gives you mempool access.