Noise Protocol Framework

P2P Protocol

Cryptographic meta-framework for constructing secure two-party handshake and channel protocols based on Diffie-Hellman key exchange. Provides a pattern language for composing authenticated key establishment (AKE) protocols supporting mutual/optional authentication, identity hiding, forward secrecy, and zero round-trip encryption. Not a full protocol itself — a framework other protocols implement at the session/crypto layer. Widely adopted: WhatsApp, WireGuard, Lightning Network, I2P.

Community

Details

License Public domain specification; open source implementations in C, C#, Go, Haskell, Java, JavaScript, Python, Rust
Dev Status 🏁 Final
Dev Status Detail Stable / Mature — specification at revision 34 (2018); post-quantum extensions in development
Owner Trevor Perrin (independent cryptographer)
Governing Body None (single independent author, Trevor Perrin; specification stable since revision 34, 2018)
Country USA
Start Year 2014
Stack Language-agnostic specification; implementations in C, Rust, Go, JavaScript, Python, Haskell, Java
Funding None (independent research)
Last Investigated Jan 15, 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: Noise Protocol FrameworkThis tool in the centre and the things it is directly related to. Each line names the kind of relationship.NoiseProtocol Fr…Hyperswarm (Basis for)HyperswarmI2P (Basis for)I2PBitchat (Hosts)Bitchat

Open in Graph Explorer

Affordances

Contextual disclosure

P2P Protocol Attributes

Origins Reaction to complexity and error-proneness of hand-crafted AKE protocols; inspired by Signal Protocol and NaCl Cryptobox philosophy of simple, composable cryptographic primitives
Database N/A
Query Language N/A
Data Formats Binary (handshake message sequences); no defined application data format
Collaborative Live Editing No
Rich Text Editing No
Mobile Support Yes (via adopters: WireGuard mobile, WhatsApp mobile)
Web Support Yes (via adopters: WhatsApp web, Lightning web)
Native Apps Yes (via adopters)
Terms Public domain
Funds N/A
Based On Signal Protocol (design philosophy); NaCl Cryptobox; Diffie-Hellman key exchange
P2P Architecture Two-party session establishment — provides authenticated key establishment for any P2P or client-server architecture; does not define a network topology
Overlay Network N/A — session/handshake layer only
Content Addressing No
Local-First N/A — session-layer primitive
E2EE Yes — mutual authentication, identity hiding, forward secrecy, zero-RTT encryption
CRDTs Lib N/A
Byzantine Fault Tolerance N/A — no network-layer BFT; session security only
Signature Yes — ECDH-based static and ephemeral key exchange; ed25519 / X25519
Permissions Key-based (static public key as capability; PSK extension available for pre-shared key layer)
Semantic Web Compatibility No
Smart Contract No
Protocol Stack Position Session/crypto layer — operates below application protocols and above transport; provides authenticated key establishment for any P2P session
Asset / Value Embedding None — cryptographic session framework only; no value or asset transmission
Protocol Maturity / Standardization Mature / De Facto Standard — specification stable since revision 34 (2018); adopted by WhatsApp, WireGuard, Lightning Network, I2P; academic security proofs published; not submitted to formal standards body

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.

Basis for
Hosts