# semaphore-protocol/semaphore

A zero-knowledge protocol for anonymous interactions.

Repository: https://github.com/semaphore-protocol/semaphore
Canonical: https://ross.abutalabs.com/products/semaphore-protocol-semaphore
Homepage: https://semaphore.pse.dev
Language: TypeScript
License: MIT
License Family: permissive
Topics: zero-knowledge, ethereum, zero-knowledge-proofs, zk-snarks, circom, solidity, semaphore, javascript, monorepo, typescript, proof-of-membership, hacktoberfest
Last push: 2026-07-08T17:43:36+00:00

## Health v2 (maintenance only)
Score: 93/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 91, release rhythm 92, longevity 100
- inputs: {"age_days": 2707, "days_push": 56, "days_rel": 56, "gap_med": 6.5, "n_releases_24m": 31}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1082, forks 297 (observed 2026-08-28T04:03:31.046416+00:00)

## What it is
Semaphore is a zero-knowledge protocol and toolkit for proving group membership anonymously, letting users cast signals like votes or endorsements without revealing their identity. It ships as off-chain JavaScript/TypeScript libraries, on-chain Solidity verifier contracts, Circom circuits, and a CLI for scaffolding projects.

## Use cases
- build anonymous voting on Ethereum
- prove group membership without revealing identity
- prevent double-signaling with nullifiers
- create anonymous feedback or endorsement systems
- manage privacy-preserving Merkle tree groups
- generate and verify zk-SNARK proofs in a dApp

## When to choose
- you need anonymous group signals like private voting or whistleblowing on Ethereum
- you want a well-documented, modular zk protocol with libraries, contracts, and a trusted setup already done
- you are building a dApp that needs a generic privacy layer with double-signaling protection

## When to avoid
- you need general-purpose zk-SNARK tooling rather than group-membership signaling
- your application is not Ethereum/EVM-based
- you need fully non-anonymous authentication or standard identity management

## Facets
- artifact type: library
- maturity: active
- function: cryptography, sdk, cli, web-framework
- domain: blockchain, privacy, security, developer-tools
- platform: -
- tags: zero-knowledge, zk-snarks, anonymous-voting, merkle-tree, proof-of-membership, monorepo, ethereum, privacy-preserving, typescript, javascript, nodejs, solidity, circom

## Member repositories
- semaphore-protocol/semaphore (main) score 93

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:31.046416+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:51:17.751727+00:00, confidence not recorded.
  - readme: https://github.com/semaphore-protocol/semaphore (fetched 2026-08-28T04:03:31.046416+00:00, sha d562781e3609)
  - homepage: https://semaphore.pse.dev (fetched 2026-08-29T12:53:27.869901+00:00, sha 7b2c9635d872)
  - site_page: https://docs.semaphore.pse.dev (fetched 2026-08-29T12:53:27.880440+00:00, sha 763c8c8eb1d0)
  - site_page: https://docs.semaphore.pse.dev/getting-started (fetched 2026-08-29T12:53:27.882936+00:00, sha 31ce16ed71b1)
- Data as of 2026-08-30T08:39:29.467469+00:00.
