Files
zk-kit/packages/protocols
cedoor f4f32a8e63 chore(protocols): v1.5.0
Former-commit-id: e9db2029e385dda99b2eaaab945088815fa75dea [formerly b31d320823e3ce0ed2e485aa3dc9d03e444613d7] [formerly c16e4798475d36bbe8629bb58c0849b5f64214da [formerly f029a3a140a77b26b71caac1db059cc82ee99796]] [formerly 29c1a8238c78761762c0d32b894e463c36e7ee24 [formerly d322f5204b8a695e3c97eacd19cd5c0c6ead983e] [formerly 0bf5849652a12bf6696f36b9114a5dfd84c18d9a [formerly 773c106e66]]]
Former-commit-id: 40eb48cab23773574ef354a40eea1e985c04c873 [formerly 9826b69d66170b75056f232585a4139a9cebb158] [formerly 9a154aee752e463c59f9f53b6c48a86758d2ddaf [formerly 12f65e19afdb4180a12137adf840f52012e1609d]]
Former-commit-id: 976caa77ca486d00bd0f8b494cc9419df7a317d1 [formerly 247214cf2f1e273f5867b9c40f1e6b8b18de1c4b]
Former-commit-id: f5b857e70059280a94bbe9f8362fc7bfa68489df
2022-02-10 11:11:06 +01:00
..
2022-02-10 11:11:06 +01:00
2022-02-01 16:33:03 +01:00
2022-02-09 19:01:38 +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")