Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Getting Started

@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

Install the package

npm
npm install @cofhe/hardhat-plugin

Import in your Hardhat config

hardhat.config.ts
import '@cofhe/hardhat-plugin'; 
 
export default {
  solidity: '0.8.28',
};

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
import '@cofhe/hardhat-plugin';
 
export default {
  solidity: '0.8.28',
  cofhe: {
    logMocks: true, // log FHE ops to the console (default: true)
    gasWarning: true, // warn when mock gas usage is high (default: true)
  },
};

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):

COFHE_SKIP_MOCKS_DEPLOY=1 npx hardhat test

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