I'm excited to announce the launch of Marmot, a new protocol for secure, decentralized group messaging, along with MDK (Marmot Development Kit), a reference implementation designed to make building with Marmot straightforward and reliable.
What is Marmot?
Marmot combines proven cryptographic standards with Nostr's decentralized network to deliver truly private messaging without centralized servers or requiring your phone number or email. It protects both your message content and metadata—meaning it hides who you're talking to, not just what you're saying.
Marmot has the security of Signal with the censorship-resistance and data portability of Nostr.
Key features:
-
End-to-end encryption: Messaging Layer Security (MLS) based end-to-end encryption with forward secrecy & post-compromise security
-
Upgradable cryptography: Evolve your groups security without breaking existing conversations
-
Metadata protection: No one can see your social graph or who you communicate with
-
Decentralized, commodity infrastructure: No central servers to target, easily change your group's relays whenever you want
-
Scalable group messaging: Works for small teams or large communities
-
Identity freedom: No phone numbers or email addresses required
From NIP-EE to Marmot
Marmot is an evolution of NIP-EE. As we've built White Noise, our secure messaging app, we realized the specification needed room to grow beyond what a single NIP could accommodate.
Why expand beyond a NIP?
While basic messaging functionality is fairly compact, we wanted to accommodate all the things that we've come to expect from our secure messaging apps. These include encrypted media, delivery receipts, multi-device support, encrypted backups, and advanced group management. These don't fit neatly into a single specification. By creating a dedicated protocol, we can:
-
Add new specifications over time for different features
-
Make it clear what's required versus optional for implementation interoperability
-
Provide comprehensive documentation that makes building fully-featured secure messaging straightforward
Introducing MDK: Marmot Development Kit
Alongside Marmot, we're also launching MDK, the reference implementation of Marmot written in Rust, as its own standalone project.
Why a separate library?
MDK began in rust-nostr, which was an excellent starting point. However, as we expanded functionality and refined the implementation, it became clear the project deserved its own identity. Following the model of other well-known rust development kits in the Bitcoin, Lightning, and Cashu ecosystems (BDK, LDK, CDK), we envision MDK as a carefully crafted library that will eventually include:
-
Language bindings for Swift, Kotlin, Python, and more
-
Comprehensive documentation and examples
-
Formal security audits
-
Battle-tested implementations used across multiple applications
MDK handles the complex cryptographic operations and protocol logic so developers can focus on building great user experiences.
We've also started work on a TypeScript implementation of Marmot, marmot-ts. This is still in early development, but we're excited to share it with the community.
Get Started
-
Protocol specification: github.com/parres-hq/marmot
-
marmot-ts: github.com/parres-hq/marmot-ts
-
White Noise: whitenoise.chat
Join the Community
We welcome contributions, feedback, and security analysis. Whether you're interested in building clients, improving specifications, or helping test across different implementations, there's a place for you in the Marmot ecosystem.
The future of private communication is decentralized. Onward and upward!
