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.
LicenseOpen source (MIT/Apache likely); https://github.com/marmot-protocol/marmot; MDK at https://github.com/parres-hq/mdk
Dev Status 🔬 Beta
Dev Status DetailPre-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)
OriginsPrivacy / 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 LanguageN/A
Data FormatsMLS 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 EditingN/A
Rich Text Editing Not yet documented
Mobile SupportYes (MDK used in White Noise Flutter app — Android, iOS)
Web SupportPartial (marmot-ts enables browser/web implementation; marmots-web-chat demo)
Based OnMLS / 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 ArchitectureHybrid 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 NetworkApplication-wide (scoped to Marmot group instances; groups can span any Nostr relays; no global network topology required beyond Nostr relay access)
Content AddressingNo (messaging protocol; no content addressing)
Local-FirstYes (MLS group state managed locally; offline messages queued and delivered when relay connection restored)
E2EEYes (MLS RFC 9420 — forward secrecy, post-compromise security, group message E2EE; metadata protection hides communication patterns and group membership)
CRDTs LibN/A (sequential MLS ratchet provides forward secrecy; not a CRDT-based system)
Byzantine Fault ToleranceN/A (messaging protocol; BFT not applicable)
SignatureEd25519 (Nostr keypair for identity; MLS signing keys distinct from Nostr identity keys for security separation; DEFAULT_CIPHERSUITE: MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519)
PermissionsGroup-member-controlled (MLS group admin manages membership; Nostr keypair required for participation; no phone number or email required)
Semantic Web CompatibilityNo
Smart ContractNo
Protocol Stack PositionApplication layer (sits above Nostr relay transport; defines group messaging semantics, key management, and media handling on top of MLS + Nostr)
Asset / Value EmbeddingN/A (messaging protocol; no asset embedding)
Protocol Maturity / StandardizationPre-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.