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
mocksDeployVerbosity controls how much output the plugin prints while deploying the mock contracts at the start of each npx hardhat test / npx hardhat node run:
ValueOutput
''Silent — no deploy lines.
'v'Single summary line per mock (default since 0.5.0).
'vv'Full per-contract deployment log, including each contract’s deployed address.
This is independent of logMocks, which controls runtime FHE-op logging (printed when your tests actually call FHE.*).

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.
NetworkURLChain ID
localcofhehttp://127.0.0.1:42069
eth-sepoliaEthereum Sepolia public RPC11155111
arb-sepoliaArbitrum Sepolia public RPC421614
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.