You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When deploying Solidity contracts to Arc Testnet (and presumably Mainnet), Arcscan displays:
"Contract not verified automatically. Please verify manually."
There is no official documentation in this repo, in the Arc docs, or anywhere on arc.io that explains:
Which hardhat-verify plugin to use
What the Blockscout API URL is for Arc Testnet / Mainnet
That a dummy API key is required (Blockscout ignores API keys but hardhat-verify rejects an empty string)
That sourcify: { enabled: false } must be set to prevent conflicting verification attempts
Discovered while building ArcPay on Arc Testnet
After deploying three Solidity contracts (InvoiceRegistry, PaymentEscrow, InvoiceNFT) to Arc Testnet and seeing the "not verified" banner on Arcscan, I had to reverse-engineer the following working configuration by trial and error:
Every developer deploying a dApp on Arc Network hits this friction point. The arc-node repo already contains hardhat.config.ts but has noetherscan or sourcify block. The "verify manually" banner on Arcscan gives no hint of where to start.
Suggested fix
Add the etherscan.customChains block above to the repo's hardhat.config.ts as a reference
Add a docs/contract-verification.md section walking through the hardhat-verify flow for Arc Testnet and Mainnet
Optionally: update Arcscan's "verify manually" page to link to this documentation
Important gotcha: the compiler version, optimizer settings, and EVM version target must match the deployed bytecode exactly. A common failure mode is that hardhat.config.ts in this repo uses evmVersion: 'prague' — if you're verifying contracts compiled with that setting, make sure the same evmVersion is set in your verification config.
Full reference docs added to PR #79: docs/contract-verification.md
@ZhiyuCircle requesting assignment — linked PR is already open, CI-green, and mergeable. Per CONTRIBUTING the only remaining gate is assignment; happy to rebase or adjust scope once assigned.
Activity
osr21 commentedon May 25, 2026
✅ Working configuration confirmed
Here's the exact setup verified against Arc Testnet + Mainnet:
hardhat.config.tssnippet:Verify:
Foundry equivalent (
foundry.toml):Important gotcha: the compiler version, optimizer settings, and EVM version target must match the deployed bytecode exactly. A common failure mode is that
hardhat.config.tsin this repo usesevmVersion: 'prague'— if you're verifying contracts compiled with that setting, make sure the sameevmVersionis set in your verification config.Full reference docs added to PR #79:
docs/contract-verification.mdkutluhaneth46 commentedon Sep 28, 2026
@ZhiyuCircle requesting assignment — linked PR is already open, CI-green, and mergeable. Per CONTRIBUTING the only remaining gate is assignment; happy to rebase or adjust scope once assigned.