Verify Your Contract on the Qumtam Explorer

Verified contracts show their full Solidity source on the explorer, so users can read exactly what the code does before interacting with it. Verification takes about 2 minutes.

Before you start — compiler settings that must match

Solidity versionexact version you compiled with (e.g. 0.8.20)
EVM versionparis (or london) — Qumtam Chain does not support PUSH0/shanghai
Optimizationsame on/off setting and runs value used at deploy time
Most common failure: compiling with EVM target shanghai or later. Always set evmVersion: "paris" in Hardhat/Foundry before deploying to Qumtam Chain — otherwise deployment itself fails with invalid opcode: PUSH0.

Option 1 — Verify in the explorer UI (flattened source)

  1. Open your contract page: explorer.qumtamchain.com/address/<your-contract>
  2. Go to the Contract tab → click Verify & publish.
  3. Choose Solidity (Single file).
  4. If your contract has imports, flatten it first:
    # Hardhat
    npx hardhat flatten contracts/MyContract.sol > MyContractFlat.sol
    
    # Foundry
    forge flatten src/MyContract.sol > MyContractFlat.sol
  5. Fill in: contract name, exact compiler version, EVM version paris, optimization setting, then paste the flattened source.
  6. If your constructor had arguments, paste the ABI-encoded constructor args (Hardhat/Foundry print them at deploy, or use the auto-detect option).
  7. Click Verify. On success the Contract tab shows a green check and full readable source.

Option 2 — Verify with Standard JSON input

  1. On the same Verify & publish screen choose Solidity (Standard JSON input).
  2. Upload the build-info JSON (Hardhat: artifacts/build-info/*.json) — all settings and imports are included automatically. This is the most reliable method for multi-file projects.

Option 3 — Verify from the command line

# Foundry
forge verify-contract \
  --verifier blockscout \
  --verifier-url https://explorer.qumtamchain.com/api \
  --chain-id 424242 \
  <CONTRACT_ADDRESS> src/MyContract.sol:MyContract

# Hardhat (hardhat.config.js)
etherscan: {
  apiKey: { qumtam: "no-key-needed" },
  customChains: [{
    network: "qumtam",
    chainId: 424242,
    urls: {
      apiURL: "https://explorer.qumtamchain.com/api",
      browserURL: "https://explorer.qumtamchain.com"
    }
  }]
}
# then: npx hardhat verify --network qumtam <ADDRESS> [constructor args]

Example: the QTM vesting contract

The official QTMVesting contract (9,900,000 QTM locked, 180-month unlock) is verified with: Solidity 0.8.20, EVM paris, optimization off — you can read its full source on the Contract tab as a reference.

Troubleshooting