Bluesky's Find Friends Contact Import

Boris December 17, 2025
Source

The Bluesky team added a privacy preserving, opt in "find friends" feature that imports your contacts.

There was an initial "Request for Comments" (RFC) on the technical, privacy preserving options of this design.

https://docs.bsky.app/blog/contact-import-rfc External Link • docs.bsky.app

The feature is available in the native mobile apps only, I believe, because of how this has to be done securely.

I've pasted in screenshots of the flow below on iOS. If anyone has Android screenshots, please share.

You may see this "new feature pop-up" advertising it when you get the updated app:

This leads you to first verify your phone number.

Screenshot

We need to verify your number before we can look for your friends. A verification code will be sent to this number.

(Phone number input)

How we use your number:
• Sent to our phone number verification provider Plivo
• Deleted by Plivo after verification
• Held by Bluesky for 7 days to prevent abuse, then deleted
• Stored as part of a secure code for matching with others
By continuing, you consent to this use. You may change your mind any time by visiting settings. (link: Learn more)

You'll get a text message you need to paste into a verification screen, and then it will move on with some more information.

Screenshot: Share your contacts to find friends.

See next text block for rest of text.

I'll include the text from the screenshot here, Bluesky is trying hard to explain this technical, privacy preserving technique.

Bluesky helps friends find each other by creating an encoded digital fingerprint, called a "hash", and then looking for matching hashes.

We apply the highest privacy standards, and never share or sell your contact information.

(the next text is at the bottom of the screen above a button that says "Find my friends" or "Cancel")

I consent to Bluesky using my contacts for mutual friend discovery and to retain hashed data for matching until l opt out.

This next part is the iOS contact picker. It prompts to either share some contacts or all. I've cropped this screen to just the bottom messaging.

Once imported, it shows a scrollable list of all the contacts, with an invite button next to them.

Oh look, I found myself! OK great, I can test this.

Hitting invite opens a new text message:

It says: "I'm on Bluesky as bmann.ca - come find me! https://bsky.app/download"

I did send it, and found that this probably needs some improvement.

You can see that bmann.ca is now highlighted, and iOS Messages turns it into a clickable http link.... which doesn't go to my bsky profile, but instead to my out of date landing page:

https://bmann.ca External Link • bmann.ca

I shared this with Alex, suggesting that bsky.app/profile/bmann.ca would be a better link to include.

Along with another request for Bluesky app user docs so I don't have to do screenshot essays 😜

This is a technically sound implementation, I'll re-link the Dev Blog RFC for those that want to dive into the details.

I have had several other discussions around private set intersection like this for related use cases today. Ping @kobi.bsky.social if you have some other thoughts on this.

Discussion in the ATmosphere

Loading comments...