📒 Read documentation | 💛 Community support
fhEVM-go is an open-source library used to easily integrate the fhEVM into an EVM-compatible blockchain.
fhEVM-go gives your EVM the ability to compute on encrypted data using fully homomorphic encryption by:
In order to use the library, you need to clone the repository and build it. This is required because the library depends on the tfhe-rs
library that needs to be built from source (for now), and Go doesn't support such a build.
$ git clone --recurse-submodules https://github.com/zama-ai/fhevm-go
$ cd fhevm-go
$ make build
That's it! You can now use it in your project by adding it to go.mod
, and adding a replace
to point to your local build. An example using fhevm-go
v1.0.0:
...
require(
...
github.com/zama-ai/fhevm-go v1.0.0
...
)
replace(
...
github.com/zama-ai/fhevm-go v1.0.0 => /path/to/your/local/fhevm-go
...
)
...
[!NOTE] The replace in necessary for now as Go build system can't build the
tfhe-rs
library thatfhevm-go
needs. It's therefore necessary that we build it manually as mentioned above, then point to our ready-to-use directory ingo.mod
.
To re-generate these files, install protoc
, protoc-gen-go
and protoc-gen-go-grpc
and run protoc
cd proto && protoc --go_out=../fhevm/kms --go_opt=paths=source_relative --go-grpc_out=../fhevm/kms --go-grpc_opt=paths=source_relative kms.proto && cd ..
.
Full, comprehensive documentation is available at https://docs.zama.ai/fhevm-go.
The library helps EVM maintainers to extend their EVM with the power of FHE. If you are looking for a library to deploy and use smart contracts on an fhEVM, you should better look at https://github.com/zama-ai/fhevm.
This software is distributed under the BSD-3-Clause-Clear license. If you have any questions, please contact us at hello@zama.ai.