Files
pse.dev/content/projects/semaphore.md
Kalidou Diagne 7b4084c4f7 feat: add basic tests (#542)
* feat: add basic tests
2025-08-11 12:36:12 +02:00

4.6 KiB

id, name, image, section, projectStatus, category, tldr, license, tags, links, extraLinks
id name image section projectStatus category tldr license tags links extraLinks
semaphore Semaphore semaphore.webp pse active devtools A zero-knowledge protocol for anonymous interactions. MIT
keywords themes types builtWith
Anonymity/privacy
Social
Identity
Transaction privacy
Voting/governance
Reputation
Education
Scaling
Key management
Other (group membership)
build
Legos/dev tools
Lego sets/toolkits
Infrastructure/protocol
zk-kit
circom
snarkjs
github website telegram twitter
https://github.com/semaphore-protocol https://semaphore.pse.dev/ https://semaphore.pse.dev/telegram https://semaphore.pse.dev/x
play buildWith learn
label url
Semaphore Demo https://demo.semaphore.pse.dev/
label url
Semaphore CLI (Getting Started) https://docs.semaphore.pse.dev/getting-started
label url
Semaphore JS libraries https://docs.semaphore.pse.dev/guides/identities
label url
Semaphore Boilerplate https://github.com/semaphore-protocol/boilerplate
label url
Semaphore Website https://semaphore.pse.dev
label url
Semaphore Documentation https://docs.semaphore.pse.dev
label url
Semaphore Board https://github.com/orgs/semaphore-protocol/projects/10/views/1

Overview

Semaphore is a generic privacy layer. Leveraging zero-knowledge technology, users can prove their membership in groups and send messages (extending from votes to endorsements) off-chain or across EVM-compatible blockchains, all without revealing their personal identity. Use cases include private voting, whistleblowing, anonymous DAOs, and mixers.

Semaphore is designed to be a simple and generic privacy layer for decentralized applications (dApps). It encourages modular application design, allowing dApp developers to choose and customize the on-chain and off-chain components they need.

The core of the protocol is the circuit logic. In addition to circuits, Semaphore provides Solidity contracts and JavaScript libraries that allow developers to generate zero-knowledge proofs and verify them with minimal effort.

Features

With Semaphore, you can allow your users to do the following:

  1. Create a Semaphore identity
  2. Add their Semaphore identity to a group (i.e. Merkle tree)
  3. Send a verifiable, anonymous message (e.g. a vote or endorsement)

When a user broadcasts a message, Semaphore zero-knowledge proofs can ensure that the user has joined the group and hasn't already cast a message with a nullifier.

Ways to contribute

As a Semaphore contributor, you'll be able to claim a special GitPOAP per year 🏅