Plainwork

Plainwork / Skyprint Pro / Bluesky custom domain handle: DNS record helper

Bluesky custom domain handle: get your DNS record and check it

Using your own domain as a Bluesky handle (like @yourname.com) takes one DNS TXT record. Type your current handle and the domain you want, and this page looks up your account ID, shows the exact record to add, and then checks that the record is live so you know the change will work before you press Verify in the app.

How to add the record

  1. Log in to wherever your domain's DNS is managed (your registrar, Cloudflare, Namecheap, GoDaddy and so on) and add a new TXT record.
  2. Name / host: _atproto. Some providers want the full name, _atproto.example.com; the tool above shows both. For a subdomain handle such as me.example.com, the name is _atproto.me.
  3. Value: did=did:plc:... exactly as shown above, with no quotes and no spaces. Most providers add the quotes for you.
  4. Save, wait a few minutes, press Check the record is live, then in the Bluesky app go to Settings, Account, Handle, choose "I have my own domain", enter the domain and tap Verify DNS Record.

If you cannot add a TXT record

The AT Protocol also accepts an HTTPS method: serve a plain-text file at https://yourdomain/.well-known/atproto-did whose only content is your DID (did:plc:...). That suits people who control a website but not its DNS. The app lets you pick this method on the same screen.

Common problems

SymptomLikely cause
Check says "no record found"Wrong name (the host was doubled to _atproto.example.com.example.com), or DNS has not propagated yet. Wait and retry.
Record found but the value differsA copy of an old DID, or extra characters. Paste the value from this page again.
Record is right but the app failsCached lookups can take up to the record's TTL to clear. Try again in 10 to 30 minutes.
Two TXT records on _atprotoKeep only one that starts with did=; extra ones can confuse resolution.

How this page works

Your account ID (DID) comes from Bluesky's public resolveHandle endpoint. The live check asks Cloudflare's public DNS-over-HTTPS service for the TXT record and also asks Bluesky whether the domain already resolves to your account. Both requests go straight from your browser; nothing is sent to or stored by Plainwork, and no password or login is ever needed. A DNS result can differ from what the app sees until caches expire, so treat a pass here as a strong sign rather than a guarantee. Skyprint is independent and not affiliated with Bluesky.

Once your handle is set

See how your account is doing with the free Bluesky stats card, check when your followers respond and your engagement rate, or get the full day-by-hour heatmap, format breakdown and CSV in Skyprint Pro ($4, one time).

More from the catalogue

Other small tools

See everything →