The differences that matter
What's built.
What's next.
Three of these are in the app today. Six are designed, specified, or
half-built, and say so on the tag — a feature grid that blurs
those two is how every other privacy page oversells itself. Two of
them used to sit in the top group on this very page until we checked the
source. The full order of work is on the roadmap.
01
in the app
Media that arrives as bytes
Photos and video are encrypted on your phone with a one-off key, and that key is sealed to the recipient. What lands in our storage bucket is a file we cannot open — verified by a live end-to-end test, not by assertion.
upload · ciphertext + wrapped key
our disk · a viewable image
02
in the app
Gone means gone from disk
Set a timer and a sweeper on the server deletes the row every sixty seconds — not a client-side trick that hides the message while the bytes quietly persist. The copy on your phone and the copy on ours both stop existing.
server row · deleted
hidden in the UI, kept on disk
03
in the app
A number nobody sees
Signing up needs a number and an SMS code — we're not going to pretend otherwise. What's different is afterwards: no other user is ever shown it. It isn't in your profile, it isn't in the API response your contacts get, and people reach you at an @username. The gap we still have to close is search — see card 06.
@you · how people find you
+63 ··· ···· · never shown to anyone
04
next
Encrypted reactions
Reactions work today, but the emoji is stored on our server in the clear — we can see that you sent a skull. Sealing the emoji itself is the fix, and until it ships this card sits on this side of the line. This page listed it as done for a while. It wasn't.
❤️💀🔥
→ a7f2…
05
next
Safety-number verification
The fingerprint is computed correctly from both public keys in the crypto layer. The screen that shows it to you still renders a placeholder, so it cannot yet catch us handing you the wrong key — which makes it the most important unfinished thing here.
crypto layer · real fingerprint
the screen · still a placeholder
06
next
Unsearchable by number
Right now, someone who already knows your full number can resolve it to your account. It's a deliberate limit — no short prefixes, so it isn't an enumeration oracle — but it isn't the same as "unfindable". Hashed lookup and an off-by-default switch are the fix.
today · full number resolves
next · hashed, and off by default
07
next
Forward secrecy
Rotating message keys, so one compromised device can't unlock your history. Today it's one long-term key per pair of people — the weakness in our own threat model, and the next thing we build.
one key, forever
k1 → k2 → k3 → k4
08
next
Panic & decoy
A second passcode that opens a harmless-looking inbox. Forced to unlock your phone at a border or a checkpoint? You enter the decoy, and your real chats aren't there to find. The account can already hold a second passcode; nothing is wired to it yet.
···· → your chats
···· → a boring inbox
09
later
Sealed messages, edits, voice notes
Blur-until-tapped with the flag inside the envelope; a re-encrypting edit window; sixty-second encrypted voice notes. All three are designed and none of them are built — there is no microphone permission in the app at all, which is the simplest way to prove it.
✨ tap to reveal
edited · 0:14 voice note
10
later
Channels & bigger groups
Group chats already work — the key is sealed separately to each member, so the server never holds an openable copy. What's missing is broadcast channels, and key distribution that stays honest at scale as members come and go.
4 members · 4 sealed copies
one shared server key
11
later
Voice & video calls
End-to-end encrypted calling, one-to-one and in groups. Calls are a different problem to messages — real-time key agreement, and far more metadata to spill — so we'd rather ship them late than ship them leaky.
e2e · one-to-one
e2e · group
12
exploring
Multi-device
Your account on a laptop as well as your phone, without handing us your keys. Every honest way to do this is hard; the dishonest way is an escrow we could be compelled to open, and that one isn't on the table.
your devices · hold the keys
our server · holds a copy