RLN (Rate-Limiting Nullifier)

Identity Protocol

A zero-knowledge gadget for spam prevention in anonymous environments. In an application where users are anonymous, nothing stops one user from sending unlimited messages, and nobody can be removed because nobody can be identified. RLN lets a member prove, in zero knowledge, that they belong to a registered group and are within a rate limit; if they exceed it, the extra proof reveals enough of their secret (through Shamir's Secret Sharing) for others to recover it and remove them, optionally taking a stake. It works in three phases: registration, interaction and withdrawal or slashing. It is described as part of Privacy & Scaling Explorations (PSE), a team supported by the Ethereum Foundation, and implementations are used as the spam-protection layer for messaging protocols .

Foundation

Details

License Permissive: zerokit is Apache-2.0; the RLN organisation's circuits and contracts carry licences per repository, and the V3 repository states none. https://github.com/Rate-Limiting-Nullifier; https://github.com/vacp2p/zerokit
Dev Status 🔬 Beta
Owner Privacy & Scaling Explorations (PSE), a team supported by the Ethereum Foundation; related implementation work (zerokit) is published by Vac, the research group behind Waku
Governing Body Privacy & Scaling Explorations (PSE) team, supported by the Ethereum Foundation; no formal governance body is described
Country Not stated by the project.
Start Year 2022
Stack Circom, halo2 and Noir circuits (separate repositories in the RLN organisation); Poseidon hashing for identity commitments; Shamir's Secret Sharing; Solidity registry contract; Rust (zerokit), JavaScript (rlnjs) and CLI tooling
Funding Supported by the Ethereum Foundation through the PSE team
Funding - List
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.

Topology view: RLN (Rate-Limiting Nullifier)This tool in the centre and the things it is directly related to. Each line names the kind of relationship.RLN(Rate-Limit…Semaphore (Built on)SemaphoreEthereum Foundation (Funded by)EthereumFoundation
  • Semaphore (Tool): Built on
  • Ethereum Foundation (Organization): Funded by

Open in Graph Explorer

Use Case Domains

Affordances

Proof of humanity Contextual disclosure

Identity Protocol Attributes

Origins Spam and sybil resistance for anonymous messaging and voting without revealing identity: replace identity-based moderation with a cryptographic rate limit enforced by the threat of exposure and slashing
Database N/A
Query Language N/A
Data Formats Identity commitments in a Merkle tree; zero-knowledge proofs with public outputs including a nullifier and a Shamir share; Solidity registry contract interface
Mobile Support Library-level: Rust (zerokit) can be embedded in native and mobile applications; no application
Web Support Library-level: JavaScript libraries (rlnjs) and WebAssembly builds
Native Apps Library-level only
Terms Free and open source; individual repositories carry their own licences
Funding - List
Funds Not stated by the project.
Based On Semaphore-style anonymous group membership (V3 is built on Semaphore V4 features), Shamir's Secret Sharing and zero-knowledge proofs
Permissions Registry rules decide who may register; the rate limit decides how often each member may act
Authentication & Identity Members register an identity commitment (the Poseidon hash of a secret key) and prove membership in zero knowledge; no real-world identity is involved
Storage Model A registry (an on-chain contract or application-managed tree) holds identity commitments; proofs are carried in the application's messages
Interoperability A gadget that applications and messaging protocols integrate; the documentation lists a smart-contract design, circuits in several proving systems and implementations in Rust, JavaScript and CLI form
Data Portability Identities and proofs depend on the registry the application uses; they are not portable between applications by default
Governance & Decision Making Specification and implementations are developed in the open by the PSE team and contributors; no decision process is described
Protocol Maturity / Standardization A formal specification exists in the RLN documentation, with version 3 in development; no standards-body involvement; many repositories inactive since 2023-2024
Identity Standards No W3C DID or Verifiable Credentials mapping
DID Methods Supported N/A
Key Management Each member holds a secret key; exceeding the rate limit exposes it by design, after which it can be used to slash the member's stake
Credential Types Anonymous membership proofs with a rate-limit nullifier; not credentials issued by a third party
Verification Method A verifier checks the zero-knowledge proof against the registry's Merkle root, checks the nullifier for reuse within the epoch, and can recover the secret if two messages share an epoch
Privacy Features Anonymous membership and unlinkable messages within the limit; exceeding the limit deliberately reveals the member's secret
Authentication Methods Zero-knowledge proof of registered membership attached to each message
Revocation Mechanism Slashing: anyone who recovers a spammer's secret can remove the member from the registry and, where a stake is used, claim it; withdrawal is voluntary exit
Agent Types Supported Individual anonymous users of applications that integrate it
Wallet/Client Types Libraries (Rust, JavaScript) and CLI tooling; no wallet
Recovery Mechanisms Not stated by the project.
Compliance / Regulations Not stated by the project.
Credential Exchange Protocols None: proofs are attached to the application's own messages
Trust Framework Cryptographic proofs against a registry root, with economic slashing as deterrent; trust in the registry's admission rules
Cost Model Free to use; registration may require a stake and on-chain registration fees depending on the deployment
Censorship Resistance Moderate: anyone can verify proofs, but registry control determines who may participate

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.

Built on
Funded by
  • Ethereum Foundation