# Hardhat 3

> Markdown mirror of DialtoneApp's public top-site detail page for `hardhat.org`.

URL: https://dialtoneapp.com/top-sites/hardhat.org/index.md
Canonical HTML: https://dialtoneapp.com/top-sites/hardhat.org

## Summary

- Domain: `hardhat.org`
- Website: https://hardhat.org
- Description: ai readable | score 20 | purchase read only
- Label: ai_readable
- Payment surface: Not available
- Purchase boundary: read_only
- Control boundary: unknown
- Rank: 400906

## robots

~~~text
User-agent: *
Allow: /

Sitemap: https://hardhat.org/sitemap-index.xml
~~~

## llms

~~~text
# Hardhat 3

> Hardhat is a development environment for Ethereum and EVM-compatible blockchains.
> It helps developers compile, deploy, test, and debug Solidity smart contracts.
> Solidity is the primary programming language for writing smart contracts on Ethereum.
>
> This documentation covers Hardhat 3, the latest major version.
> The docs are organized into sections: core Hardhat usage, Hardhat Ignition
> (a declarative deployment system), migration guides from Hardhat 2,
> and a plugin development guide.


## Hardhat 3
- [Getting started with Hardhat 3](https://hardhat.org/docs/getting-started.md): Get started using Hardhat 3
- [Hardhat 2's documentation](https://hardhat.org/hardhat2.md): Documentation for Hardhat 2, the previous version of Hardhat

### Hardhat 3

- [What's new in Hardhat 3](https://hardhat.org/docs/hardhat3/whats-new.md): What's new in Hardhat 3
- [Beta status](https://hardhat.org/docs/hardhat3/beta-status.md): Hardhat 3 beta status
- [Migrate to Hardhat 3](https://hardhat.org/docs/hardhat3/migration.md): How to migrate to Hardhat 3

### Tutorial

- [Hardhat 3 Tutorial](https://hardhat.org/docs/tutorial.md): Hardhat 3 Tutorial - Introduction
- [Setting up a Hardhat project](https://hardhat.org/docs/tutorial/setup.md): Hardhat 3 Tutorial - Setting up a project
- [Writing and testing a Solidity contract](https://hardhat.org/docs/tutorial/writing-and-testing.md): Hardhat 3 Tutorial - Writing and testing a Solidity contract
- [Using an assertions library](https://hardhat.org/docs/tutorial/assertions-library.md): Hardhat 3 Tutorial - Using an assertions library
- [Writing fuzz tests in Solidity](https://hardhat.org/docs/tutorial/fuzz-tests.md): Hardhat 3 Tutorial - Writing fuzz tests in Solidity
- [Using a Hardhat plugin](https://hardhat.org/docs/tutorial/plugins.md): Hardhat 3 Tutorial - Using a Hardhat plugin
- [Writing TypeScript tests](https://hardhat.org/docs/tutorial/typescript-tests.md): Hardhat 3 Tutorial - Writing TypeScript tests
- [Measuring test coverage](https://hardhat.org/docs/tutorial/coverage.md): Hardhat 3 Tutorial - Measuring test coverage
- [Deploying a contract](https://hardhat.org/docs/tutorial/deploying.md): Hardhat 3 Tutorial - Deploying a contract with Hardhat Ignition
- [Using Configuration Variables](https://hardhat.org/docs/tutorial/configuration-variables.md): Hardhat 3 Tutorial - Using Configuration Variables
- [Verifying a contract](https://hardhat.org/docs/tutorial/verifying.md): Hardhat 3 Tutorial - Verifying a contract on Etherscan
- [Learn more](https://hardhat.org/docs/tutorial/learn-more.md): Hardhat 3 Tutorial - Learn more about Hardhat

### Guides

- [Verifying smart contracts](https://hardhat.org/docs/guides/smart-contract-verification.md): How to verify a smart contract
- [Managing config values and secrets safely](https://hardhat.org/docs/guides/configuration-variables.md): How to manage config variables and secrets safely
- [Writing Hardhat tasks](https://hardhat.org/docs/guides/writing-tasks.md): How to write custom Hardhat tasks with Hardhat 3
- [Writing scripts with Hardhat](https://hardhat.org/docs/guides/writing-scripts.md): How to write and run Hardhat scripts
- [Displaying execution traces](https://hardhat.org/docs/guides/execution-traces.md): How to control the amount of output shown during test execution, script runs, and deployments
- [Forking a network](https://hardhat.org/docs/guides/forking.md): How to fork the state of another network
- [Running a local development node](https://hardhat.org/docs/guides/hardhat-node.md): How to run and configure a local Hardhat development node for testing and development
- [Using the Hardhat console](https://hardhat.org/docs/guides/hardhat-console.md): How to use the interactive Hardhat console
- [Getting help](https://hardhat.org/docs/guides/getting-help.md): How to get help about Hardhat 3

#### Writing Smart contracts

- [Writing contracts overview](https://hardhat.org/docs/guides/writing-contracts.md): How to write smart contracts using Hardhat 3
- [Managing smart contract dependencies](https://hardhat.org/docs/guides/writing-contracts/dependencies.md): How to use npm and git submodule dependencies
- [Using Solidity remappings](https://hardhat.org/docs/guides/writing-contracts/remappings.md): How to use remappings
- [Configuring the compiler](https://hardhat.org/docs/guides/writing-contracts/configuring-the-compiler.md): How to configure the compiler
- [Isolated Builds](https://hardhat.org/docs/guides/writing-contracts/isolated-builds.md): How to use isolated builds in Hardhat 3 for better reproducibility
- [Build Profiles](https://hardhat.org/docs/guides/writing-contracts/build-profiles.md): How to use Build Profiles in Hardhat 3

#### Testing Smart contracts

- [Testing overview](https://hardhat.org/docs/guides/testing.md): How to test your smart contracts
- [Writing unit tests in Solidity](https://hardhat.org/docs/guides/testing/using-solidity.md): How to write unit tests in Solidity
- [Testing your smart contracts with viem and node:test](https://hardhat.org/docs/guides/testing/using-viem.md): Learn how to test your smart contracts using viem and Node.js test runner.
- [Testing your smart contracts with Ethers and Mocha](https://hardhat.org/docs/guides/testing/using-ethers.md): Learn how to test your smart contracts using Ethers.js and Mocha.
- [Inline configuration for Solidity tests](https://hardhat.org/docs/guides/testing/inline-configuration.md): How to use inline comments to override the solidity tests' configuration
- [Computing code coverage of your tests](https://hardhat.org/docs/guides/testing/code-coverage.md): How to compute the code coverage of your tests
- [Gas statistics for your test runs](https://hardhat.org/docs/guides/testing/gas-statistics.md): How to get gas statistics from your test runs
- [Gas snapshots](https://hardhat.org/docs/guides/testing/gas-snapshots.md): How to track and compare gas usage across test runs

#### Deploying Smart contracts

- [Deployment overview](https://hardhat.org/docs/guides/deployment.md): How to deploy a smart contract using Hardhat
- [Deploying smart contracts using Hardhat Ignition](https://hardhat.org/docs/guides/deployment/using-ignition.md): How to deploy a smart contract using Hardhat Ignition
- [Deploying smart contracts using scripts](https://hardhat.org/docs/guides/deployment/using-scripts.md): How to deploy a smart contract using scripts

### Cookbook

- [Cookbook overview](https://hardhat.org/docs/cookbook.md): A section with a collection of recipes for common tasks.
- [Using Hardhat 3 with a HTTP proxy](https://hardhat.org/docs/cookbook/http-proxies.md): How to use Hardhat 3 with an HTTP proxy
- [Using multiple versions of Solidity in a single project](https://hardhat.org/docs/cookbook/multiple-solidity-versions.md): How to use multiple versions of Solidity in a single project
- [Generating artifacts from npm dependencies](https://hardhat.org/docs/cookbook/npm-artifacts.md): How to compile files from npm dependencies and generate compilation artifacts for them
- [Using absolute imports in Solidity](https://hardhat.org/docs/cookbook/absolute-imports.md): How to configure and use absolute import paths in your Solidity contracts
- [Using a custom Solidity compiler](https://hardhat.org/docs/cookbook/custom-solidity-compiler.md): How to configure Hardhat to use a custom Solidity compiler
- [Running Hardhat with debug logs](https://hardhat.org/docs/cookbook/debug-logs.md): How to run Hardhat with debug logs
- [Creating a Hardhat Runtime Environment programmatically](https://hardhat.org/docs/cookbook/programmatic-hre.md): How to initialize and configure a Hardhat Runtime Environment programmatically

### Reference

- [Configuration](https://hardhat.org/docs/reference/configuration.md): Hardhat 3 configuration reference
- [The Network Manager API](https://hardhat.org/docs/reference/network-manager.md): How to use the Network Manager of Hardhat 3
- [Simulated Networks by EDR](https://hardhat.org/docs/reference/edr-simulated-networks.md): Reference documentation for networks simulated by EDR
- [OP Stack support](https://hardhat.org/docs/reference/op-stack-support.md): Reference documentation for OP Stack chain simulation in Hardhat
- [JSON-RPC Methods](https://hardhat.org/docs/reference/json-rpc-methods.md): Reference of JSON-RPC methods supported by Hardhat's simulated networks
- [Compilation artifacts formats](https://hardhat.org/docs/reference/artifacts.md): Hardhat 3 compilation artifacts formats reference
- [Solidity console.log() reference](https://hardhat.org/docs/reference/console-log.md): Reference documentation of Hardhat's Solidity console.log() functionality
- [Foundry compatibility](https://hardhat.org/docs/reference/foundry-compatibility.md): Hardhat 3's Foundry compatibility
- [Stability guarantees](https://hardhat.org/docs/reference/stability-guarantees.md): Hardhat 3 stability guarantees
- [Node.js support](https://hardhat.org/docs/reference/nodejs-support.md): Hardhat 3 Node.js support policy
- [Hardhat 3 errors](https://hardhat.org/docs/reference/errors.md): This section contains a list of all the possible errors you may encounter when using Hardhat and an explanation of each of them

#### Solidity test cheatcodes

- [Cheatcodes overview](https://hardhat.org/docs/reference/cheatcodes/cheatcodes-overview.md): A section with the documentation of all Solidity test cheatcodes supported by Hardhat.
- [Unsupported cheatcodes](https://hardhat.org/docs/reference/cheatcodes/unsupported-cheatcodes.md): List of unsupported cheatcodes in Hardhat.

### Explanations

- [Hardhat 3 projects](https://hardhat.org/docs/explanations/hardhat-projects.md): An explanation about what a Hardhat project is
- [The Hardhat Runtime Environment](https://hardhat.org/docs/explanations/hardhat-runtime-environment.md): An explanation about what the Hardhat Runtime Environment (HRE) is
- [Multichain support](https://hardhat.org/docs/explanations/multichain-support.md): An explanation of Hardhat 3's Multichain support and its Chain Type concept
- [Network Management](https://hardhat.org/docs/explanations/network-management.md): An explanation about Hardhat 3's Network Management
- [Simulated Networks by EDR](https://hardhat.org/docs/explanations/edr-simulated-networks.md): An explanation of the networks simulated by EDR
- [Configuration Variables](https://hardhat.org/docs/explanations/configuration-variables.md): An explanation about Hardhat 3's Configuration Variables
- [Global Options](https://hardhat.org/docs/explanations/global-options.md): An explanation about Hardhat's global options

### Plugins


## Hardhat Ignition
- [Getting started with Hardhat Ignition](https://hardhat.org/ignition/docs/getting-started.md): Getting started with Hardhat Ignition, a declarative smart contract deployment system.

### Guides

- [Creating Ignition Modules](https://hardhat.org/ignition/docs/guides/creating-modules.md): How to create an Ignition Module
- [Deploying a module](https://hardhat.org/ignition/docs/guides/deploy.md): How to deploy an Ignition Module
- [Visualizing your Ignition Modules](https://hardhat.org/ignition/docs/guides/visualize.md): How to visualize an Ignition Module
- [Modifying an existing module](https://hardhat.org/ignition/docs/guides/modifications.md): How to modify an existing Ignition Module
- [Using Hardhat Ignition in your tests](https://hardhat.org/ignition/docs/guides/tests.md): How to use Hardhat Ignition in your tests
- [Verifying your deployment](https://hardhat.org/ignition/docs/guides/verify.md): How to verify an Ignition deployment
- [Using Ethers](https://hardhat.org/ignition/docs/guides/ethers.md): How to use Ethers.js with Ignition
- [Version control of deployments](https://hardhat.org/ignition/docs/guides/versioning.md): How to version control your deployments
- [Deploying via create2](https://hardhat.org/ignition/docs/guides/create2.md): How to use create2 with Ignition
- [Upgradeable Contracts](https://hardhat.org/ignition/docs/guides/upgradeable-proxies.md): How to use upgradeable contracts with Hardhat Ignition
- [Deploying with a Ledger hardware wallet](https://hardhat.org/ignition/docs/guides/ledger.md): How to to deploy with Hardhat Ignition using a Ledger wallet
- [Deploying within Hardhat scripts](https://hardhat.org/ignition/docs/guides/scripts.md): How to to deploy with Hardhat Ignition using a Ledger wallet

### Reference

- [Hardhat Ignition configuration](https://hardhat.org/ignition/docs/reference/config.md): Reference documentation about Hardhat Ignition's configuration
- [Environment variables](https://hardhat.org/ignition/docs/reference/environment-variables.md): Hardhat Ignition env variables
- [CLI commands](https://hardhat.org/ignition/docs/reference/cli-commands.md): Hardhat Ignition command line commands

### Explanations

- [Module execution](https://hardhat.org/ignition/docs/explanations/execution.md): An explanation about Ignition's module execution
- [Deployment artifacts](https://hardhat.org/ignition/docs/explanations/deployment-artifacts.md): An explanation about Ignition's deployment artifacts
- [Reconciliation](https://hardhat.org/ignition/docs/explanations/reconciliation.md): An explanation about Ignition's reconciliation process
- [Error handling](https://hardhat.org/ignition/docs/explanations/error-handling.md): How to Hardhat Ignition handles errors

## Migrate from Hardhat 2
- [Migrate from Hardhat 2](https://hardhat.org/docs/migrate-from-hardhat2.md): How to migrate from Hardhat 2 to Hardhat 3

### Guides

- [Migrate Mocha tests from Hardhat 2](https://hardhat.org/docs/migrate-from-hardhat2/guides/mocha-tests.md): How to migrate Mocha tests from Hardhat 2 to Hardhat 3

## Plugin development
- [Hardhat plugin development](https://hardhat.org/docs/plugin-development.md): How to build Hardhat 3 plugins to extend and customize its behavior

### Tutorial

- [Your first Hardhat 3 plugin](https://hardhat.org/docs/plugin-development/tutorial.md): Hardhat 3 plugin tutorial - Your first Hardhat 3 plugin
- [Extending the NetworkConnection](https://hardhat.org/docs/plugin-development/tutorial/network-connection.md): Hardhat 3 plugin tutorial - Extending the NetworkConnection
- [Adding config to your plugin](https://hardhat.org/docs/plugin-development/tutorial/config.md): Hardhat 3 plugin tutorial - Adding config to your plugin
- [Creating a custom task](https://hardhat.org/docs/plugin-development/tutorial/task.md): Hardhat 3 plugin tutorial - Creating a custom task
- [Testing your plugin](https://hardhat.org/docs/plugin-development/tutorial/testing.md): Hardhat 3 plugin tutorial - Testing your plugin
- [Next steps](https://hardhat.org/docs/plugin-development/tutorial/next-steps.md): Hardhat 3 plugin tutorial - Next steps

### Guides

- [Using the Hardhat 3 plugin template](https://hardhat.org/docs/plugin-development/guides/hardhat3-plugin-template.md): How to use the Hardhat 3 plugin template repository to build your own plugin
- [Plugin dependencies](https://hardhat.org/docs/plugin-development/guides/dependencies.md): How to use other plugins as dependencies
- [Publishing a plugin](https://hardhat.org/docs/plugin-development/guides/publishing.md): How to publish your plugin to npm
- [Writing integration tests for plugins](https://hardhat.org/docs/plugin-development/guides/integration-tests.md): How to write integration tests for your plugin
- [Getting help](https://hardhat.org/docs/plugin-development/guides/getting-help.md): Where to get help building Hardhat 3 plugins

### Reference

- [The HardhatPlugin object](https://hardhat.org/docs/plugin-development/reference/hardhat-plugin-object.md): Reference documentation for the HardhatPlugin object

### Explanations

- [Lifecycle of the components of a Hardhat 3 plugin](https://hardhat.org/docs/plugin-development/explanations/lifecycle.md): An explanation about the lifecycles of a Hardhat 3 plugin
- [Hooks and Hook Handlers](https://hardhat.org/docs/plugin-development/explanations/hooks.md): An explanation about Hardhat 3's Hooks and Hook Handlers
- [Type extensions](https://hardhat.org/docs/plugin-development/explanations/type-extensions.md): What are type extensions in a Hardhat 3 plugin and how to use them
- [Config system](https://hardhat.org/docs/plugin-development/explanations/config.md): An explanation about the Hardhat 3 config system and how to extend it
- [Peer dependencies in Hardhat 3 plugins](https://hardhat.org/docs/plugin-development/explanations/peer-dependencies.md): An explanation about Hardhat 3 plugins and peer dependencies

## Official Plugins

- [hardhat-toolbox-viem](https://hardhat.org/docs/plugins/hardhat-toolbox-viem.md): Nomic Foundation's recommended bundle of Hardhat plugins (viem based)
- [hardhat-toolbox-mocha-ethers](https://hardhat.org/docs/plugins/hardhat-toolbox-mocha-ethers.md): Nomic Foundation's recommended bundle of Hardhat plugins (ethers based)
- [hardhat-keystore](https://hardhat.org/docs/plugins/hardhat-keystore.md): This plugin adds an encrypted keystore to Hardhat, to handle secret values (e.g. API keys and private keys) in your config securely.
- [hardhat-verify](https://hardhat.org/docs/plugins/hardhat-verify.md): Automatically verify contracts
- [hardhat-network-helpers](https://hardhat.org/docs/plugins/hardhat-network-helpers.md): A plugin that provides a set of utility functions to interact with locally simulated networks.
- [hardhat-ledger](https://hardhat.org/docs/plugins/hardhat-ledger.md): A plugin that allows to interact with Ledger hardware wallets.
- [hardhat-viem](https://hardhat.org/docs/plugins/hardhat-viem.md): Integrates viem into a Hardhat project
- [hardhat-viem-assertions](https://hardhat.org/docs/plugins/hardhat-viem-assertions.md): Adds a set of viem-based testing assertions to Hardhat
- [hardhat-ethers](https://hardhat.org/docs/plugins/hardhat-ethers.md): Integrates Ethers.js into a Hardhat project
- [hardhat-ethers-chai-matchers](https://hardhat.org/docs/plugins/hardhat-ethers-chai-matchers.md): Adds a set of ethers-based matchers to chai
- [hardhat-typechain](https://hardhat.org/docs/plugins/hardhat-typechain.md): Generates TypeChain bindings for smart contracts
- [hardhat-ignition](https://hardhat.org/docs/plugins/hardhat-ignition.md): Hardhat's official deployment solution
- [hardhat-ignition-viem](https://hardhat.org/docs/plugins/hardhat-ignition-viem.md): Adds support for viem to Hardhat Ignition
- [hardhat-ignition-ethers](https://hardhat.org/docs/plugins/hardhat-ignition-ethers.md): Adds support for Ethers.js to Hardhat Ignition
- [hardhat-mocha](https://hardhat.org/docs/plugins/hardhat-mocha.md): Integrates Mocha into a Hardhat project
- [hardhat-node-test-runner](https://hardhat.org/docs/plugins/hardhat-node-test-runner.md): Integrates Node.js' builtin test runner into a Hardhat project
- [hardhat-foundry](https://hardhat.org/docs/plugins/hardhat-foundry.md): Hardhat plugin that provides compatibility with Foundry-based projects' remappings

## Community Plugins

- [hardhat-deploy](https://www.npmjs.com/package/hardhat-deploy): A Hardhat Plugin For Replicable Deployments And Easy Testing
- [hardhat-ignore-warnings](https://www.npmjs.com/package/hardhat-ignore-warnings): Hardhat plugin that adds ways to ignore Solidity warnings
- [@solidstate/hardhat-contract-sizer](https://www.npmjs.com/package/@solidstate/hardhat-contract-sizer): Output Solidity contract sizes with Hardhat
- [@solidstate/hardhat-git](https://www.npmjs.com/package/@solidstate/hardhat-git): Git-rev-based HRE execution
- [@solarity/hardhat-migrate](https://www.npmjs.com/package/@solarity/hardhat-migrate): The simplest way to deploy smart contracts
- [@solarity/hardhat-gobind](https://www.npmjs.com/package/@solarity/hardhat-gobind): Hardhat plugin to generate Go bindings for smart contracts
- [@solarity/hardhat-markup](https://www.npmjs.com/package/@solarity/hardhat-markup): Hardhat plugin to generate customizable smart contracts documentation
- [@solidstate/hardhat-bytecode-exporter](https://www.npmjs.com/package/@solidstate/hardhat-bytecode-exporter): Export Ethereum smart contract bytecode
- [@openscan/hardhat-plugin](https://www.npmjs.com/package/@openscan/hardhat-plugin): Hardhat plugin to explore the hardhat network, blocks, txs, contracts, etc.
- [@solidstate/hardhat-abi-exporter](https://www.npmjs.com/package/@solidstate/hardhat-abi-exporter): Export Ethereum smart contract ABIs
- [@solidstate/hardhat-accounts](https://www.npmjs.com/package/@solidstate/hardhat-accounts): Display connected accounts and balances
- [@solidstate/hardhat-storage-layout-inspector](https://www.npmjs.com/package/@solidstate/hardhat-storage-layout-inspector): Compare storage layouts between contracts and revisions
- [hardhat-contract-signatures](https://www.npmjs.com/package/hardhat-contract-signatures): Display function, event, and error signatures for your contracts in the console
- [hardhat-reown](https://www.npmjs.com/package/hardhat-reown): Use the reown.com supported wallets with Hardhat
- [hashscan-verify](https://www.npmjs.com/package/hashscan-verify): Verify contracts on Hashscan
- [@solidstate/hardhat-license-identifier](https://www.npmjs.com/package/@solidstate/hardhat-license-identifier): Prepend local Solidity source files with an SPDX License Identifier
- [@solidstate/hardhat-selector-uploader](https://www.npmjs.com/package/@solidstate/hardhat-selector-uploader): Upload local function selectors to the Ethereum Selector Database
- [@solidstate/hardhat-log-remover](https://www.npmjs.com/package/@solidstate/hardhat-log-remover): Remove Hardhat console.log imports and calls from Solidity source files
- [@solidstate/hardhat-linearization](https://www.npmjs.com/package/@solidstate/hardhat-linearization): Calculate Solidity contract inheritance order
~~~

## llms-full

Not found.