>
>
Complete the 2023 Solidity Survey here
>
>

Plugins

Plugins are the backbone of Hardhat, and they're built using the same config API that you use in your Hardhat configuration. Read the Building plugins guide to learn how to create your own, and send a pull request to get it listed here.

Extend Hardhat's functionality with the plugins below.

Official plugins

Nomic Foundation's recommended bundle of Hardhat plugins (ethers based)

Hardhat
Setup
Ethers.js

Nomic Foundation's recommended bundle of Hardhat plugins (viem based)

Hardhat
Setup
viem

Adds Ethereum-related matchers to Chai

Chai
Testing

Injects ethers.js into the Hardhat Runtime Environment

Ethers.js
Testing
Tasks
Scripts

Makes it easier to use viem in a Hardhat project

viem
Testing
Tasks
Scripts

Automatically verify contracts

Etherscan
Verification

Makes it easier to use Hardhat and Foundry in the same project

Foundry

Hardhat plugin for the Ledger hardware wallet

Ledger
Wallet

Adds support to compile Vyper smart contracts

Vyper
Compiler

Easily run solhint to lint your Solidity code

Solhint
Linter

Automatically run the solpp preprocessor before each compilation

Solpp
Preprocessor

Adds a Waffle-compatible provider to the Hardhat Runtime Environment and automatically initializes the Waffle Chai matchers

Waffle
Testing

Injects Web3 1.x into the Hardhat Runtime Environment

Web3.js
Testing
Tasks
Scripts

Injects Web3 4.x into the Hardhat Runtime Environment

Web3.js
Testing
Tasks
Scripts

Integration with TruffleContract from Truffle 5

Truffle
Testing

Injects Web3 0.20.x into the Hardhat Runtime Environment

Web3.js
Legacy
Testing
Tasks
Scripts

Integration with TruffleContract from Truffle 4

Truffle
Testing

Community plugins

Sorted by npm downloads

Code coverage for Solidity

Testing
Coverage
Hardhat plugin

Gas usage per unit test. Average gas usage per method. A mocha reporter.

Testing
Gas
Hardhat plugin

Zero-config TypeChain support for Hardhat.

Testing
Tasks

Automatically run Hardhat actions on file changes.

Tasks
Testing

Hardhat plugin for Deployments

Deployment
Testing

Hardhat plugin for deploying and managing upgradeable contracts.

Security
Upgrades
OpenZeppelin

Calculate compiled contract sizes

Compiling
Bytecode

A hardhat-deploy plugin for Ethers.js v5

Ethers.js
hardhat-deploy

See internal transactions, events and storage operations during your hardhat tests in the console

EVM
Events
Logs
Trace
Console
Testing

Automatically export Solidity contract ABIs on compilation

Compiling
ABI

Easily integrate your Hardhat project with Tenderly. Tenderly is an Ethereum monitoring, debugging and analytics platform.

Debuggin
Monitoring
Alerting
Tasks
Scripts

The Solidity mocking library. Smock is a utility package that can generate mock Solidity contracts written entirely in JavaScript.

Testing
Mocking

An hardhat plugin to pre-process contract source code before compilation

Solidity
Preprocessor

Generate a static documentation site from NatSpec comments

Documentation
NatSpec

Compile Solidity sources directly from npm dependencies

Compiling
Dependencies

Exporting solidity contract storage layout

solidity
storage-layout

Zero-config Hardhat plugin to generate documentation for all your Solidity contracts.

Documentation
Docs
Solidity
NatSpec

Automatically expose internal Solidity functions for testing

Solidity
Testing

Automatically prepend local Solidity source files with an SPDX License Identifier

License

Automatically deploy the ERC-1820 registry contract to Hardhat EVM chains.

Testing

A jest environment with hardhat built in.

uniswap
testing
jest
node

Remove Hardhat console.log imports and calls from Solidity source files

Logging
Console
Deployment

Integrate your Hardhat project and Hardhat network with Ethernal. Ethernal is a block explorer for private chains.

explorer
debugging
development-tool

Hardhat plugin to combine multiple ABIs into a Diamond ABI artifact

diamond standard

Hardhat plugin to deploy your smart contracts across multiple EVM chains with the same deterministic address.

Deployment
CREATE2
Tasks

Define your project's deployment in a simple manifest, then deploy and share it anywhere. Inspired by Docker, Terraform, and npm. https://usecannon.com/

Tooling
Deployment
Testing

