mirror of
https://github.com/privacy-scaling-explorations/zk-kit.git
synced 2026-04-22 03:00:15 -04:00
Former-commit-id: 8c0eff82bb1d543bfbc661a1c7555354cb8d5be5 [formerly 017ac827194d5d01f9af959739aa63ae3c559692] [formerly 68f6c7906ec269b74d8a5528e7b19fac6cd06e68 [formerly 5dde3b7944abee0ac5455cf281049f6179ac5145]] [formerly 100d2033b7ceb87a6566890127f7869bc75cbd59 [formerly 7e757c2cbf1cd58a5fd670d7a7c61531e0c797cd] [formerly f8d7e0ab82af16a4dae692288f7b9979face2bf8 [formerly 925dc525ae]]]
Former-commit-id: dcf54d96430f94ee7b5810422d2e734cce1e027d [formerly 4d3d273caa6a620291659e47c4b9530d86d62b9d] [formerly f58753d33ed9f2a85ca9c5a7b2f92adcee4453bb [formerly 105d7d03ffdd11ee65e74196bd473fa938676b0b]]
Former-commit-id: 9cffd34724c31063d2acfb4a27cde92df8b7ea07 [formerly c8e8637e621d9daf71c508af0655a5c3dea63f49]
Former-commit-id: e541add3f75f0a6ad382e7c0e4a7b17aafcf5361
ZK protocols
Client library for generating and verifying Semaphore & RLN ZK proofs.
🛠 Install
npm or yarn
Install the @zk-kit/protocols package with npm:
npm i @zk-kit/protocols
or yarn:
yarn add @zk-kit/protocols
📜 Usage
Generating Merkle proofs
import { ZkIdentity } from "@zk-kit/identity"
import { generateMerkleProof } from "@zk-kit/protocols"
const depth = 20
const zeroValue = BigInt(0)
const arity = 2
const identity = new ZkIdentity()
const identityCommitment = identity.genIdentityCommitment()
const identityCommitments = [BigInt(1), identityCommitment, BigInt(2)]
const merkleProof = generateMerkleProof(depth, zeroValue, arity, identityCommitments, 1)
Creating Semaphore proofs
import { Semaphore } from "@zk-kit/protocols"
const signal = "Hello world"
const externalNullifier = BigInt(1)
const witness = Semaphore.genWitness(identity, merkleProof, externalNullifier, signal)
const fullProof = await Semaphore.genProof(witness, "./semaphore.wasm", "./semaphore.zkey")
const solidityProof = Semaphore.packToSolidityProof(fullProof)