Skip to main content
@cofhe/hardhat-plugin extends Hardhat with everything you need to build and test FHE-enabled contracts locally — mock contracts, a pre-configured CoFHE client, and test utilities.

What the plugin provides

  • Mock contracts deployed automatically on every npx hardhat test / npx hardhat node run, simulating the full CoFHE coprocessor stack on the Hardhat network.
  • hre.cofhe — a namespaced API for creating and connecting CoFHE clients with Hardhat signers.
  • hre.cofhe.mocks — utilities for reading raw plaintext values and interacting with mock contracts directly in tests.
  • Pre-configured networkslocalcofhe, eth-sepolia, and arb-sepolia are injected automatically.

Installation

1

Install the package

2

Import in your Hardhat config

hardhat.config.ts
That’s it. The plugin automatically deploys the mock contracts before every test run.

Configuration

The plugin adds an optional cofhe key to your Hardhat config:
hardhat.config.ts

Pre-configured networks

The following networks are injected automatically. You can override any of them by defining the same key under networks in your config. For testnets, set PRIVATE_KEY (and optionally SEPOLIA_RPC_URL / ARBITRUM_SEPOLIA_RPC_URL) in your environment.

Auto-deployment

Mock contracts are deployed automatically before:
  • npx hardhat test
  • npx hardhat node
To skip auto-deployment (e.g., when running tests only against an external RPC):

Next steps

  • Client — create and connect a CoFHE client in tests.
  • Mock Contracts — read plaintext values and interact with mock contracts.
  • Logging — inspect FHE operations in test output.
  • Testing — end-to-end test patterns.