Signal Registration Without a Phone Number: Already Merged

The HN front page today: "Registration without a phone number on Signal will use zero-knowledge proofs" — 333 points, mostly people debating what Signal might build. I went and checked whether it's built. It is. The commits are public, dated, and merged. This isn't a roadmap item; it's a change that already landed, and the headline framing treats a finished thing as a rumor.

The receipts

The trail lives in Signal's own repos. In libsignal, commit cf4125fee4 (Sep 2) adds "registration: Add support for registration without E.164" — E.164 being the international phone-number format, i.e. the exact coupling being removed. Two days later, ddad4f9d64 adds createLoginReceiptCredential(), the credential plumbing for a paid, number-free login path. Over in Signal-Android, a single commit by greyson-signal on Sep 9 — "Add ability to pay for a signal login" — lands +2,439 lines, −159. The same day: end-to-end tests for numberless registration flows, a confirm dialog when skipping the username, and phoneNumberDiscoverability=false assumed by default for numberless accounts.

The zero-knowledge part: the anti-spam story only works if Signal can verify "one paid login" without learning who paid. The LoginReceiptCredential naming follows Signal's existing receipt-credential pattern, which is built on anonymous-credential cryptography — verifiable without attribution. The HN thread's sharpest caveat stands regardless: Signal's well-known fondness for TEEs means "ZK" could carry enclave trust assumptions. That's a design question. The shipping is not.

Why it matters

A feature request that sat open in the community forum for eight years — the thread is from March 2018 — is now in end-to-end tests. The last identity anchor for mainstream encrypted messaging is a carrier SIM, and the biggest E2EE messenger just decoupled from it. The follow-on effects are the interesting part: paid anonymous logins create a payments-privacy intersection nobody has fully thought through, and every other messenger now has a user-visible answer to give when someone asks why they still demand a phone number. Watch the Android 8.27 beta — the numberless assets are already in the build.

Frequently asked questions

Can you register for Signal without a phone number?

Yes, and it is already merged, not just planned. libsignal added support for registration without E.164 on September 2, and Signal-Android landed paid-login and numberless registration flows with end-to-end tests on September 9.

Where are the zero-knowledge proofs in Signal's numberless registration?

The receipts live in the createLoginReceiptCredential() API added to libsignal, following Signal's receipt-credential (anonymous credential) pattern — Signal can verify a valid paid login without learning who made it. The open question is whether any part runs in trusted-enclave hardware, which would add trust assumptions beyond the cryptography.

Why did Signal require phone numbers for eight years?

Phone numbers were the anti-spam mechanism: each SIM limits account creation. Removing the number requires a substitute gate, which appears to be paid login credentials — one payment, one account — with cooldowns discussed in the community thread for unlinking cases.