<
<
<
Hardhat 3 is now production ready. Migrate now
>
>
>

#hardhat-toolbox-viem

This toolbox includes a set of plugins to build Hardhat projects with viem as the connection library and the Node.js test runner for TypeScript tests. It's our recommended toolbox for new Hardhat projects.

#Sample project

You can initialize a project based on this toolbox by running npx hardhat --init and selecting A TypeScript Hardhat project using Node Test Runner and Viem as the project type.

#Manual installation

If you want to add the toolbox manually, first install the package:

npm install --save-dev @nomicfoundation/hardhat-toolbox-viem

Then add it to your Hardhat configuration:

import hardhatToolboxViem from "@nomicfoundation/hardhat-toolbox-viem";

export default {
  plugins: [hardhatToolboxViem],
};

#Included functionality

With this toolbox, you can:

#Bundled plugins

When you install @nomicfoundation/hardhat-toolbox-viem, these plugins are automatically installed as peer dependencies:

#Explicitly installing plugins

In some cases, you may need to manually install one of the included plugins. This can happen if:

  • You want to use a different version than the one included in the toolbox.
  • You need to import something from the plugin in your code and need to have it in your package.json to avoid issues.

For example, the @nomicfoundation/hardhat-viem-assertions plugin includes an anyValue predicate that can be used along with the .emitWithArgs assertion. If you want to use this predicate in your code, you need to install the plugin explicitly:

npm install --save-dev @nomicfoundation/hardhat-viem-assertions

Then you'll be able to import things from the plugin:

import { anyValue } from "@nomicfoundation/hardhat-viem-assertions/predicates";