A zero-knowledge protocol for anonymous interactions: a user proves they are a member of a group, and sends a signal such as a vote or endorsement, without revealing which member they are. Group membership is a Merkle tree of identity commitments; a Semaphore proof shows knowledge of a leaf in the tree and ties the signal to a nullifier that stops the same member from signalling twice in the same context. Semaphore is described as a generic privacy layer, with circuits, Solidity contracts for on-chain verification, and JavaScript libraries for creating and verifying proofs off-chain. It is developed by Privacy & Scaling Explorations, a team supported by the Ethereum Foundation, and Semaphore V4 has been released .
OwnerPrivacy & Scaling Explorations (PSE), a team supported by the Ethereum Foundation; the repository is under the semaphore-protocol organisation, with one contributor responsible for about two thirds of the latest commits
Governing BodyPrivacy & Scaling Explorations (PSE), supported by the Ethereum Foundation; no formal governance document was found in the cited sources
Country Not stated by the project.
Start Year 2019
StackCircom circuits (built with circomkit); Solidity contracts for on-chain verification and groups on EVM chains; JavaScript packages for identity, group and proof; Semaphore V4 uses EdDSA identities and LeanIMT groups, as the RLN V3 README describes
FundingSupported by the Ethereum Foundation through the PSE team
Last Investigated Oct 29, 2026
Topology view
This tool in the centre and the things it is directly related to. Each line names the kind of relationship.
OriginsAnonymous signalling on Ethereum: give applications a generic way to prove group membership and send messages (votes, endorsements, signals) without revealing identity, while preventing double use
Database N/A
Query Language N/A
Data FormatsIdentity commitments in a Merkle tree of group members; zero-knowledge proofs with public signals; Solidity contracts for on-chain verification
Mobile SupportLibrary-level: JavaScript packages and proofs generated in web or Node runtimes
Web SupportYes: browser-run proof generation and a demo on the project site
Native AppsLibrary-level only
TermsFree and open source (MIT)
Funds Not stated by the project.
Based OnZero-knowledge circuits written in Circom, Merkle-tree group membership and nullifiers; V4 introduced EdDSA identities and LeanIMT groups, as the RLN V3 README notes
PermissionsGroup administrators decide who is a member; members decide when to signal; verifiers decide which roots to accept
Authentication & IdentityA Semaphore identity is a private key with a public commitment inserted into a group; a proof shows knowledge of a group member's secret without disclosing it
Storage ModelGroup state lives on-chain in Semaphore's Solidity contracts or off-chain in an application-managed tree; proofs are portable
InteroperabilityWorks across EVM-compatible blockchains and off-chain; used as a base for other projects (the site lists several, and RLN V3 is built on its V4 features)
Data PortabilityIdentities and group membership proofs can be reused across applications that share the same group; group data is public on a chain or held by the application
Governance & Decision MakingDeveloped by the PSE team in the open repository; ideas are invited through the PSE programme and issues
Protocol Maturity / StandardizationVersion 4 released and iterated (v4.14.5); no standards-body involvement; audits and the trusted-setup details are not covered by the cited sources
Identity StandardsNo W3C DID or Verifiable Credentials mapping; its own zero-knowledge identity and group model
DID Methods Supported N/A
Key ManagementEach user holds a private key for the identity; losing it loses membership (no recovery described); groups are managed by an admin or contract
Credential TypesGroup-membership proofs and signals bound to a nullifier; not issuer-signed credentials
Verification MethodA verifier checks the zero-knowledge proof against the group's Merkle root, on-chain through a contract or off-chain in a library
Privacy FeaturesAnonymous membership (the proof does not reveal which member), unlinkable signals across scopes, and nullifiers that prevent double-signalling within a scope
Authentication MethodsZero-knowledge proof of group membership tied to a message and scope
Revocation MechanismGroup administrators remove a member's commitment from the tree; proofs against older roots depend on the application's root-validity policy
Agent Types SupportedIndividual users (identities) and applications that manage groups; the site describes use for voting, endorsements and anonymous communication
Wallet/Client TypesLibraries and applications; the site lists projects built on it, including identity and ticketing tools
Recovery Mechanisms Not stated by the project.
Compliance / Regulations Not stated by the project.
Credential Exchange ProtocolsNone defined: proofs are submitted to a contract or verifier by the application
Trust FrameworkCryptographic: the proof is checked against the group's root; trust in the group's administrator for who is admitted, and in the circuit's setup
Cost ModelFree to use; on-chain verification costs gas on the chosen chain
Censorship ResistanceModerate: proofs are verifiable by anyone, but group membership is controlled by whoever manages the tree
Relationships
How this tool connects to other tools and organizations, from relationships reviewed by the OpenHaven data steward. They describe how projects connect, not how good they are.