Allows changing the current network in Hardhat.

Testing

The hardhat-w3f plugin allows builders to build & run Web3 Functions connecting smart off-chain data with smart contracts

Gelato
w3f
offchain
functions

A plugin to push contracts to tenderly

Deployment
Testing
Tenderly
Verification

Helper plugin to manipulate blocks timestamp and trigger mining. It can be used from the command line and in the tests.

Testing

Hardhat plugin that allows you to use Jest easily

Deployment
Testing
Jest
Smart Contracts
Solidity

Hardhat plugin for integrating with Fireblocks

Deployment
Security

Prepare the contract artifacts and the TypeChain bindings for registry deployment.

Deployment
Tasks
TypeChain

Hardhat plugin to test scilla contracts. Scilla is Zillqa's programming language to develop smart contracts.

Scilla
Testing
Zilliqa

Check for storage layout changes

Storage Layout
Solidity
Upgradable Contracts

Automatically fetch contract ABI from Etherscan

Etherscan
ABI

A plugin for integrating Starknet tools into Hardhat projects

starknet
cairo
layer two

An updated and working Hardhat plugin to compile the Yul and Yul+ languages into solc compatible artifacts. Works with .yul and .yulp file extensions

Yul
Assembly
Compiler
Yul+

Zero-config Hardhat plugin to check the output of the compiler for any problems like missing NatSpec

Productivity
CI
Compiler
Docs
Solidity
NatSpec
Build

Hardhat made awesome with a flexible CLI to help run tests, scripts, deploy Mock contracts and more.

CLI
Testing
Tasks
Config

Integrates Chainlink into Hardhat projects.

chainlink
hardhat

Enable project-specific features inside Truffle Dashboard, including advanced calldata decoding and more

truffle-dashboard
transaction
signing
decoding

Build and deploy only changed smartcontracts

deployment
diff deployment
ethers.js
proxy

Hardhat plugin to generate smart contract bindings for Golang

Bindings
Go
Testing

This Hardhat plugin add 3 tasks to Hardhat, to summarize a smart contract in human readable format using OpenAI GPT-3, to create a readme looking at your package.json and a task to ask question to chatGPT when running into errors.

chatGPT
openai
gpt3
ai

Allow loading network configs for Hardhat projects in home file

Networks
Config

Generate a beautiful and interactive documentation website for your project in seconds

Documentation
NatSpec

Hardhat plugin for Unlock Protocol deployments.

unlock
nft
memberships
udt
testing
deployment

Automatically export contract bytecode on compilation

Bytecode
Compiling

Hardhat plugin to automate the deployment and verification of contracts

Deployment
Verification
Migration

Hardhat plugin to ease dealing ERC20 tokens in hardhat forks.

erc20
deal
foundry
forge
mock
balanceOf
fork
testing
tests

Display different signatures that have the methods, events and errors of your contracts by console

functions
errors
events
tooling
selectorss

Hardhat plugin to generate customizable smart contracts documentation

Documentation
NatSpec
Markdown

Provide tasks to integrate Circom and SnarkJS

Circom
Snarkjs
Preprocessor
Compiling
Tasks
Scripts

Upload local function selectors to the Ethereum Selector Database

Bytecode
ABI

Simple plugin to track gas on the transaction level.

Testing
Gas
Hardhat plugin

Automatically compiles your Solidity contracts with the OVM compiler.

Optimism
Solidity
Compiler
OVM

Integrates Hardhat and ethers.js with Optimism's L2 network.

Optimism
ethers.js
OVM

Hardhat plugin for Uniswap V3 deployment

uniswap
testing
deployment
local

A Hardhat plugin that generates a React hook component from your smart contracts. Hot reloaded into your React app. Deployed or not deployed. And everything typed and initialized.

Ethers.js
React
Deploy
Typechain
Frontend
Web3modal

Integrate MultiBaas into Hardhat's workflow!

middleware
ethereum
OMG

Transfers Link token amount between accounts.

Chainlink
Link

This plugin allows you to upload compiled hardhat smart contract artifacts to Kriptonio. On kriptonio side new smart contract will be created with attached artifacts, which you can afterward deploy and manage via kriptonio.

Monitoring
Debugging
Deployment

Generate 0xWeb classes for contracts to easily communicate with the blockchain.

dApp-Client
Class-Generation
Testing

Execute commands on deployed contracts on any network using a helpful TUI.

Tooling
Operations
Testing

