@cryptkeeperzk/semaphore-group
TypeScript icon, indicating that this package has built-in type declarations

3.10.3 • Public • Published

Semaphore group

A library to create and manage Semaphore groups.

Github license NPM version Downloads Documentation typedoc Linter eslint Code style prettier

This library is an abstraction of @zk-kit/incremental-merkle-tree. The main goal is to make it easier to create offchain groups, which are also used to generate Semaphore proofs. Semaphore groups are actually incremental Merkle trees, and the group members are tree leaves. Since the Merkle tree implementation we are using is a binary tree, the maximum number of members of a group is equal to 2^treeDepth.

🛠 Install

npm or yarn

Install the @cryptkeeperzk/semaphore-group package with npm:

npm i@cryptkeeperzk/semaphore-group

or yarn:

yarn add@cryptkeeperzk/semaphore-group

📜 Usage

# new Group(groupId: Member, treeDepth = 20): Group

import { Group } from "@cryptkeeperzk/semaphore-group"
import { Identity } from "@cryptkeeperzk/semaphore-identity"

// Group with max 1048576 members (20^²).
const group1 = new Group(1)

// Group with max 65536 members (16^²).
const group2 = new Group(1, 16)

// Group with max 16777216 members (24^²).
const group3 = new Group(1, 24)

// Group with a list of predefined members.
const identity1 = new Identity()
const identity2 = new Identity()
const identity3 = new Identity()

const group3 = new Group(1, 16, [identity1.commitment, identity2.commitment, identity3.commitment])

# addMember(identityCommitment: Member)

import { Identity } from "@cryptkeeperzk/semaphore-identity"

const identity = new Identity()
const commitment = identity.generateCommitment()

group.addMember(commitment)

# removeMember(index: number)

group.removeMember(0)

# indexOf(member: Member): number

group.indexOf(commitment) // 0

# generateMerkleProof(index: number): MerkleProof

const proof = group.generateMerkleProof(0)

Readme

Keywords

none

Package Sidebar

Install

npm i @cryptkeeperzk/semaphore-group

Weekly Downloads

1

Version

3.10.3

License

MIT

Unpacked Size

52.4 kB

Total Files

15

Last publish

Collaborators

  • cryptkeeper-admin