Decentralized · Open Source · E2EE
Messaging with zero middlemen.
MNDO is a privacy-first messenger. No phone numbers, no central servers, and zero data collection. Powered by Nostr relays and the Signal Protocol.

WHY DECENTRALIZED
Don't trust. Verify.
No central server.

Messages route across a decentralized Nostr mesh. Any relay can drop; conversation continues.

No phone number.

Your identity is a local keypair generated in milliseconds. Nothing collected, nothing to leak.

Encrypted before it leaves. Encrypted where it lands.

Signal Double Ratchet in transit. AES-256 SQLCipher at rest. Relays only ever see ciphertext.

ARCHITECTURE
Four layers. One direction of dependency.
UI talks to State. State talks to Services. Services talk to Data. Nothing reaches upward, and nothing in the UI ever holds a key.
01UI
lib/ui/- Screens
- Widgets
- Theme
02State
lib/providers/- AuthProvider
- ChatProvider
- DiscoverProvider
03Services
lib/services/- NostrRelayService
- SignalMessagingService
- CryptoService
- SignalStore
04Data
lib/models/ · lib/repositories/ · lib/database/- ChatRepository (Drift)
- IdentityRepository (flutter_secure_storage)
- Models
BY THE NUMBERS
Facts that don't need adjectives.
Possible human-readable usernames (888 × 1,000 × 16⁶)
Scale relative to all humans estimated to have ever lived
AES key length across Signal Double Ratchet & SQLCipher
Central servers, phone numbers, or registration databases
Source code is part of the product.
MNDO's architecture is designed to be inspected, challenged, improved, and forked. Trust comes from verifiability—not a closed promise.
Ready when you are


