How Bluesky Handles Work
Every Bluesky handle is a domain name: either a free name under bsky.social (freshbakes.bsky.social) or any domain you control (freshbakes.com). Behind the handle sits a permanent identifier called a DID, like did:plc:abc123xyz, that represents your account. The handle points at the DID through a DNS record or a /.well-known file, which is why you can change your handle without starting a new account.
Bluesky username rules at a glance
- Length
3-253 characters
Short form (name.bsky.social): 3-18 characters.
- Characters
Letters, numbers, hyphens (-) - case-insensitive (stored lowercase). Short form like "alice" (auto-appends .bsky.social) or full DNS like "alice.bsky.social"
- Profile text
Name up to 64, bio up to 256
- Full form: DNS-style, segments cannot start or end with a hyphen
- Per-segment max 63 characters; the top-level domain cannot start with a digit
- The protocol allows 253 characters, but Bluesky's help center caps custom-domain handles at 30.
Two details the table can’t show at a glance. In a .bsky.social name, hyphens are fine anywhere except the first or last character, while underscores and periods are not allowed at all. And the length you get depends on the kind of handle: The protocol allows 253 characters, but Bluesky's help center caps custom-domain handles at 30. The cap is counted across the whole handle, so a longer domain leaves less room for the rest.
Use Your Own Domain as Your Bluesky Handle
The feature that matters most for brands is that your handle can be a domain you control. Instead of @yourbrand.bsky.social, you can present as @yourbrand.com. This isn’t cosmetic: it is how the AT Protocol ties an account to a name.
The mechanics are short. You add a DNS TXT record at _atproto.yourdomain.com containing your account’s DID, and the handle resolves when that record matches your account. If you can’t edit DNS, you can serve the same DID from a /.well-known/atproto-did file over HTTPS instead. Subdomains work too, so @news.freshbakes.com is a valid handle.
For brands, this is self-verification without an application process: the handle itself shows that the account is run by whoever controls the domain. If you don’t own the domain yet, the username availability checker checks 20+ domain extensions alongside the social handles, so you can find a name that works as both.
What Your Bluesky Result Means
- Available, for a .bsky.social name, means no account uses it right now. Claim it in Bluesky before you announce it.
- Available, for a full domain handle, means no Bluesky account currently uses that handle. It doesn’t mean you can take it: only whoever controls the domain can point it at an account, so check that you own (or can register) the domain.
- Taken means an account uses the handle. Keep in mind that someone who moved to a custom domain keeps their most recent
.bsky.socialhandle reserved, with no expiry, and Bluesky publishes nothing on when a deleted account’s handle comes back. - Not valid means it breaks Bluesky’s handle rules, like an underscore, a short name over the length limit, or a hyphen at the start or end.
What to Do If Your Bluesky Handle Is Taken
- Use a custom domain instead. Skip the
.bsky.socialhandle and use a domain you own. If@freshbakes.bsky.socialis taken, you can still be@freshbakes.comif you control that domain. - Try a subdomain. If you control a parent domain, a subdomain handle like
@team.freshbakes.comneeds nothing beyond one more DNS record. - Pick a different extension. If
freshbakes.comis gone,freshbakes.io,freshbakes.devorfreshbakes.coall work as handles. We check 20+ extensions at once, so you can find an open one to register. - Watch the .bsky.social name. Bluesky gives no date for when a handle comes back, so there is nothing to wait for on a calendar. Start a watch from the result above and we alert you if it frees up.
If you control yourbrand.com, nobody else can be @yourbrand.com on Bluesky: only whoever controls the domain’s DNS or website can point it at an account. Keep the domain renewed, and keep the full handle within Bluesky’s length cap for custom domains (in the rules above).
Building a Lasting Bluesky Presence
- Use your domain if you have one. A custom-domain handle shows that the account belongs to the domain’s owner. If you run any kind of brand or professional presence, it is the strongest signal you can set yourself.
- Match your domain to your other handles. If you are
@freshbakeson Instagram and Twitter (now X), owningfreshbakes.comlets you be@freshbakes.comon Bluesky, which is about as consistent as a cross-platform identity gets. - Pick your .bsky.social name before you switch. When you move to a custom domain, Bluesky keeps your most recent
.bsky.socialhandle reserved for you, and the reservation doesn’t expire. Set the one you’d want as a fallback first. - Be deliberate about subdomains. Subdomain handles like
@you.team.comare valid but read awkwardly. Save them for clear branded sub-accounts, like a press handle on a company domain.
.bsky.social name is taken, a domain you control is usually the better option anyway, and nobody else can claim it. Check the domain and the .bsky.social handle together before you commit.