Marmot Protocol

P2P Protocol

A messaging protocol specification combining the MLS Protocol (RFC 9420 — Messaging Layer Security) with Nostr's decentralized identity and relay network to enable efficient, private E2EE group messaging without centralized servers or legacy identity systems. Marmot extends NIP-EE (the Nostr MLS integration spec) with a broader set of specifications including media handling (MIP-04), group metadata standardization, and key package distribution. Provides forward secrecy and post-compromise security at the group messaging level, protecting both message content and metadata (communication patterns and group membership hidden). Multiple independent implementations exist: MDK (Rust library — mdk-core v0.7.1), marmot-ts (TypeScript/npm), mdk-swift (Swift), mdk-python (Python). White Noise is the primary reference application.

Community

Details

License Open source (MIT/Apache likely); https://github.com/marmot-protocol/marmot; MDK at https://github.com/parres-hq/mdk
Dev Status 🔬 Beta
Dev Status Detail Pre-specification / WIP (spec under active development; breaking changes possible; no formal security audit yet; MDK v0.7.1 released; marmot-ts available on npm; White Noise ships on it in production)
Owner Parres / marmot-protocol GitHub org (parres-hq); community-developed specification
Governing Body None (community-developed specification under the parres-hq organization; no formal governing body)
Country USA (AOS affiliation)
Start Year 2024
Stack Rust (mdk-core — primary implementation, OpenMLS-based); TypeScript (marmot-ts — npm package); Swift (mdk-swift); Python (mdk-python); Flutter (White Noise reference app)
Funding Community / AOS / OpenSats / HRF (via White Noise funding; protocol spec itself community-funded)
Last Investigated Jul 1, 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: Marmot ProtocolThis tool in the centre and the things it is directly related to. Each line names the kind of relationship.MarmotProtocolNostr (Based on, Speaks protocol)NostrOpenMLS (Based on)OpenMLSWhite Noise (Based on, Hosts)White Noise

Open in Graph Explorer

Affordances

End-to-end encrypted

P2P Protocol Attributes

Origins Privacy / Secure group messaging (motivated by limitations of Signal centralized infrastructure, NIP-04/17 lack of forward secrecy and group messaging; combines MLS cryptographic rigor with Nostr decentralization; designed to provide Signal-level security with censorship-resistant infrastructure)
Database Not yet documented
Query Language N/A
Data Formats MLS ciphertext (RFC 9420 encrypted group messages); Nostr events (NIP-compliant transport wrapper for MLS messages and key packages); MLS key packages (Ed25519 identity material published to Nostr relays); encrypted media (MIP-04); BLAKE3 or SHA256 content hashes
Collaborative Live Editing N/A
Rich Text Editing Not yet documented
Mobile Support Yes (MDK used in White Noise Flutter app — Android, iOS)
Web Support Partial (marmot-ts enables browser/web implementation; marmots-web-chat demo)
Native Apps Yes (via White Noise reference app — Android, iOS, Linux, macOS, Windows)
Terms Free / Open source
Funds Undisclosed
Based On MLS / RFC 9420 (cryptographic group messaging standard — OpenMLS Rust implementation); Nostr (Fed Pro — transport and identity layer); NIP-EE (Nostr MLS integration base specification extended by Marmot)
P2P Architecture Hybrid relay + local (Nostr relays transport MLS ciphertext and distribute key packages; MLS group state stored locally on each participant's device; no central server for message storage; relay network provides decentralized transport without compromising E2EE)
Overlay Network Application-wide (scoped to Marmot group instances; groups can span any Nostr relays; no global network topology required beyond Nostr relay access)
Content Addressing No (messaging protocol; no content addressing)
Local-First Yes (MLS group state managed locally; offline messages queued and delivered when relay connection restored)
E2EE Yes (MLS RFC 9420 — forward secrecy, post-compromise security, group message E2EE; metadata protection hides communication patterns and group membership)
CRDTs Lib N/A (sequential MLS ratchet provides forward secrecy; not a CRDT-based system)
Byzantine Fault Tolerance N/A (messaging protocol; BFT not applicable)
Signature Ed25519 (Nostr keypair for identity; MLS signing keys distinct from Nostr identity keys for security separation; DEFAULT_CIPHERSUITE: MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519)
Permissions Group-member-controlled (MLS group admin manages membership; Nostr keypair required for participation; no phone number or email required)
Semantic Web Compatibility No
Smart Contract No
Protocol Stack Position Application layer (sits above Nostr relay transport; defines group messaging semantics, key management, and media handling on top of MLS + Nostr)
Asset / Value Embedding N/A (messaging protocol; no asset embedding)
Protocol Maturity / Standardization Pre-specification / WIP (active spec development; breaking changes possible; no formal security audit; multiple implementations in Rust/TypeScript/Swift/Python; White Noise ships in production; NIP-EE base in Nostr protocol repo)

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.

Speaks protocol