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

0.0.4 • Public • Published

Semaphore proof

A library to generate and verify Semaphore proofs using Noir.

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

🛠 Install

npm or yarn

Install the @semaphore-noir/proof package and its peer dependencies with npm:

npm i @semaphore-protocol/identity @semaphore-protocol/group @semaphore-noir/proof

or yarn:

yarn add @semaphore-protocol/identity @semaphore-protocol/group @semaphore-noir/proof

📜 Usage

# generateProof( identity: Identity, group: Group | MerkleProof, externalNullifier: BytesLike | Hexable | number | bigint, signal: BytesLike | Hexable | number | bigint ): Promise<SemaphoreFullProof>

import { Identity } from "@semaphore-protocol/identity"
import { Group } from "@semaphore-protocol/group"
import { generateProof } from "@semaphore-noir/proof"
import { utils } from "ethers"

const externalNullifier = utils.formatBytes32String("Topic")
const signal = utils.formatBytes32String("Hello world")

const group = new Group(1, 16) // group Id and treeDepth
const identity = new Identity("your-message") // create and reproduce the identity with a String message

group.addMember(identity.getCommitment())

const fullProof = await generateProof(identity, group, externalNullifier, signal)

# verifyProof(fullProof: FullProof, treeDepth: number): Promise<boolean>

import { verifyProof } from "@semaphore-noir/proof"

await verifyProof(fullProof, 20) // fullProof and treeDepth

# calculateNullifierHash( identityNullifier: bigint | number | string, externalNullifier: _BytesLike | Hexable | number | bigint ): bigint

import { Identity } from "@semaphore-protocol/identity"
import { calculateNullifierHash } from "@semaphore-noir/proof"

const identity = new Identity()
const externalNullifier = utils.formatBytes32String("Topic")

const nullifierHash = calculateNullifierHash(identity.nullifier, externalNullifier)

Readme

Keywords

none

Package Sidebar

Install

npm i @semaphore-noir/proof

Weekly Downloads

0

Version

0.0.4

License

MIT

Unpacked Size

3.38 MB

Total Files

22

Last publish

Collaborators

  • velkoskis
  • siosw