Skip to main content
Works on: public networks (mainnets and testnets). To verify a contract on a Virtual Environment, see Deploy and verify contracts.
Verify smart contracts from your browser in the Tenderly Dashboard. This is the fastest path when you’re not using Hardhat or Foundry; if you are, the Hardhat or Foundry workflows automate this.

Prerequisites

To verify a contract, you need to provide:
  • The source code
  • The exact compiler settings used to compile the deployed version
You can upload the source code in several ways through the Dashboard:
  • By uploading a JSON file containing contract metadata generated by the compiler
  • By pasting the source code directly
  • By uploading the source file from your file system
  • By uploading the entire directory with all your smart contracts. This makes it easy to verify contracts that have imports from other files.

Public and private verification

When verifying Smart Contracts, you have to choose between two modes: private and public.
  • Public (within Tenderly): The verified contract and its source code are available to all Tenderly users. You’re comfortable with sharing your contract with users outside your project. You want to enable the callers of your contract to use the monitoring tools.
  • Private (within Tenderly): The verified contract is visible only to the team/collaborators. Suitable during contract development.

The Verification column in the Contracts tab indicates if your contract is verified at all, privately or publicly.
Verification Status of added contracts

Dashboard contract verification guide

After you’ve added an unverified contract to a Tenderly project, here are the steps to verify it using the Dashboard.
1
Find the unverified contract
2
In the Dashboard, find your unverified contract in the Contracts list and click the Verify button next to the verification status.
3
4
Choose the upload method
5
Pick one of:
6
  • JSON Upload: paste the JSON metadata generated by the Solidity compiler.
  • ABI Upload: paste the contract ABI.
  • Contract Source Upload: paste source code directly, upload a single source file, or upload an entire project directory. The directory option works best for contracts that import other contracts in the project. File Upload Options
  • 7
    Select the contract and visibility
    8
    If the upload contains several contracts, pick the one matching the address shown in the previous step. Toggle Make Private for private verification.
    9
    10
    If any imports are missing, the Dashboard prompts you to add them before continuing.
    11
    Set the compiler settings
    12
    Fill in the compiler version, optimizer settings (enabled / runs), EVM version, and library address pairs if your contract uses linked libraries. Any mismatch with the deployed bytecode will fail verification.
    13
    14
    Finish
    15
    Click Finish to submit. The contract’s verification status updates in the Contracts list.

    How to verify smart contracts in bulk

    If you add several unverified contracts to your project, it’s possible to verify them in bulk. Follow these steps:
    1
    Find all unverified contracts
    2
    Click the Verify All Contracts in the Contract section. This will open a modal that lists all the unverified contracts in your project.
    3
    4
    Add source for each contract
    5
    Click Add Source next to each contract and supply the upload, compiler settings, and visibility toggle as in the single-contract flow above.
    6
    7
    Finish
    8
    Click Finish to submit. After all contracts are verified, choose whether to display them in the project’s transaction list.