USDC is the gas token. The native balance is an 18-decimal view of the same balance the ERC-20 at 0x3600000000000000000000000000000000000000 exposes with 6 decimals (divide by 1e12). There is no wrapped gas token. | Contracts only ever handle the 6-decimal ERC-20 and read decimals() from the token rather than assuming. Oracle update fees (Pyth) are paid in native value, so msg.value is 18-decimal USDC. Every payable entry point refunds excess value. |
| 20 gwei minimum base fee. Transactions bidding less are silently dropped, never mined. Priority fee should be 0 or 1 gwei. | The registry pins maxFeeGwei: 25, priorityGwei: 1, minBaseFeeGwei: 20; the web app spreads these into every write and mentions the floor under transaction buttons; deploy scripts pass --with-gas-price 20gwei --priority-gas-price 1gwei. |
| 0.5 s blocks, instant finality. Timestamps can repeat. | Deadlines are timestamps (the app uses now + 10 minutes). Nothing depends on block numbers or confirmations. Buy, Sell and Swap events are final as soon as they land. |
| Protocol-level USDC blocklist. Any transfer touching a blocklisted address reverts, and the revert consumes gas without a receipt. | Fees and creator rewards are pull-claimed (claimCreatorFees, sweepProtocolFees, claimProtocolFees, LiquidityLocker.collect), never pushed inside a trade. The only pushes are to msg.sender (refunds, sale proceeds), which can only fail for the caller. |
PREVRANDAO is always 0. Blob transactions are rejected. EIP-7702 and EIP-7708 (native transfer logs) are live. Transfers to address(0) or precompiles revert. | No contract uses randomness. Graduation burns leftover tokens to 0x000000000000000000000000000000000000dEaD, not address(0). |
Native USDC is a precompile. Standard anvil and forge script cannot simulate it. | Unit tests use mock ERC-20s. Anything that moves USDC on Arc is sent with cast or a wallet, never forge script; the deploy script only deploys. Arc’s own arc-anvil / arc-forge ship for Linux and macOS only. |
RPC limits. rpc.testnet.arc.io rate-limits topic-filtered eth_getLogs almost immediately; the public mirrors cap a query at about 2,000 logs and 20 addresses. | The indexer uses the mirrors in rpcs (Blockdaemon, dRPC, thirdweb) with ethGetLogsBlockRange: 50 and maxLogAddresses: 20 (vault filters are chunked). |
| Uniswap v4 is deployed on Arc mainnet (official addresses in the registry) but not on the testnet. | The testnet deployment includes the launchpad’s own PoolManager, PositionManager, StateView and Quoter. |
| Oracles. Pyth is on the testnet only and its FX data needs a paid Hermes key; Chainlink has seven free FX push feeds on mainnet (EUR, JPY, CAD, AUD, MXN, BRL, KRW); no FX feed covers most of the sixty currencies. | The registry points at KeeperFxOracle. PythFxOracle (testnet) and ChainlinkFxOracle adapters are ready for currencies that have feeds. |
| Faucet. https://faucet.circle.com gives 20 USDC per address every 2 hours (also EURC). A full deployment costs about 4.5 USDC of gas. | |
Explorer. Blockscout at https://explorer.testnet.arc.io and https://explorer.arc.io, verifier URL <explorer>/api/. The public verifier rate-limits submissions. | |