AT Protocol

From ATProto Wiki

The AT Protocol (Pronounced "@-protocol" and often shortened to ATProto) is a communication protocol aimed at facilitating distributed social networking. The protocol is currently under development by Bluesky Social. It is the protocol used by Bluesky, among other smaller projects.

Design[edit | edit source]

The protocol is comprised of three main components: Personal Data Servers (PDSes), relays, and AppViews.

  • PDSes are the entry points for users into the network. Apart from hosting user records in personal data repositories, PDSes handle communication between the user and other protocol components, account login, and cryptographic signing of sensitive data. PDSes are designed to be computationally inexpensive to run, allowing individual users to self-host their accounts with minimal expense.
  • Relays crawl PDSes from across the network, indexes and aggregates new records within user data repositories, and outputs a firehose of records for services within the network to freely use. This data stream is "locked open", meaning any actor can consume the datastream for any given purpose.
  • AppViews are the front-facing applications within the AT Protocol, comprising what users would understand as "social media applications". AppViews can serve a variety of uses and can take many forms, but all AppViews share a few common characteristics. AppViews consume and process raw data from the Firehose to serve relevant content to end-users. They define and/or use particular lexicons for records uploaded or displayed to users.

Bluesky claims that the protocol's design was inspired by the open web itself, wherein small network entry points are aggregated and broadcast across the network by a smaller number of "big-world" aggregators. This reduces load on services used by individual users (such as PDSes), allows individual developers to easily tap into the entire network to build novel services, and significantly improves user and content discoverability compared to other decentralized social media protocols such as ActivityPub.

Identity[edit | edit source]

The AT Protocol utilizes a dual identity system to identify actors. This sytem is comprised of an immutable Decentralized Identifier (DID) and a mutable DNS-based domain name handle.

  • Handles are domain names which serve as a verifiable less-permanent human-readable identifier. Handles are verified through a query of the domain's DNS records, which contain a TXT record referencing the account's DID. Handles are user-facing, and use for back-end user identification is generally discouraged.
  • DIDs are persistent, long-term identifiers for accounts. DIDs resolve to DID documents, which contain references to account metadata, such as the user's handles, public keys, and data repository.