Network
Arc fundamentals
Arc is an EVM-compatible Layer 1 built for programmable money. ArcSet currently targets Arc Testnet and treats Arc’s USDC-native model as an accounting invariant, not a cosmetic chain setting.
Network profile
| Parameter | ArcSet value |
|---|---|
| Network | Arc Testnet |
| Chain ID | 5042002 (0x4CEF52) |
| Native currency | USDC |
| Primary HTTP RPC | https://rpc.testnet.arc.network |
| Primary WebSocket RPC | wss://rpc.testnet.arc.network |
| Explorer | https://testnet.arcscan.app |
| Faucet | https://faucet.circle.com |
| EVM baseline | Osaka with Arc-specific runtime differences |
| Finality | Deterministic on inclusion; one successful receipt |
ArcSet imports arcTestnet from viem/chains and configures it as the only Wagmi and Privy chain. Server balance reads try the server override, public primary endpoint, and checked-in provider fallbacks in order.
One USDC balance, two interfaces
Arc exposes the same underlying USDC balance through two representations:
| Interface | Precision | Use in ArcSet |
|---|---|---|
| Native USDC | 18 decimals | Gas accounting, native sends, and msg.value only |
| USDC ERC-20 | 6 decimals | Balance display, transfers, approvals, allowances, allocations |
They are not two assets. ArcSet never adds them, shows them as separate holdings, or offers a conversion between them. The raw values differ by 10^12, so comparing them without converting produces incorrect accounting.
// Application balance and approval display
formatUnits(usdcBalanceOf, 6)
// Raw gas or msg.value accounting only
formatUnits(nativeBalance, 18)
The ERC-20 view truncates values smaller than one micro-USDC. A zero ERC-20 balanceOf result therefore does not prove the native balance is mathematically zero.
EVM differences
Arc targets the Osaka EVM baseline, but several behaviors differ from Ethereum.
Gas and fee market
- fees are paid in native USDC with 18-decimal precision;
- the testnet minimum base fee is 20 Gwei;
- transactions below the fee floor can be dropped without a receipt;
- the next base fee is published in the parent header
extra_data; - base and priority fees are credited to the block beneficiary rather than burned;
- the application shows fee values as USDC, never ETH.
Value transfers
- non-zero transfers to
address(0)revert; - transfers to or from blocklisted accounts revert and consume gas;
- sending value to a previously self-destructed account can revert;
- a contract forwarding native USDC is not guaranteed to succeed;
- a transfer that completely drains a brand-new, zero-nonce account is a documented testnet limitation.
Opcodes and block data
PREVRANDAOreturns zero and must not be used for randomness;- blob transactions are not supported;
- withdrawals are always empty;
- the EIP-4788 beacon-roots contract is omitted;
- sub-second blocks can share timestamps, so use block numbers for ordering;
SELFDESTRUCTfollows EIP-6780 plus Arc’s native-value restrictions.
USDC events and indexing
Native USDC movements emit standard Transfer logs from Arc’s system emitter using 18 decimals. An ERC-20 transfer() can also emit the familiar event from the 6-decimal USDC interface.
An indexer must choose one canonical source. Counting both event streams double-counts ERC-20 transfers. ArcSet’s product model specifies the system emitter for a future complete transaction indexer, while the current application reads supported balances directly and stores only wallet-local execution attribution.
Contract addresses
The tables below are rendered from the application’s centralized configuration and current Circle reference deployment.
Arc application contracts
| Contract | Address | Role |
|---|---|---|
| USDC | 0x3600000000000000000000000000000000000000 | 6-decimal application balance and approvals |
| EURC | 0x89B50855Aa3bE2F677cD6303Cec089B5F319D72a | Euro-denominated swap output |
| cirBTC | 0xf0C4a4CE82A5746AbAAd9425360Ab04fbBA432BF | Bitcoin exposure used by asset baskets |
Configured for chain ID 5042002. Verify environment-specific addresses against the official Arc source before changing configuration.
Funding and wallet setup
For the current testnet application:
- sign in through Privy;
- let Privy create the embedded EVM wallet;
- switch to Arc Testnet if required;
- copy the embedded address from the account menu;
- request Arc Testnet USDC from the Circle faucet or send testnet USDC directly;
- refresh the balance before requesting a quote.
There is no separate ETH funding step. USDC funds both application actions and network fees.