Module @semaphore-protocol/identity

Semaphore identity

A library to create Semaphore identities.

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

👥 Contributing   |   🤝 Code of conduct   |   🔎 Issues   |   🗣️ Chat & Support

This library provides a class that can be used to create identities compatible with the Semaphore circuits. Each identity contains an EdDSA private key, its public key, and the identity commitment, which is the Poseidon hash of the public key.

🛠 Install

npm or yarn

Install the @semaphore-protocol/identity package with npm:

npm i @semaphore-protocol/identity

or yarn:

yarn add @semaphore-protocol/identity

📜 Usage

For more information on the functions provided by @semaphore-protocol/identity, please refer to the TypeDoc documentation.

# new Identity(privateKey?: BigNumberish): Identity

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

// The identity will be generated randomly.
const { privateKey, publicKey, commitment } = new Identity()

// Alternatively, you can pass your private key.
const identity = new Identity("your-private-key")

# identity.signMessage(message: BigNumberish): Signature<string>

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

const message = "message"
const identity = new Identity()

const signature = identity.signMessage(message)

# Identity.verifySignature(message: BigNumberish, signature: Signature, publicKey: Point): boolean

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

const message = "message"
const identity = new Identity()

const signature = identity.signMessage("message", signature)

Identity.verifySignature(message, signature, identity.publicKey)

Index

Classes