Files
zk-kit/packages/protocols
cedoor ac4d96526f chore(protocols): v1.3.0
Former-commit-id: dfb2878e859af75bc3e61b64751aff1e3a050dcb [formerly 3b5cfc5a3483b84b241b9683a4396953f126eaf9] [formerly 373ce91cab5dc3e5115bf2f98dbc792434789b30 [formerly 05a9303d020d72c65197ed635de95a6936e86b4a]] [formerly 1564503938bc65d935991a29c5db6950c7f89e64 [formerly 05c68d6c91ba15bf30e08fa76d747143bd18a269] [formerly 901a7d19556c40e8a0208a7e81f462397ff41d57 [formerly e6e49453e0]]]
Former-commit-id: 6be98aebfc50ec77dc8d010a9fa6c5680a160519 [formerly cae2d5c36eabac31ab2aca1f84d2741ca218679e] [formerly b5f396c6e6fbe23ea02795140b6f5e39f6495258 [formerly 9c7b308017b67537bcab1e8612a738ddafd96382]]
Former-commit-id: 6fa08777005fdfa154bfa6c469a7bf995ff442b1 [formerly b35985cf47581d6c8e7c1e7afbc5b1fbc2a3df86]
Former-commit-id: 48ba611e0702324f7197fadd6f7fb404e598ce6e
2022-02-02 22:53:20 +01:00
..
2022-02-02 22:27:58 +01:00
2022-02-02 22:27:58 +01:00
2022-02-02 22:53:20 +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")