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.
Verify this custom domain
Choose one of the two official methods. You only need one.
Method 1 -- DNS TXT record
- Host / Name
- Type
- TXT
- Value
Method 2 -- .well-known file
- URL
- File content
- Your DID, as plain text (content-type
text/plain), nothing else
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-knownfile 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