Files
zk-kit/packages/protocols
bdim1 1c750b22ca fix: rln changes & nrln removal
Former-commit-id: e5a0c5f7728ed0e2ab7116ac9fb253c2288f8d23 [formerly b7703300c105cb6cf0ec15395c871ae840565507] [formerly a5f9b9838b07daa8573be0f445113141ae832ca0 [formerly 8481a0ec611aa63b080c2a2a255a66115453fcf4]] [formerly cf29d2c50fea8519e6147e60159366a89370a59d [formerly 81c26f7dec186ae2c32ed0d11daae4c88ba87b15] [formerly 6a19c441eff1976beaca3b68a8621a64e7ac6abe [formerly 51388a7c96]]]
Former-commit-id: 79282ec7afbcd26c5f617b8f1196ad7e572bc353 [formerly 08c264943a20a80e1007a46335a918b03915b294] [formerly 379d51c23349a6fd9d42a8fb5d9fd9b236b05d80 [formerly 30f56052734837fda765c58e336081a1b1b273c5]]
Former-commit-id: fecee6d368b4879e96cff85f1c7ca64979a6302c [formerly db4ad2b259c01b5fa1f01f9d24a6802fa9da76b5]
Former-commit-id: 81eec9e7a3972dbc21300c761e9b472b4b6a93b5
2022-02-02 22:27:58 +01:00
..
2022-02-02 22:27:58 +01:00
2022-02-02 22:27:58 +01:00
2022-02-02 17:49:15 +01:00
2022-02-01 16:33:03 +01:00
2022-01-24 15:38:45 +01:00

ZK protocols

Client library for generating and verifying Semaphore & RLN ZK proofs.

Github license NPM version Downloads npm bundle size (scoped) Linter eslint Code style prettier


🛠 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 = 5
const identityCommitments = [...];
const identity = new ZkIdentity();
const identityCommitment = identity.genIdentityCommitment();

const merkleProof = generateMerkleProof(depth, zeroValue, arity, identityCommitments, identityCommitment);

Creating Semaphore proofs

import { Semaphore, genExternalNullifier } from "@zk-kit/protocols"

const signal = "0x111"
const externalNullifier = genExternalNullifier("voting_1")
const witness = Semaphore.genWitness(identity, merkleProof, externalNullifier, signal)

const fullProof = await Semaphore.genProof(witness, "./semaphore.wasm", "./semaphore.zkey")