How to Set a Custom Domain Handle on Bluesky
🔍 WiseChecker

How to Set a Custom Domain Handle on Bluesky

Bluesky lets you replace the default @username.bsky.social handle with a custom domain like @yourname.com. This change makes your profile look more professional and ties your identity to a web domain you already own. The setup requires you to add a DNS text record at your domain registrar and then enter that domain in Bluesky’s settings. This article explains the prerequisites, walks through the DNS configuration and Bluesky verification steps, and covers common mistakes to avoid.

Key Takeaways: Setting a Custom Domain on Bluesky

  • DNS TXT record at your registrar: Contains a Bluesky-generated verification string to prove domain ownership.
  • Settings > Account > Handle > I have my own domain: The menu path to enter your custom domain and start verification.
  • Propagation delay: DNS changes can take up to 48 hours to apply; Bluesky checks periodically until the record is found.

What You Need Before Setting a Custom Domain Handle

A custom domain handle is a fully qualified domain name you own, such as example.com or blog.yourname.net. You must have administrative access to the DNS settings at your domain registrar or hosting provider. This access lets you add a TXT record that Bluesky reads to confirm you control the domain. No paid Bluesky subscription is required; the feature is free for all accounts. The domain does not need to host a website or email — it only needs a working DNS zone where you can add records.

Supported Domain Types

Bluesky supports any standard top-level domain (TLD) such as .com, .net, .org, .io, .app, and country-code domains like .uk or .de. Subdomains work as well, so you can use @bsky.example.com if you prefer. The domain must not be currently used by another Bluesky account; each domain can be claimed by only one user at a time.

Steps to Add a Custom Domain Handle on Bluesky

The process has two parts: creating a DNS TXT record at your registrar, then entering the domain in Bluesky. Follow the steps below in order.

  1. Log in to Bluesky and open Settings
    Open the Bluesky app or website. Click your profile avatar in the top navigation bar, then select Settings from the dropdown menu. On mobile, tap the menu icon (three lines) and choose Settings.
  2. Go to Account settings
    In the Settings panel, click Account from the left sidebar. On mobile, scroll down and tap Account.
  3. Open the Handle change dialog
    Next to your current handle, click the Change handle link. A dialog box titled Change your handle appears.
  4. Select the custom domain option
    In the dialog, click the button labeled I have my own domain. A text field appears asking for your domain name.
  5. Enter your domain name
    Type your full domain, for example yourname.com or bsky.yourname.com. Do not include the @ symbol. Click Continue.
  6. Copy the verification string
    Bluesky displays a TXT record value, something like did=did:plc:abc123def456. Copy this entire string to your clipboard. Do not close this page yet.
  7. Add a DNS TXT record at your registrar
    Log in to your domain registrar or DNS hosting provider (such as Namecheap, GoDaddy, Cloudflare, or Google Domains). Navigate to the DNS management page for your domain. Create a new record of type TXT. For the host or name, enter @ if you are using the root domain (e.g., yourname.com). If you are using a subdomain like bsky.yourname.com, enter the subdomain label, for example bsky. In the value or content field, paste the verification string you copied from Bluesky. Set the TTL (time to live) to 300 seconds (5 minutes) or the lowest value allowed. Save the record.
  8. Return to Bluesky and verify
    Go back to the Bluesky dialog. Click the Verify DNS Record button. Bluesky checks for the TXT record. If the record is found, you see a success message and your handle changes immediately. If verification fails, wait 5 to 10 minutes and try again. DNS propagation can take longer; you may need to wait up to 48 hours.
  9. Confirm the new handle
    After successful verification, click Save or Done. Your profile now shows the custom domain handle. Test it by asking someone to search for your handle or by visiting bsky.app/profile/yourname.com.

Common Mistakes and Issues When Setting a Custom Domain

Bluesky says “DNS record not found” even after I added it

This is the most frequent problem. The cause is usually a typo in the TXT record value, the wrong host name, or slow DNS propagation. Double-check that you pasted the exact string from Bluesky — no extra spaces or quotes. Confirm the host field is correct: use @ for the root domain or the exact subdomain label (e.g., bsky) for a subdomain. If you use Cloudflare, ensure the proxy status is set to DNS only (gray cloud), not proxied (orange cloud). Proxied records hide the TXT value from Bluesky. After correcting these, wait 15 minutes and click Verify DNS Record again.

I accidentally deleted my old Bluesky handle

Your old @username.bsky.social handle is not deleted; it remains reserved for your account. You can switch back to it at any time by going to Settings > Account > Change handle and selecting Bluesky handle. Your custom domain handle can also be removed by changing your handle again. The domain is released after you stop using it, but the TXT record stays in your DNS until you delete it manually.

My custom domain handle shows as “unverified” on my profile

Bluesky periodically rechecks the DNS record. If the TXT record is removed or modified, the handle reverts to an unverified state. To fix this, ensure the TXT record remains in your DNS zone exactly as Bluesky provided it. If you changed hosting providers or transferred the domain, you may need to re-add the record. After adding or correcting the record, open Settings > Account > Change handle and re-enter your domain to force a new verification check.

Comparison: Default Bluesky Handle vs Custom Domain Handle

Item Default Handle (@username.bsky.social) Custom Domain Handle (@yourname.com)
Setup complexity None — automatically assigned Requires DNS TXT record and verification
Cost Free Free (domain registration cost not included)
Portability Tied to Bluesky account only Can be moved to another Bluesky account by updating DNS
Verification status Always verified by Bluesky Shows as verified while DNS record exists
Professional appearance Shows Bluesky subdomain Shows your own brand or personal domain

Using a custom domain handle does not change how your posts appear in feeds or how other users find you. It only changes the handle string displayed on your profile and in replies. The underlying account identifier remains the same decentralized identifier (DID).

Now you can replace your default Bluesky handle with a custom domain of your choice. After verification, consider adding a second TXT record for email authentication if your domain also handles email — but that is optional for Bluesky. For advanced control, you can set up a _atproto subdomain TXT record to delegate verification to a different DNS provider without exposing your main domain’s DNS settings to Bluesky.