···11+---
22+name: atproto
33+description: "Use this skill whenever interacting with the AT Protocol ecosystem, including Bluesky, Tangled, wisp.place, BookHive, and other related platforms built on AT Protocol. Triggers include: any mention of 'AT Protocol', 'Bluesky', 'Tangled', or related terms. Also use when working with AT Protocol APIs, Bluesky clients, or any tools and libraries specific to the AT Protocol or Bluesky ecosystem."
44+---
55+66+# AT Protocol
77+88+## Overview
99+1010+The AT Protocol (Authenticated Transfer Protocol, AKA "ATproto" or "atproto")
1111+is a decentralized social networking protocol designed to enable
1212+interoperability and user control across different platforms. It allows users
1313+to create and manage their own social media presence while maintaining
1414+ownership of their data. The AT Protocol is the foundation for platforms like
1515+Bluesky, Tangled, wisp.place, BookHive, and other related ecosystems built on
1616+top of it. Protocol docs are available at <https://atproto.com/docs>.
1717+1818+### DIDs
1919+2020+The AT Protocol uses DIDs (Decentralized Identifiers) to identify user
2121+accounts. A DNS domain may be associated with a DID via an _atproto TXT record,
2222+allowing for more human-readable identifiers, but the DID itself is the
2323+authoritative identifier for the account. Every DID is associated with a DID
2424+Document, which contains information about the account, including both
2525+cryptoraphic keys used to certify changes to the DID document and a reference
2626+to the user's Personal Data Server (PDS).
2727+2828+### Records
2929+3030+All user data in the AT Protocol is stored as records, which are structured
3131+pieces of JSON data inside a PDS. Currently (February 2026), all records are
3232+public and viewable by anyone without requiring a login. Every record is
3333+associated with a DID, which identifies the account that created and owns the
3434+record. AT protocol apps cannot create, modify, or delete records without
3535+user permission, enforced by the user's PDS. Each record has a *lexicon*,
3636+identified by a Namespaced Identifier (NSID), of the form `app.bsky.feed.post`,
3737+`app.bsky.actor.profile`, and similar. Every record also has a *record key*, an
3838+identifier that distinguishes different records of the same type created by the
3939+same account.
4040+4141+### at:// URIs
4242+4343+The AT Protocol uses a custom URI scheme, `at://`, to identify records and
4444+accounts. An `at://` URI of the form `at://<did>` or `at://<DNS domain>`
4545+identifies a user account (the former by DID, the latter by the DID associated
4646+with the DNS domain at time of resolution). An `at://` URI of the form
4747+`at://<did or domain>/<lexicon nsid>` identifies a collection of records of
4848+the given lexicon for the given account. An `at://` URI of the form
4949+`at://<did or domain>/<lexicon nsid>/<record key>` identifies a specific
5050+record.
5151+5252+## Using PDSls
5353+5454+You can use the https://pdsls.dev/ website to explore ATprotocol accounts
5555+and records. Put any `at://` URI at the end of the URL to view the
5656+corresponding ATproto resource, such as in the following:
5757+5858+```
5959+https://pdsls.dev/at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l
6060+```