image.png

SwapKit supports Arc mainnet through the Flashnet and 1inch providers.

Chain ARC
Chain ID 5042
Type EVM — transaction format is the same as other EVM chains in SwapKit
Gas token USDC (not ETH)
Transaction format EIP-1559 only. Arc enforces a 20 gwei maxFeePerGas floor, a field only a type-2 transaction has. Legacy type-0 transactions can hang indefinitely.
Block time ~0.5s, constant base fee (20 gwei — it does not move)
Explorer arcexplorer.org
Launch Providers FLASHNET, ONEINCH

⚠️ The ARC.USDC quirk: one balance, two interfaces

Arc pays gas in USDC, so USDC is simultaneously the chain's native coin and an ERC-20 token. These are two views of the same balance, not two assets.

Interface Identifier Decimals Read / spend via
Native (gas) ARC.USDC 18 eth_getBalance, msg.value, native transfer
ERC-20 ARC.USDC-0x3600000000000000000000000000000000000000 6 balanceOf, transfer()

Spending through either interface moves the same funds.

⚠️ /balance currently reports Arc USDC twice. It returns the native eth_getBalance entry and the ERC-20 entry for 0x3600…0000 without deduplicating them, so one balance appears as two assets at two scales. Do not sum them.


How SwapKit handles it

Both providers index USDC only as the ERC-20, at 0x3600…0000. Neither recognizes the bare native identifier.

So /quote and /v3/quote accept either spelling and map ARC.USDC onto the ERC-20 identifier internally for routing, so you get a quote either way. Matching is case-insensitive (arc.usdc works). /price accepts both too.

You are answered in the spelling you asked in. Ask in ARC.USDC and the quote's sellAsset, buyAsset and every leg come back as ARC.USDC, not the contract-qualified form. The rewrite we do for routing stays our implementation detail.

🔑 The spelling you sell in decides the transaction

Sell ARC.USDC → native send, amount in msg.value, 18 decimals

Sell ARC.USDC-0x3600…0000 → erc20.transfer() to the deposit address, 6 decimals