Skip to main content
Wallets on Arc use standard EVM tools: secp256k1 signing, EIP-1559 fees, and standard RPC methods. Arc’s USDC-native design requires changes to balance display, fee labels, transaction history, and approval handling.

Key differences for wallets

Three Arc design decisions affect every wallet integration:

Arc behaviors relevant to this integration

The following Arc behaviors can affect wallet operations. See the integration guides on this page and the EVM differences page for details:
  • Blocklist enforcement: The USDC blocklist is enforced at runtime. If either the sender or recipient of a transfer or transferFrom call is blocklisted, the call reverts. Check receipt.status === 0 to detect reverts. For details, see Transaction lifecycle.
  • Dust amounts: balanceOf() returns 0 for amounts smaller than 1×10⁻⁶ USDC (the 6-decimal minimum). The native balance can hold amounts smaller than that threshold (dust). Dust is still spendable as gas. A balanceOf() of 0 does not mean the address has no USDC.
  • Transaction history requires system emitter events: Plain native USDC sends emit no log at the ERC-20 contract address (0x3600…0000). Filtering that address only captures ERC-20 transfers and misses native sends. Filter the system emitter (0xffff…fffe) instead. See Add Arc to a wallet.
  • Don’t count Transfer logs from both the system emitter and the ERC-20 contract: An ERC-20 transfer() emits from both. Counting both records the same transfer twice in your transaction history. Use the system emitter only.
  • Fee floor: Arc enforces a 20 Gwei minimum maxFeePerGas. Transactions under this floor are silently dropped by the mempool with no error receipt. See Display transaction fees.

What you need

Before you start, confirm you have the following:
Test against Arc Testnet only. Local EVM simulators run a standard EVM. They don’t replicate EIP-7708 Transfer events, the USDC precompile, or blocklist enforcement.

Integration guides

Add Arc to a wallet

Chain configuration, balance display, transaction history, and fee handling for wallet providers.

Transaction lifecycle

Arc uses two states: pending or final. There are no intermediate confirmation states.

Display transaction fees

Fetch, estimate, and display transaction fees in USDC.