You write it.
Your message exists as words in one place: your phone. The Morse core, written in Mesh and compiled into the app, does every bit of the cryptography right there.
Locked with a key used once.
You and @ada share a Double Ratchet session that turns out a fresh key for every message. ChaCha20-Poly1305 encrypts it, and the key is destroyed once it’s used.
Sealed to her phone, padded to a standard size.
The encrypted message goes inside a second seal (HPKE) that only @ada’s phone can open, together with who it’s from and which chat it belongs to. It’s padded to one of nine sizes, from 256 bytes to 64 KB. Each of her devices, and each of your other linked devices, gets its own copy.
Addressed, sealed again, and paid for.
The envelope, with her mailbox address on it, is sealed once more, this time to the delivery service’s key. Then your phone does a small proof of work, so sending has a cost without an account or ID attached to it.
The privacy edge passes it on.
The first server to touch it is the privacy edge, a Cloudflare deployment of its own. It sees your IP address and checks the work. It can’t open the seal, so it never learns whose mailbox this is.
Delivery opens the outer seal.
On the way in, the front door strips every header except the few the protocol needs, so no Mesh service gets your IP address, location or user agent. Delivery opens the outer seal and finds a mailbox address, an expiry and ciphertext. It can’t read a word of it, or tell who sent it.
Saved before anyone is told.
The envelope and its delivery job are committed to PostgreSQL in one transaction. After that commit, a lost wake-up can delay the message but not lose it. What’s stored is ciphertext, not a conversation.
Her phone gets a nudge.
If Morse is open on @ada’s phone, a WebSocket carries a single event: encrypted-wakeup. No content, no IDs. If it’s closed, a push notification does the same job (see Wake a phone).
She collects it.
Her phone asks for everything after the last envelope it saw, and signs the request with its device key. A mailbox address only lets people drop envelopes in. Taking them out needs that signature.
Opened, checked, saved, then acknowledged.
Her phone opens both seals, checks the message really came from you, and rejects anything tampered with, replayed or already seen. It saves the message to its encrypted history first, and only then acknowledges it, so delivery can delete its copy.