Files
Fuma Nama eea1b224a6 refactor(fhe): unify API - reveal() replaces getDecryptResult()
- Update to unified FHE decryption API
- Update dependencies to @luxfi/contracts
2025-12-31 21:11:35 -08:00

2.3 KiB

LuxFHE Hardhat Example Open in Gitpod

This repository contains a sample project that you can use as the starting point for your LuxFHE project. It's also a great fit for learning the basics of LuxFHE smart contract development.

This project is intended to be used with the LuxFHE Hardhat Beginners Tutorial, but you should be able to follow it by yourself by reading the README and exploring its contracts, tests, deploy and tasks directories.

It comes with two luxfhe-specific hardhat plugins:

  • luxfhe-hardhat-plugin: The main plugin for luxfhe development in hardhat. It injects @luxfhe/sdk into the hardhat runtime environment, which allows you to interact with encrypted data in your tests and tasks.
  • luxfhe-hardhat-docker: A plugin that allows you to run a local LuxFHE testnet in a docker container. This is useful for testing your contracts in a sandbox before deploying them on a testnet or on mainnet.

Quick start

The first things you need to do are cloning this repository and installing its dependencies:

git clone https://github.com/LuxFHEProtocol/luxfhe-hardhat-example.git
cd luxfhe-hardhat-example
pnpm install

Once installed, let's run a LocalLuxFHE instance:

pnpm localluxfhe:start

This will start a LocalLuxFHE instance in a docker container. If this worked you should see a Started LocalLuxFHE successfully message in your console.

If not, please make sure you have docker installed and running on your machine. You can find instructions on how to install docker here.

Now that we have a LocalLuxFHE instance running, we can deploy our contracts to it:

npx hardhat deploy

Note that this template defaults to use the localluxfhe network, which is injected into the hardhat configuration.

Finally, we can run the tasks with:

pnpm task:getCount # => 0
pnpm task:addCount
pnpm task:getCount # => 1
pnpm task:addCount --amount 5
pnpm task:getCount # => 6

TODO: frontend

More Info

To learn more about the LuxFHE Hardhat plugin, check out the LuxFHE Hardhat Plugin Repository.