Short answer: open Settings → Account → Handle in Bluesky, choose “I have my own domain”, and add the TXT record it shows you (_atproto with the value did=did:plc:…) at your DNS provider. Tap verify, then update. Your posts, followers and following all stay put.
Below are both setup methods, how to give a whole team handles on one domain, and what changes when you switch.
On this page:
- The direct answer
- How domain handles work
- How to set it up with a DNS TXT record
- How to set it up without DNS access
- Subdomain handles for teams and families
- What happens to your old handle
- Is a domain handle a form of verification?
- FAQ
The Direct Answer
| Question | Answer |
|---|---|
| Can I use my own domain as my Bluesky handle? | Yes – any domain or subdomain you control |
| Does it cost anything on Bluesky's side? | No – you only pay for the domain itself |
| What do I need to add? | A TXT record named _atproto, or a file at /.well-known/atproto-did |
| Do I lose followers or posts? | No – they are tied to your DID, not your handle |
| Can I switch back later? | Yes – your previous .bsky.social handle is reserved for you |
| Is it the same as a blue check? | No – but it proves you control the domain |
How Domain Handles Work on Bluesky
Every Bluesky account has two names. The permanent one is a DID (decentralized identifier), something like did:plc:7a3k2…. It never changes, and everything you have ever posted, liked or followed is attached to it. The friendly name is your handle, and a handle is just a domain name that points at a DID.
yourname.bsky.social is a subdomain that Bluesky manages for you. When you switch to yourname.com, you take over that job yourself: you publish a small record on your domain that says “this domain belongs to this DID”, and your account's identity document says “my handle is this domain”. Apps check that both sides agree. If they do, the handle is shown. If they don't, the app shows Invalid Handle instead – see our Invalid Handle fix guide if that happens to you.
Because followers and posts hang off the DID, changing your handle is cheap. People who follow you keep following you, and old mentions still resolve to your account. Our ATProtocol federation guide goes deeper into DIDs and repositories.
How to Set Up a Custom Domain Handle with a DNS TXT Record
This is the method most people should use. It works with any registrar or DNS host (Cloudflare, Namecheap, Porkbun, Squarespace, GoDaddy and so on) and doesn't need a website.
- Copy your DID. In the Bluesky app, open Settings, then Account, then Handle, and choose I have my own domain. Type the domain you want, for example
yourname.com. The app shows the exact record to add, including your DID (a string that starts withdid:plc:). - Add a TXT record at your DNS provider. At your registrar or DNS host, add a TXT record with the host or name
_atprotoand the valuedid=did:plc:yourdid, copied exactly from the app. - Wait for DNS to update. Most providers publish the record within a few minutes. Some take up to an hour or two.
- Verify the record. Back in the app, tap Verify DNS Record. If it fails, wait a few minutes and try again before changing anything.
- Switch to the new handle. Once the record verifies, tap Update to yourname.com. Your profile now shows the domain as your handle.
What the TXT record should look like
| Field | Value |
|---|---|
| Type | TXT |
| Host / Name | _atproto (for yourname.com) or _atproto.blog (for blog.yourname.com) |
| Value / Content | did=did:plc:yourdid |
| TTL | Default or Auto is fine |
Two common mistakes: some DNS panels add your domain automatically, so typing _atproto.yourname.com into the host field creates _atproto.yourname.com.yourname.com. Use just _atproto. And the value must start with did= – pasting only the DID will not verify.
You can confirm the record is live from Terminal before you tap verify:
dig TXT _atproto.yourname.com +short
It should print "did=did:plc:…" with your DID. If it prints nothing, the record hasn't published yet or the host name is wrong.
How to Set It Up Without DNS Access (the File Method)
If you can't edit DNS but can upload files to the website on that domain, choose the No DNS panel option in the same handle screen. Bluesky will ask you to serve a plain text file at:
https://yourname.com/.well-known/atproto-did
The file contains only your DID, for example did:plc:7a3k2…, with no did= prefix and nothing else. It must be served over HTTPS, at that exact path, without a redirect to another domain and without an HTML page wrapped around it. Many website builders make the .well-known folder hard to reach, which is why DNS is usually easier.
Check it with:
curl https://yourname.com/.well-known/atproto-did
Subdomain Handles for Teams, Families and Brands
Each subdomain is its own handle, and each needs its own record. A newsroom can give reporters alex.example.com and sam.example.com by adding _atproto.alex and _atproto.sam TXT records, each with that person's DID. This is how many publications and universities signal that an account is really theirs.
The person whose account it is does the switching from their own settings; the domain owner only publishes the record. If the domain owner later deletes that record, the handle stops verifying, which gives organizations a clean way to retire a handle when someone leaves.
What Happens to Your Old .bsky.social Handle?
- Your followers, posts, likes, lists and DMs all stay. They belong to your DID.
- Mentions update. Apps show the current handle for your DID, so old posts that mentioned you display your new handle.
- Old profile links to
bsky.app/profile/oldname.bsky.socialmay break. Links that use your DID keep working. Update the link in your website or email signature. - Your previous handle is held for you. Bluesky reserves the
.bsky.socialhandle you used just before switching, so nobody else can grab it and you can switch back. Only the most recent one is held: if you hop through several handles, the earlier ones are released.
Thinking about moving your whole account to a different server instead of just renaming it? That is a separate, bigger step – see how to move a Bluesky account to another PDS.
Is a Domain Handle a Form of Verification?
It is the self-serve kind. A handle of nytimes.com proves the account is controlled by whoever controls that domain, which is a strong signal for organizations and anyone with a well-known personal site. It is not the same as Bluesky's blue check, which Bluesky and trusted verifiers grant to notable accounts. Many accounts have both. Our guide to getting verified on Bluesky explains the difference.
The flip side: a domain proves control of the domain, not identity. yourname-official.com costs a few dollars, so check that a domain really is the one you expect.
Before You Switch
- Make sure the domain will stay renewed. If it expires, your handle becomes invalid. Turn on auto-renew.
- Don't delete the TXT record later. It needs to stay for as long as you use the handle.
- Take a backup. Nothing should be lost, but a free Account Backup takes a minute. Our backup guide walks through it.
- Update anywhere you linked your profile. Starter packs and lists follow your DID automatically, but external links don't. If you are new to Bluesky, our guide to moving from X covers setting up your profile well.
Frequently Asked Questions
How do I use my own domain as my Bluesky handle?
Go to Settings, then Account, then Handle, and choose I have my own domain. Add the TXT record it shows (host _atproto, value did= followed by your DID) at your DNS provider, tap Verify DNS Record, then tap Update.
Do I lose my followers if I change my Bluesky handle to a domain?
No. Followers, posts, likes and lists are tied to your account's DID, which does not change. Only the name shown on your profile changes.
How long does Bluesky domain verification take?
Usually a few minutes after the TXT record is published. Some DNS providers take up to an hour or two. If verification fails, wait and try again before changing the record.
Can I use a subdomain as my Bluesky handle?
Yes. Add a TXT record for _atproto followed by the subdomain name, such as _atproto.blog for blog.yourname.com. Each subdomain handle needs its own record.
What happens to my old bsky.social handle?
Bluesky reserves the handle you used just before switching, so you can go back to it and nobody else can take it. Handles before that one are released.
Is a custom domain handle the same as Bluesky verification?
No. A domain handle proves you control that domain. The blue check is granted by Bluesky or trusted verifiers to notable accounts. They work alongside each other.
Handles in Skyscraper
Skyscraper reads your handle from the network like every other Bluesky app, so a domain handle works everywhere in it as soon as it verifies. A few related things it does:
- Account Data – browse your own repository, in lexicon or plain English, to see the records behind your profile
- Multiple accounts – a personal domain handle and a work one, side by side, stored in the Keychain
- Alternate PDS support – including Eurosky, for accounts hosted outside bsky.social