# AT Protocol separates identity, data, and application schemas

> For agents: start with the [agent guide](https://ratstack.sh/llms.txt). Every page is Markdown by default; add `Accept: text/html` for HTML.

New on /news: [alchemy-turbo-cache](/news).

AT Protocol means Authenticated Transfer Protocol.
It is a decentralized protocol for social web applications.
The [overview](https://atproto.com/guides/overview) separates account identity, data hosting, and application views.

## A DID identifies the account

A decentralized identifier is a persistent account identifier in AT Protocol, abbreviated DID.
It supports the `did:plc` and `did:web` methods.
The [DID specification](https://atproto.com/specs/did) defines their use and the account's DID document.

The [overview](https://atproto.com/guides/overview) distinguishes the DID from the human-readable handle.
The identity includes cryptographic keys and a reference to the current hosting provider.

## A PDS hosts the repository

A PDS is a Personal Data Server.
It hosts account data, manages identity, and routes requests to other services, as the [overview](https://atproto.com/guides/overview) describes.
The [repository specification](https://atproto.com/specs/repository) makes the account's PDS the authoritative repository host.
The DID document declares its location.

A repository holds the account's public records.
Its published versions have cryptographically signed commits.
The [repository specification](https://atproto.com/specs/repository) describes a content-addressed Merkle tree that supports verification of records and the complete repository.

Repository paths have two parts: a collection identifier and a record key.
The [path rules](https://atproto.com/specs/repository#repository-paths) define the collection as a namespaced identifier, or NSID.

## Lexicons describe records and calls

A lexicon is a [schema](/lore/schemas-define-the-boundary) definition for records, HTTP endpoints, or event stream messages.
Lexicons are JSON files identified by NSIDs.
The [Lexicon specification](https://atproto.com/specs/lexicon) distinguishes record definitions from queries, procedures, and subscriptions.

A procedure schema describes an operation. It does not make that operation's input a public repository record.

The [overview](https://atproto.com/guides/overview) shows how DIDs, repositories, and lexicons fit together:

```text
DID document ── identifies keys and the current PDS
                                      │
                                      ▼
                            signed public repository
                                      │
                                      ▼
                         records described by lexicons
```

The [repository specification](https://atproto.com/specs/repository) makes repository contents public and verifiable.
A repository signature establishes verifiability. It does not hide the record's contents.

## Read Rat King next

[Rat King](/lore/rat-king) teaches how the agent-mail project uses these building blocks.
It distinguishes public profile records, private runtime bindings, and mailbox procedures.
Its page also separates implemented mail clients from the public-repository roadmap.

## Sources

1. [Protocol overview](https://atproto.com/guides/overview)
   Bluesky Social PBC. Protocol purpose, identity, PDS roles, and application schemas. Accessed 2026-11-05.

2. [AT Protocol DIDs](https://atproto.com/specs/did)
   Bluesky Social PBC. Persistent account identifiers, supported DID methods, and DID documents. Accessed 2026-11-05.

3. [Repository specification](https://atproto.com/specs/repository)
   Bluesky Social PBC. Public records, signed commits, repository paths, and PDS authority. Accessed 2026-11-05.

4. [Lexicon specification](https://atproto.com/specs/lexicon)
   Bluesky Social PBC. Schemas for records, HTTP endpoints, and event streams. Accessed 2026-11-05.

## Lore on this page

- [Bindings](/lore/bindings)

## Linked from

- Agent guide → An Effect stack so pure (aspirational) Kit Langton will blush. → [Read page](https://ratstack.sh/llms.txt)

- Change log → What changed in the files served here, newest first. → [Read page](https://ratstack.sh/log)

- Full agent guide → An Effect stack so pure (aspirational) Kit Langton will blush. → [Read page](https://ratstack.sh/llms-full.txt)

- Rat King carries signed mail between named agents → Rat King gives agents named mailboxes, signed messages, optional encryption, and Pi, CLI, and MCP clients. → [Read page](https://ratstack.sh/lore/rat-king)

- Rat Stack lore | rat-stack → Short, source-grounded notes on the ideas and decisions behind rat-stack. → [Read page](https://ratstack.sh/lore)

- Rat's Nest keeps the code public and the inventory private → Joel's purpose-built on-prem cloud uses rat-stack and Alchemy, with private inventory outside the public repo. → [Read page](https://ratstack.sh/lore/rats-nest)

- Source change history (log.md) → The generated change log as Markdown. → [Read page](https://ratstack.sh/log.md)
