marmot-protocol/whitenoise — Encrypted Nostr Messenger

- **Source:** https://github.com/marmot-protocol/whitenoise - **License:** AGPL-3.0 - **Language:** Flutter Dart, 282 lib files + Rust via flutter_rust_bridge

marmot-protocol/whitenoise — Encrypted Nostr Messenger

Metadata

  • Source: https://github.com/marmot-protocol/whitenoise
  • License: AGPL-3.0
  • Language: Flutter (Dart, 282 lib files) + Rust (via flutter_rust_bridge)
  • Size: 24MB
  • Files: 1,090
  • Platforms: Android, iOS (supported); macOS, Windows, Linux, Web (planned)

Purpose

Private, decentralized messenger built on Nostr using Marmot protocol for MLS group encryption. Identity based on keypairs. Phone and email play no role.

Key Features

  • MLS group messaging: Messaging Layer Security for group chats
  • Forward secrecy: Past messages safe even if keys compromised
  • Post-compromise security: Future messages safe after key rotation
  • Keypair identity: Accounts are keypairs (no phone/email)
  • Decentralized transport: Messages route through Nostr relays
  • Serverless: Any relay can carry messages
  • External signer support: Amber, NIP-55 signers
  • Media: Images, video with blurhash previews; encrypted at rest
  • Search: Full-text search across all groups
  • Multi-account: Encrypted local storage, automatic migration
  • Open source: AGPL-3.0

Architecture

Stack

Layer Technology
UI Flutter (>=3.41.4)
Core Rust (whitenoise-rs)
FFI flutter_rust_bridge
Protocol Marmot (MLS over Nostr)

Source Structure

whitenoise/
  lib/
    constants/           — Nostr event kinds, etc.
    services/            — Message, profile, notification, push services
    integrations/        — Discord bot, etc.
    ui/                  — Flutter widgets
  android/               — Android platform
  ios/                   — iOS platform
  linux/                 — Linux platform
  macos/                 — macOS platform (planned)
  windows/               — Windows platform (planned)
  test/                  — 238 test files

What Makes It Different

vs Signal

  • No phone number required
  • Decentralized (no central server)
  • Open source (AGPL)
  • Nostr-based (censorship resistant)

vs Standard Nostr DMs

  • MLS encryption (not just NIP-04 ECIES)
  • Group chat support
  • Forward secrecy
  • Post-compromise security

vs Other Nostr Clients

  • Group messaging (not just 1:1)
  • MLS (not just encryption at rest)
  • Media support with blurhash
  • Multi-account

Relevance to Kapnet

As Encrypted Workspace Layer

White Noise provides the encrypted group messaging layer for Kapnet:

  • Each Kapnet room = White Noise group
  • MLS encryption = workspace encryption
  • Group membership = workspace access
  • Nostr transport = workspace communication

As Control Surface

Phone running White Noise → agentnoise bridge → local agents:

  • Operator sends command via White Noise
  • agentnoise receives encrypted message
  • Agent processes command
  • Response sent back via White Noise

Integration Points

  1. Room creation: Kapnet room → White Noise group
  2. Access control: Group membership = KOR scope
  3. Encrypted TXXMs: TXXM payload encrypted via MLS
  4. Media sharing: Files attached to TXXMs via White Noise

License Implications (AGPL-3.0)

If we modify White Noise and serve it as a service:

  • Must share source code with all users
  • Must include original license and copyright
  • Must state changes made
  • Compatible with Kapnet’s open-source approach

Action Items

  1. Read whitenoise-rs core library
  2. Study Marmot protocol for MLS over Nostr
  3. Evaluate forking for Kapnet room integration
  4. Design TXXM-over-MLS protocol
  5. Plan for macOS deployment

Write a comment
No comments yet.