Files
zk-kit/packages/protocols
cedoor 4e84772463 chore(protocols): v1.7.1
Former-commit-id: ba170ecf1a6a3e901dfd0444faeaf57b3799f9f2 [formerly fc4e55a38cd5b8c0682eea7953e1a7ddb1e69608] [formerly ac5481b0653734e979e4d4d2ba88ce98b28c7625 [formerly 761c9ba0a244ec08a19a8fa2c9ce2f32bd80b556]] [formerly 49d5d6f319ac1ec4a4af1465f3b742e0f244465f [formerly dc9e066d62dc41e2f5e54b1d36e2632812c8b581] [formerly 79b39794d84d1c731239c1fff6f44a8ae29d1c0a [formerly b4247b5fdf]]]
Former-commit-id: cd44f9599210c209be90a766d6ffb20eb2bc98e2 [formerly a2cd73b040672b86db7011b960641accdf25d1e0] [formerly 81aa343fa03fda4e55027a6b3f01f209f30ed4f4 [formerly bb115dfd32eedd732c7bfed9683602f37de54892]]
Former-commit-id: f53cb90d4d388860a5e04343c7dc1171d89bcc4d [formerly b239f40d1cae71be61208af3243e29aa53d7d132]
Former-commit-id: 0909f1b5a069c8b7e978a8dacf373b06760c9696
2022-02-14 13:52:03 +01:00
..
2022-02-14 13:51:40 +01:00
2022-02-14 13:06:36 +01:00
2022-02-14 13:52:03 +01:00
2022-02-14 13:08:07 +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 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 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)