How to Get a Custom Bluesky Handle With Your Own Domain
By WhatsMyName Apps team · · 5 min read
Every Bluesky account starts with a handle like mia.bsky.social. You can swap that for a domain you own, so you show up as @mia.com or @mia.example.com. It looks cleaner, and it proves something: only the person who controls the domain can use it as a handle.
This guide walks through both official methods, the DNS record and the text file, and covers the problems people hit most often. Steps follow Bluesky's own domain handle tutorial and the AT Protocol handle specification, checked on October 14, 2026.
Before you start
- A Bluesky account. Bluesky's support pages say to sign up with a
.bsky.socialhandle first and switch to your domain afterwards. - A domain you control. Bluesky no longer sells domains itself: its old domain service has stopped taking new registrations. Buy one from any registrar. Our name checker shows which .com, .net, .org and other endings are still free for your name.
- Access to DNS settings or to your website's files. You only need one of the two.
- A short enough name. The Bluesky app allows up to 30 characters in total for a custom domain handle. The protocol allows much longer, but the app is stricter.
Handles follow normal domain rules: letters, digits and hyphens in each part, no hyphen at the start or end of a part, and no capitals that matter, because handles are stored in lowercase. Endings such as .local, .onion, .example and .invalid are not allowed.
Method 1: add a DNS TXT record
This is the method most people use, and it works for a whole domain or a subdomain.
- In the Bluesky app or on bsky.app, open Settings, then Account, then Handle.
- Choose I have my own domain and type the domain you want, for example
mia.com. - Stay on the DNS option. Bluesky shows a record to add:
- Host or name:
_atproto - Type:
TXT - Value:
did=did:plc:followed by your account's ID
- Host or name:
- Open your domain's DNS settings in another tab and add that record exactly. The DID is public information, so there is no harm in pasting it anywhere it needs to go.
- Wait a couple of minutes, go back to Bluesky and click Verify DNS Record.
- When it succeeds, confirm the change. Your profile now shows
@mia.com.
Using a subdomain
For a handle like mia.example.com, the record goes on the subdomain: the host becomes _atproto.mia instead of _atproto, with the same kind of value. This is how organizations give staff handles under one company domain, and how you can keep a personal site on the main domain while using a subdomain on Bluesky.
Method 2: serve a text file on your website
If you cannot edit DNS but you do control a website on the domain, use the file method.
- In the same Handle screen, pick the option for no DNS panel. Bluesky shows your DID.
- Create a plain text file that contains only the DID, such as
did:plc:abc123…, with nodid=prefix and nothing else in it. - Publish it at
https://mia.com/.well-known/atproto-did. The protocol expects a successful (2xx) answer over HTTPS with the content typetext/plain. - Back in Bluesky, click the button to verify the text file, then confirm.
Static site hosts sometimes skip folders that start with a dot, so check that the address opens in a browser and shows only the DID before you verify.
When verification fails
- Wait a little longer. DNS changes can take a while to spread. A few minutes is normal; give it longer before you change anything else.
- Check the host field. Many DNS panels add your domain to the host automatically. If you type
_atproto.mia.comthere, you may end up with_atproto.mia.com.mia.com. Enter just_atproto. - Keep one record. Only one
_atprotoTXT record should exist for a handle. If you set this up before for another account, delete the old record first. - Copy the whole value. The value starts with
did=did:plc:. A missing prefix, a space or quote marks added by hand can break it. - File method: make sure the file is reachable over HTTPS with a valid certificate, answers with a 2xx status, and contains nothing but the DID.
- Too many attempts. Bluesky's servers limit handle updates to 10 every five minutes and 50 a day per account. If you hit the limit, wait and try again.
What happens after you switch
Your account does not move or reset. Bluesky identifies accounts by a permanent DID, not by the handle, so followers, posts and likes stay where they are. Bluesky's tutorial says tags and mentions of your old .bsky.social handle still point to your account, and that the old handle stays reserved for you.
Keep the DNS record or the file in place for as long as you use the handle. Apps check the link between the domain and your DID, and if it stops resolving, your handle can show as invalid. The same goes for the domain itself: let it expire and you lose the handle. Set it to renew automatically.
You can switch back at any time from the same Handle screen by choosing a .bsky.social handle again.
Domain handles and blue checks
In April 2025 Bluesky started showing blue verification badges for authentic and notable accounts, and selected organizations can verify accounts too. Bluesky described domain handles as a separate layer of verification that still applies. A badge and a domain handle answer different questions: the badge says Bluesky or a trusted verifier vouches for the account, and the domain says who controls the name.
Check the name before you buy a domain
If you are buying a domain for this, check the matching handle everywhere at the same time. Our Bluesky handle checker tells you whether the .bsky.social version is taken, and the WhatsMyName Apps username search checks the same name on other sites, including a Bluesky check for full domain handles. For the wider picture of picking and claiming a handle on Bluesky, see Bluesky handle availability: how to check and claim yours.
WhatsMyName Apps is not affiliated with Bluesky. Bluesky is a trademark of its owner.
Check a username now. Free, no sign-up, 3,165 sites. Try the username search
Related in Social media
- Social media
Bluesky Handle Availability: How to Check and Claim Yours
How to tell if a Bluesky handle is really free, why some names look open but are not, and how to claim one, change it or use your own domain.
· 4 min read
- Social media
How to Find an Instagram Account by Username (and Check If It's Free)
Find an Instagram account from its username with the profile URL or in-app search, see what a private profile shows, and check if a handle is free.
· 6 min read
- Social media
Reddit Username Lookup: Find a User or Recover Your Old Account
How to look up a Reddit user by username, search Reddit for people, and get back into your own old account with Reddit's username recovery by email.
· 5 min read
More from the blog
- What Mr. Robot Gets Right About OSINT and Your Digital Footprint
- How to Search a Username on Your Phone (3,150+ Sites on Android)
- Best Username Search Apps for Your Phone: What to Look For
- Reserve Your Username Before You Launch: A Phone Checklist
- Find Forgotten Accounts Using Only Your Phone
- Sherlock vs Maigret vs WhatsMyName: Which Username OSINT Tool to Use
