For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Company
Open App
Introduction Chains RPC NodesChangelog
Introduction Chains RPC NodesChangelog
    • Overview
  • Getting Started
    • Deploy a Testnet
  • Supported Stacks
    • OP Stack
    • Arbitrum Orbit
    • Agglayer CDK
  • Guides
    • Customize Branding
    • Customize Domains
    • Get Testnet ETH
    • Get a Bridge UI
    • Bridge CGT (Arbitrum)
    • Trace Transactions
    • Share Chain Info
    • Permission your Rollup
    • Indexing your Chain
  • Explorer
    • Verify Contracts
  • Integrations
    • Bridged USDC
    • Bundler
LogoLogo
Company
Open App
On this page
  • Verify with Foundry
  • Verify during deployment
  • Verify an already-deployed contract
  • Verify with Hardhat
  • Verify with the Sourcify UI
  • Troubleshooting
Explorer

Verify contracts with Sourcify

Was this page helpful?
Previous

Bridged USDC

Next
Built with

Conduit runs a hosted Sourcify instance at contracts.conduit.xyz. It speaks the same API as the public Sourcify server, so you can verify contracts with the same tooling—Foundry, Hardhat, the Sourcify UI, or direct API calls.

The main difference: Conduit’s server automatically supports every Conduit chain. You don’t need to submit chain metadata to the Sourcify chains repository before verifying—Conduit recognizes newly launched chains immediately.

Verified contracts show source code and ABIs in Conduit Explorer, making it easier for users to read and interact with your contracts.

Verify with Foundry

The easiest way to verify a contract is to pass --verifier sourcify and Conduit’s verifier URL to Foundry. The chain ID is auto-detected from your RPC URL.

You can either set the verifier URL with an environment variable:

$export VERIFIER_URL=https://contracts.conduit.xyz

Or pass --verifier-url https://contracts.conduit.xyz directly.

Verify during deployment

Deploy and verify in a single command:

$# forge create
$forge create src/Token.sol:Token \
> --rpc-url $RPC_URL \
> --interactive \
> --broadcast \
> --verify \
> --verifier sourcify \
> --verifier-url https://contracts.conduit.xyz
$
$# forge script
$forge script script/Deploy.s.sol \
> --rpc-url $RPC_URL \
> --interactive \
> --sender <YOUR_WALLET_ADDRESS> \
> --broadcast \
> --verify \
> --verifier sourcify \
> --verifier-url https://contracts.conduit.xyz

Verify an already-deployed contract

Use forge verify-contract for contracts that are already on-chain:

$forge verify-contract \
> --rpc-url $RPC_URL \
> --verifier sourcify \
> --verifier-url https://contracts.conduit.xyz \
> <CONTRACT_ADDRESS> \
> src/MyContract.sol:MyContract

Make sure the compiler settings (version, optimizer, EVM version) match the ones you used at deploy time.

For more verification flags, see the Sourcify Foundry guide and the Foundry deployment docs.

Verify with Hardhat

Add Sourcify verification to your hardhat.config.ts using @nomicfoundation/hardhat-verify:

1import "@nomicfoundation/hardhat-verify";
2
3const config: HardhatUserConfig = {
4 // ... your existing config
5 sourcify: {
6 enabled: true,
7 apiUrl: "https://contracts.conduit.xyz",
8 // Your chain's Conduit Explorer URL (where users view verified contracts)
9 browserUrl: "https://fast-explorer-<your-network-id>.t.conduit.xyz",
10 },
11};

Then verify:

$npx hardhat verify --network <your-network> <CONTRACT_ADDRESS> [constructor args...]

Verify with the Sourcify UI

The hosted Sourcify Verify UI can point at any Sourcify-compatible server. To use it with Conduit:

  1. Open verify.sourcify.dev.
  2. Click the Settings (gear) icon in the top right.
  3. Under Add Custom Server URL, enter https://contracts.conduit.xyz and click Add.
  4. Select the new entry from the Sourcify Server URL dropdown.
  5. Pick your Conduit chain, paste the contract address, and upload your sources or metadata.

Sourcify Verify UI configured with the Conduit server

Once verification completes, the contract is available on both the Sourcify server and Conduit Explorer for your chain.

Troubleshooting

If verification fails, double-check that:

  • Compiler version matches the deploy-time version, including the commit hash (for example, 0.8.20+commit.a1b79de6).
  • Optimizer settings (enabled and runs) match deployment.
  • EVM version matches what was used at deployment.
  • All imported sources are included in the verification request.
  • Contract identifier uses the path/to/Contract.sol:ContractName format.