Hardhat React Plugin to interact with your deployed contracts

Tooling
Testing
ui
plugin

Export deployed contract addresses (multichain) in typescript files.

solidity
vyper
deployment
typescript
addresses
monorepo
frontend

This Hardhat plugin provides two tasks and two functions to help you manage and optimize your transactions on Ethereum compatible blockchain. The two tasks include the ability to retry a transaction and retrieve the current gas cost.

transaction
gasPrice
retry
helper

Develop your subgraph side by side with your contracts to save gas and increase productivity.

graphprotocol
subgraph
graphql
development
deployment

Hardhat plugin to get compiler outputs of contracts

Tooling
Testing
Tasks
Scripts
Solc
Compiler

Hardhat plugin to check and lock the storage layout of contracts

Tooling
Testing
Storage

Handy set of utilities for testing contracts in Hardhat projects

testing
solidity

Hardhat plugin for solidity contract verification on Blockscout block explorer.

Blockscout
Deployment
Solidity
Verification

generate an output file of organized function selectors for all ABI/.json files within ./artifacts/contracts

function
selectors
tooling
router

Hardhat plugin for writing tests in solidity

solidity tests

Hardhat plugin to get contract storage, gas and code size insights using the compiler ast output

Tooling
Storage
Gas
Size
Bytecode

Export flat contract on compilation via Hardhat.

Flatten
Smart contract
Solidity
Deployment

Quickly add security and operational alerting for your project using Forta: a decentralized monitoring network for Web3 systems.

Security
Monitoring
Alerting
Forta

Hardhat plugin to compile the Yul and Yul+ languages into solc compatible artifacts. Works with .yul and .yulp file extensions

Yul
Assembly
Compiler
Yul+

Build prompt with Solidity code.

solidity
CLI

Overrides ENS ownership in hardhat network to allow orchestration superpowers

ENS
Testing
Orchestration
Productivity

Output list of available accounts and their balances

Accounts
Balances

A plugin for submitting code to Sourcify

Sourcify
Verification

A Hardhat Typescript plugin to test and interact with Huff contracts

Deployment
Tasks
Huff

Hardhat plugin to deeply compare smart contracts

Storage Layout
Bytecode
Diff
Compare

Keeps mainnet fork state updated by replaying relevant live txs

Mainnet fork
live
transaction replay

Hardhat plugin to send an OSX notification when hardhat compilcation fails/succeeds

Deployment
Tooling
Notification
Compile

Generate and execute on-chain transactions via txn.xyz

Signing
Scripts

Hardhat Reef plugin for interacting with contracts on the Reef chain

Reef Chain

Hardhat plugin to sync your compiled contract with Laika

Tasks
Laika

Another small hardhat task for printing contract's storage layout 📐

Deployment
Testing
Security
Debug
helper
Tasks

A framework for building solidity CTF challenges.

ctf
capture-the-flag
framework
security
solidity

Stop Hardhat test execution on demand and print output from completed tests

Testing
Mocha

Hardhat TypeScript plugin for Etherspot

smart contract wallet

A Hardhat plugin for working with on-chain proposals

governance
proposals
simulation

Publish generated typechain-types to NPM

typechain-types
npm registry

Recording deployed contracts address to json file

deployed history

Injects hethers into the Hardhat Runtime Environment

Hedera
hethers

Hardhat plugin for cloning verified contracts from any supported network using Etherscan's API.

Etherscan
Clone
Smart contract

Hardhat TypeScript plugin to run a chainlink node and interact with it

ethereum
smart-contracts
chainlink
hardhat-plugin

This plugin brings the proxy contract to Hardhat, which allows you to manage the proxy contract in a simple way.

Proxy Contract
Tasks
Scripts

Small hardhat task for debug money transfers 🤝💰

Deployment
Testing
Security
Debug
helper
Tasks

Show transaction params before hardhat send transaction to network

log
logger
transaction

View contracts' layouts with CLI and .json output

solidity
storage

Hardhat plugin to allow adding any extra data to your network configuration

Metadata
Testing
Tasks
Config

Generate unique storage namespaces within a script/task

solidity
storage
namespace
router

Hardhat plugin for Uniswap V2 (pancakeswap protocol) testing and deployment. You can use it to test features such as pair creation, liquidity provisioning, and swaps.

uniswap
pancakeswap
testing
deployment
automated

Deploy contracts with Hardhat using Gas Station Network

GSN
Gasless
Deployment