Skip to main content
Platform tool

Bluesky Handle & Custom Domain Checker

Check whether a handle is valid, and get the exact DNS or file steps to verify a custom domain.

  • Processed locally
  • No account required
  • Official AT Protocol rules

Your result will appear here

Enter a handle on the left and check it.

Enjoy this free tool? Help support SkyyCast and keep more free creator tools coming.

What makes a handle valid

A Bluesky handle follows the AT Protocol's handle syntax: lowercase letters, digits and hyphens only, split into dot-separated labels, with at least two labels (a bare domain with no dot is never a valid handle). Each label must be 1-63 characters, cannot start or end with a hyphen, and the final label (the "TLD" position, like .social in yourname.bsky.social) cannot start with a digit. The whole handle can be at most 253 characters. See the official AT Protocol handle specification for the full grammar.

Why use a custom domain handle

Every Bluesky account gets a free yourname.bsky.social handle, but you can switch to any domain you own or control -- your brand's root domain (yourbrand.com) or a subdomain (news.yourbrand.com). A domain handle is portable: it is not tied to Bluesky's own namespace, it signals you control the domain you claim to represent, and if the AT Protocol network ever has multiple apps or a different company runs the same account elsewhere, the handle still resolves back to you.

Setting up the DNS TXT record

Add a TXT record at _atproto.yourdomain.com (or _atproto.sub for a subdomain handle) with the value did= followed by your account's DID. You can find your DID in Bluesky's app under Settings → Advanced, or in the account's own handle-change screen. After saving the record, DNS propagation can take anywhere from a few minutes to a few hours, so wait before retrying if verification does not succeed right away. This method and its exact wording come from Bluesky's own domain handle tutorial.

Setting up the .well-known file

If you would rather not touch DNS, serve a file at https://yourdomain.com/.well-known/atproto-did whose entire content is your DID, served with a text/plain content type and an HTTP 200 OK response. A common mistake is letting a CMS or site builder wrap the file in an HTML template -- Bluesky's handle resolution expects the raw DID text and nothing else.

Common handle verification mistakes

  • Forgetting the did= prefix in the TXT record value, so it just contains the raw DID.
  • Adding the TXT record at the wrong host -- it belongs at _atproto, not at the bare domain.
  • Retrying verification immediately after saving a DNS change, before it has propagated.
  • Letting the .well-known file render as an HTML page instead of plain text.

Privacy first

The handle or domain you type is checked entirely by your own browser's JavaScript against the published AT Protocol grammar. Nothing is uploaded to SkyyCast, stored, or sent to any other service, and no DNS lookup or network request is made on your behalf by this tool.

More free tools

See all free SkyyCast tools. Once your handle is set, check your first post with the Bluesky Post Checker or split a long update into a thread with the Bluesky Thread Splitter.

Ready to schedule your next post?

SkyyCast helps you plan, queue and schedule Bluesky content, and see how each post performs. The Free plan includes 15 published posts a month.

See how it works