Files
zk-kit/packages/protocols/README.md
Omar Desogus 8e90d3eb8e docs: update usage section
Former-commit-id: 7362fe2a74628fa962e7df5439649d0f927df8f7 [formerly 70a9b8ceccfca6f20f1f84389abbc07ed862278a] [formerly c829822284bff219a3c8b5e8a53b0c3de03e1a28 [formerly 1f678ba12f7ef820b0bf9f3e5f4fba63de3951b6]] [formerly 24521b49a0c08d357ff5bac4a1aedebe9941616f [formerly dbfb4fc2a579c1bdcf7dfa9afa1a32a279a75bab] [formerly 27d02d534d217e816b49841096ecfb133ad4eff5 [formerly dfd4b1ce01]]]
Former-commit-id: d292d605f4c21c7f20eb6a5570367e65f201a2a6 [formerly b2fce3682648c27386aa5a51ba64e2da8a3f8074] [formerly 51416c45beed20e46bab4735993996219bbf927f [formerly e4bb077a036d6b5fd2a86b3c3ed90e09fafe4df0]]
Former-commit-id: a1da6d414f75f4d2ad0473d9ee7baf7f47ef4c53 [formerly 271d7c6ccd532d1772218a5b152ebc63f9ce0950]
Former-commit-id: bceb2d8e5987c4a18427a13e841d01f5fbfcc99b
2022-02-01 16:33:03 +01:00

2.7 KiB

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")