Files
zk-kit/packages/protocols
cedoor 6017d65ce2 chore(protocols): v1.2.5
Former-commit-id: 1f31dc31af8675a796a6a1ce126a41295e1742ba [formerly 297c49da6bb2b4382d80a3caef576bbfff4ee2e7] [formerly 210e714e41c0866d612735f9e11cfcadb9b1c50c [formerly c1a08238cd19bad93b3ce150f6a0843ec2a83f75]] [formerly ff11bc8e638512d9c3da6fd504b58cbad602c52a [formerly 048e5bf52b1ddd2dcc1729c013c30b93ef1177c5] [formerly bd3816f6e1a9b41469dac15b9ddb618d5b7ca877 [formerly eb37ae1276]]]
Former-commit-id: 2191500e81b6b70da451256d3d10043c0c0c2a31 [formerly 0b5745eac7b387508c8d7b6294e43652c7ae3e7f] [formerly e3d190dc5933c11bb8c37be4e8efdf30ae3e06d5 [formerly 6b7271fb4cd2cbdfc5a7d9af79a2b91c8e640bc9]]
Former-commit-id: 9be71b4f0f0674fe087e5fd300d84d91824363bd [formerly de3d46f7b2368f60654f7247bf36bb823662c397]
Former-commit-id: 5f58a42660cb71958181c2f3f5bc092614778245
2022-02-02 17:49:15 +01:00
..
2022-01-26 22:45:21 +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")