If you can deploy to Ethereum, you can deploy to Arc — same Solidity, same tooling, one new RPC entry. The differences worth your attention are economic and protocol-level: gas is USDC, finality is deterministic at roughly 780ms, and the native token carries 18 decimals where you may expect 6. This quickstart gets a contract live on Arc testnet and flags the gotchas before they cost you a debugging session.
What do you need before deploying?
Three things: a funded wallet, a configured RPC, and your existing toolchain. Arc is EVM-compatible — Solidity compiles unchanged, and Foundry, Hardhat, and standard libraries work as-is (what's compatible out of the box). The network parameters for mainnet:
- Chain ID:
5042(0x13b2) - RPC:
https://rpc.mainnet.arc.io - Explorer:
https://explorer.arc.io - Gas token: native USDC, 18 decimals — there is no mainnet faucet
And for testnet, useful for rehearsing a deploy before you spend real USDC:
- Chain ID:
5042002 - RPC:
https://rpc.testnet.arc.io - Explorer:
https://testnet.arcscan.app - Faucet:
faucet.circle.com
Grab testnet USDC from Circle's faucet (the testnet guide covers it), and add the network to your wallet if you want to watch transactions land (MetaMask setup).
How do you deploy with Foundry?
Add the RPC to foundry.toml:
[rpc_endpoints]
arc = "https://rpc.mainnet.arc.io"
arc_testnet = "https://rpc.testnet.arc.io"
Then deploy exactly as you would anywhere:
forge create src/MyContract.sol:MyContract \
--rpc-url arc \
--private-key $PRIVATE_KEY
With Hardhat, define both networks — mainnet as the default, testnet for rehearsal:
networks: {
arc: {
url: "https://rpc.mainnet.arc.io",
chainId: 5042,
accounts: [process.env.PRIVATE_KEY],
},
arcTestnet: {
url: "https://rpc.testnet.arc.io",
chainId: 5042002,
accounts: [process.env.PRIVATE_KEY],
},
}
Deployment confirms with deterministic finality in under a second — there's no probabilistic "wait for N confirmations" mental model on Arc. Once a transaction is final, it's final, which simplifies deploy scripts: no polling loops padded with safety margins, no handling for the deploy-then-reorg edge case. The same property carries into your application logic — event listeners and indexers can treat a seen transaction as settled truth.
Verify your contract on the explorer at explorer.arc.io (Arcscan guide) so users can read the source. On a chain whose audience runs safety checklists by habit, unverified source reads as a warning sign even when the code is innocent — make verification part of the deploy script, not an afterthought.
What does deployment cost?
This is where Arc diverges pleasantly from mainnet Ethereum. Gas is paid in USDC, so the fee you're quoted is a dollar amount, not a gas-token amount multiplied by a volatile price. Testnet transaction fees have averaged around $0.004; contract deployments run higher than simple transfers but remain in the cents-to-dollars range. The gas fees guide covers the fee model in depth. Budgeting a deployment pipeline in USD, in advance, is a genuinely new experience for EVM developers.
What are the gotchas?
The 18-decimal native USDC. Arc's native token is USDC with 18 decimals at the protocol level — not the 6 decimals of ERC-20 USDC on other chains. msg.value is denominated in 18-decimal units. Any contract that hardcodes 1e6 as "one dollar of USDC" for native-value math will be off by twelve orders of magnitude. This bites enough people that it has its own guide — read it before you write payment logic.
Wallet labeling. Some wallets display the native balance with an "ETH" ticker. Your users will ask about this; the balance is USDC and the label is cosmetic.
Testnet is not mainnet. Contract addresses, chain ID, and state do not carry over. Treat a testnet deployment as a rehearsal and script your mainnet deployment so it's repeatable — mainnet gas is real USDC and there is no faucet to reimburse a mistake.
What about launching a token specifically?
If your contract is an ERC-20 and your goal is a token launch, weigh whether you need custom code at all. Team Finance's token creator deploys audited, battle-tested ERC-20 contracts on Arc with configurable supply, minting, burning, and tax settings — the same contracts used by 40,000+ projects across 26 chains — and pairs naturally with the liquidity locks and vesting your buyers will expect. Custom contracts make sense when you need custom mechanics; for a standard token, audited infrastructure beats rolling your own.
FAQ
Does my existing Solidity code work on Arc unchanged? Yes — Arc is EVM-compatible, and standard Solidity, tooling, and libraries work out of the box. The main code-level check is any logic assuming 6-decimal USDC.
What's the block time and finality on Arc? Arc uses the Malachite consensus engine with deterministic finality in under a second — roughly 780ms. There is no reorg window to design around.
Can I deploy to Arc mainnet today?
Yes. Arc mainnet has been live since September 16, 2026 — chain ID 5042, RPC https://rpc.mainnet.arc.io. There's no mainnet faucet, so fund your deployer with real USDC before deploying. Testnet (chain ID 5042002) remains available for rehearsal.
How do I get gas to deploy? On mainnet, gas is real USDC — fund your deployer wallet directly. On testnet, use Circle's faucet at faucet.circle.com; there's no separate gas token to acquire either way.
Where do I verify my contract source? On the mainnet explorer at explorer.arc.io, or testnet.arcscan.app for testnet deployments. Verified source is table stakes on a chain whose users are unusually diligence-minded.
Launching a token rather than a protocol? Deploy audited ERC-20 contracts on Arc in minutes with Team Finance's token creator.Everything Team Finance supports on ArcSources: docs.arc.io, arc.io, Circle pressroom. Network parameters verified against docs.arc.io following Arc mainnet launch, September 2026.
Last verified: September 16, 2026