Home / Privacy / Contact discovery

How Signal Finds Your Contacts Without Reading Your Address Book

Published: October 7, 2026 · Updated: October 8, 2026

Signal needs to answer one question: which people in your address book already use Signal? To answer it, your phone scrambles every number with one-way cryptography before any comparison happens, then runs a private matching process against Signal's list of registered numbers. The server learns which scrambled numbers match real accounts. That much is unavoidable, but it never sees your contact names, nicknames, or who matters to whom. Your address book never leaves your phone in readable form.

Download the official Signal APK

from Signal's official site — file hosted by Signal, not by us

An address book turning into scrambled code, then into checkmarks: illustrating that only matches, not names, leave the phone

Why contact discovery exists at all

Messaging needs a directory. When you open Signal and look at your contacts, the app has to answer a simple question for each number: is this person registered? Without that answer, you'd have to guess who uses Signal and invite everyone one by one: the way messaging worked in the bad old days.

The lazy way to answer the question is to upload the whole address book to the server in readable form and let the server do the matching. Plenty of apps have done exactly that, and it's why address books became one of the most harvested datasets in mobile. Signal's design goal is the opposite: get the answer (who uses Signal) while the server learns as little as possible about your address book.

The process, in plain steps

  1. You grant contacts permission (optional)

    Discovery only runs if you allow Signal to read your contacts. Declining is allowed. You just add people manually instead. More on that below.

  2. Your phone scrambles each number

    Before anything leaves your phone, each phone number is run through one-way cryptography: hashing. The result looks like random noise, and it can't be reversed to recover the original number. Your names, labels, and notes aren't even part of this step: only the numbers get scrambled. Think of it like sealing each number in an envelope that can be compared but never opened.

  3. A private comparison runs on Signal's hardware

    The scrambled numbers are compared against Signal's own list of registered numbers using a cryptographic technique called private set intersection. The name is technical, but the idea is simple: the comparison is designed so the only thing revealed is which numbers match. Neither side dumps its full list on the table. Your phone never sends its scrambled list in the clear for the server to keep, and the server never sends its user list to your phone.

  4. Only the matches come back

    Your phone learns which contacts are on Signal and marks them in your contact list. Your contact names never left your phone, so there's nothing for the server to attach the matches to. It sees scrambled numbers, not names like "Mom" or "Work (do not answer)".

Steps of private contact discovery: hash contacts, send hashes, private matching, see matches
Your address book never leaves the phone in readable form.

Contrast this with the old, lazy approach some apps used: uploading the entire address book (names, numbers, emails, notes) to company servers in readable form, where it could be stored, mined, and leaked. Signal's discovery exists precisely to avoid building that database. The question "who uses Signal?" gets answered, and the raw material of your social life never becomes a server-side asset.

What each side actually learns

WhoLearnsDoes NOT learn
Signal's serverWhich of the scrambled numbers you checked are registered Signal accountsYour contact names, nicknames, labels, notes, or how people relate to you
Your phoneWhich of your contacts use SignalN/A
Anyone elseNothing. The comparison happens between your phone and Signal's hardware onlyN/A
Comparison of what you learn versus what the server learns in contact discovery
Both sides learn the minimum needed to do the job.

The key honest point: the server must learn which numbers match. There is no way to tell you "these 12 contacts use Signal" without the matching step knowing which 12 they are. The privacy engineering isn't about hiding the matches. It's about making sure the matches are all the server learns. No names. No relationships. No social graph.

The honest caveats

Discovery works both ways. If your number sits in someone else's address book and they've granted contacts permission, you can show up in their contact list as a Signal user. Your privacy settings decide how much that reveals. See the opt-out section below.

A lookup is still a lookup. The server necessarily sees that you ran a discovery check over a set of scrambled numbers. The cryptography keeps the contents private; it doesn't hide the fact that the question was asked.

Your number is still the account. Registration uses a phone number today, and discovery is built around numbers. Usernames have changed how much that matters in daily use. You can now be messaged through a username while keeping your number hidden, but the number remains the underlying identifier. Our usernames privacy guide explains the split between the number-as-credential and the username-as-handle.

Discovery lookups repeat. Your phone re-runs discovery periodically: contacts change, people join Signal. Each run is the same privacy-preserving comparison, but it's worth knowing discovery isn't a one-time event; it's ongoing maintenance of your contact list.

Turning discovery down: your options

Revoke permission. Granted contacts access during setup and regretting it? Turn it off in your phone's system settings (Apps > Signal > Permissions > Contacts). Signal keeps working. Your existing chats are untouched, but it stops refreshing which contacts use Signal, and newly added contacts won't be auto-detected. Revoking stops future lookups; it does not erase the matches already computed. But remember what those matches were: scrambled numbers that matched, with no names attached. There is no address book on the server to delete, because one was never uploaded.

Opt out entirely. If you deny Signal access to your contacts from the start, the app works fully. You just add people by typing their number or username yourself. That is the real opt-out: no permission, no discovery lookups at all.

Limit who finds you. For the other direction (who can discover you), check your number visibility settings: who can see your number, and who can find you by it. Tightening these means fewer strangers can connect your number to your Signal presence. The hide-your-number guide walks through every setting, and who can find you by number explains the discovery controls from the other side.

Frequently asked questions

Does Signal upload my address book?

No. Not in readable form. Your phone scrambles each number with one-way cryptography before any comparison, and the private matching process reveals only which numbers match registered accounts. Names, labels, and notes never leave your phone.

Can Signal see my contact names?

No. Names are never part of the discovery process. Only phone numbers are scrambled and compared. The server sees scrambled numbers that matched, with no names attached to them.

Can I use Signal without giving contacts permission?

Yes. Declining contacts permission is fully supported. You just add people manually by typing their phone number or username. Everything else in the app works normally.

Can people find me if I never share my number?

If your number is in someone's address book, discovery can surface you to them. Sharing a username instead of your number, and tightening who can find you by number, shrinks this significantly.

Why does Signal need my number at all, then?

The number is the account identifier used for registration and sign-in. Usernames now handle the day-to-day identity part, but the number is still required to create the account today.

If I revoke contacts permission, is my data deleted from Signal?

There is no address book on Signal's servers to delete. One was never uploaded. Revoking permission stops future discovery lookups; the server only ever saw scrambled numbers that matched, with no names attached.

Does Signal tell my contacts that I joined?

Signal doesn't announce your registration to your contacts. But if someone with your number in their address book runs contact discovery, you can appear in their Signal contact list as a registered user.

Practical setup: discovery without oversharing

The bigger picture: contact discovery is one of the places Signal's design is most careful, precisely because address books are so sensitive. No readable upload, no stored social graph, no names on the server. Just a cryptographic yes-or-no per number. How little the server retains overall is covered in our metadata guide.

Keep reading

Download the official Signal APK

from Signal's official site — file hosted by Signal, not by us