encdm

Messaging that never asks for your phone number.

You pick a handle, like bryan.42. Your friends add you by it. Nobody hands over a phone number, an email address, or a name to anyone — including the server in the middle.

The cryptography is Signal's own library, not a home-made substitute: post-quantum key agreement, the Double Ratchet, and sealed sender. What is different is identity. Signal is built around a phone number. encdm is built around a handle you invent, which is the part of ICQ worth bringing back.

How it works

A handle, not a number

A nickname and a number: bryan.42. Nobody can hold a bare nickname, so nobody can pose as "bryan". The relay stores only a cryptographic commitment to your handle, so there is no directory to scrape.

Invite only

You join because someone already here gave you an invite. No phone number means no phone bill to keep spammers out, so the social graph does that job instead.

Safety numbers

Every new contact starts marked unverified. Compare a 60-digit safety number with them in person or on a call you already trust. That comparison is what proves the server did not slip its own key in between you.

A recovery phrase

Twenty-four words, shown once when you sign up. They rebuild your account on a new device, with the same identity your contacts already verified. Lose them and the account is gone — there is no reset link, because there is nobody to ask.

What the server can see

Every messenger has a server, and being vague about what it learns is how honest software turns into marketing. Here is the whole list.

Nothing here defeats an adversary watching the whole internet at once and correlating timing. No messenger does. If that is your threat model, plan around it rather than trusting any product's front page — including this one.

Where it stands

Early — not audited

This is a working system built in the open, not a finished product. Judge it accordingly, and do not bet anyone's safety on it yet.

Getting in

Ask someone who already uses it for an invite code. That is the only way in, by design. An invite is single-use and expires in a week.

The app is not on the App Store and probably never will be: it is licensed under the AGPL, which Apple's terms have long conflicted with. Expect TestFlight or a build you make yourself. There is a terminal client for macOS and Linux too.