# Awesome Plugins for Contract Verification

By [Etherscan](https://paragraph.com/@etherscan) · 2023-01-20

---

_This blog is written by_ [_nicholaschin.eth_](https://mirror.xyz/nicholaschin.eth)_._

> Contract verification allows smart contract developers to prove and [publish the source code](https://info.etherscan.com/types-of-contract-verification/) of the contracts deployed on-chain.

As your smart contracts for your NFT marketplace or governance token grows in size, so would the **number of parameters and files** you have to include in your verification process.

Plugins help **automate this as much as possible**; detecting compiler settings, metadata, libraries, and imported files to be submitted to Etherscan. They’re usually also baked-in to IDEs and developer tooling that you’re already using.

Here are 4 plugins built by the community that makes contract verification feel like writing “Hello World”!

1\. Hardhat Verify
------------------

> Uses Solidity Json Input format ✅ Custom constructor arguments ✅ Custom library address inputs ✅ Built-in support for most networks plus custom explorer option ✅

[Hardhat](https://hardhat.org/) is running as one of the most popular Ethereum development environments out there, with features such as compilers, node simulation, tests, and much more.

Once you’ve deployed your contract, simply install the Hardhat Etherscan plugin via [npm](https://www.npmjs.com/package/@nomiclabs/hardhat-ethers) and run `npx hardhat verify` to automatically submit contracts to Etherscan and any similar “scan” explorers your project is supported on.

Hardhat also has a tasks feature, which you can automate and repeat this verification process as needed across multiple chains.

[https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-etherscan](https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-etherscan)

2\. Foundry
-----------

> Uses Solidity Json Input or Single File format ✅ Custom constructor arguments ✅ Custom library address inputs ❌ Built-in support for most networks plus custom explorer option ✅

[Foundry](https://getfoundry.sh/) is a rising development toolkit, focused on the speed and performance of Rust that it’s written in.

A verification module is baked into it, which supports submitting this as a multifile contract or flattening it into a single file using the `--flatten` flag.

This plugin goes well with those already within the Rust ecosystem, and can be easily installed with [Cargo](https://book.getfoundry.sh/getting-started/installation)!

[https://book.getfoundry.sh/forge/deploying](https://book.getfoundry.sh/forge/deploying)

3\. Truffle Plugin Verify
-------------------------

> Uses Solidity Json Input format ✅ Custom constructor arguments ✅ Custom library address inputs ❌ Built-in support for most networks plus custom explorer option ✅

One of the earliest Solidity development tools, devs will remember and still go on to love developing with [Truffle](https://trufflesuite.com/).

Truffle users can and have always been able to use the verification plugin developed by [@rkalis](https://github.com/rkalis) to submit verifications, easily integrated into your project via an [npm](https://www.npmjs.com/package/truffle-plugin-verify) package.

Once you have it added, simply run `truffle run verify YourContractName --network mainnet` or to any chain you need this on!

[https://github.com/rkalis/truffle-plugin-verify](https://github.com/rkalis/truffle-plugin-verify)

4\. Remix
---------

> Uses Solidity Json Input format ✅ Custom constructor arguments ✅ Custom library address inputs ❌ Only Ethereum mainnet and testnets supported ❌

Not leaving out web devs, [Remix](https://remix.ethereum.org/) is an online, no-install web IDE that you can whip up and deploy contracts within your own browser.

The verification plugin comes from activating the `Etherscan - Contract Verification` module from plugin manager.

One thing to note is while Remix can be used with any EVM network, the verification module only supports the Ethereum network at the moment.

They do however have a `Flattener` plugin which you can manually compile and submit source code to other explorers.

[https://remix-etherscan-plugin.readthedocs.io/en/latest/](https://remix-etherscan-plugin.readthedocs.io/en/latest/)

This list isn’t exhaustive
--------------------------

Share your new plugins, thoughts, or issues with us through a [contact](https://etherscan.io/contactus) or via [Blockscan Chat](https://chat.blockscan.com/) to nicholaschin.eth💡

Open source the world, verifyooors!

---

*Originally published on [Etherscan](https://paragraph.com/@etherscan/awesome-plugins-for-contract-verification)*
