Two-layer architecture
A mutable, signed pointer layer resolving names to CIDs, atop an immutable, content-addressed object layer.
- CL-1
- CL-2
- CL-6
Every diagram below maps to numbered claims (CL-*); each claim is traced to the code, and listed at the foot of this page. Where a diagram shows the target design rather than the public instance today, its caption says so.
The two layers, and the atproto nouns they are built from.
A mutable, signed pointer layer resolving names to CIDs, atop an immutable, content-addressed object layer.
The nouns and their cardinalities: DID, Repo, Collection/Lexicon, PointerRecord, CIDObject.
Who signs what, and where authority comes from.
On a write: the bytes are dedup-checked, and a new pointer record linking the previous CID is signed by the instance's did:key and committed. Diagram shows the target design (writer-held signature); today the instance signs.
Target design: authority to mutate a name is cryptographic — did:key → public key → signature verification → authorized mutation. Built behind capability auth; not enabled on the public instance.
A hash-linked ledger with a legal lifecycle.
An append-only, hash-linked sequence where each record references the previous record's CID.
The legal lifecycle of a pointer record: draft → signed → committed → superseded / tombstoned.
Verifying reads, and why identical bytes converge on one CID.
Resolve name → pointer → fetch bytes by CID → integrity check, with failure branches. Signature and prev-CID checks run when you verify the chain (in the browser verifier), not on every read.
Distinct names/pointers carrying identical bytes converge on a single CID-addressed object.
What a name resolved to, in order.
An auditor walks previous-CID links backward and verifies each signature; a truncated or withheld head is only detectable once the external witness ships.
One name's resolved-CID history as dated entries, in order.
Where a chum instance sits inside ATProto.
Where a chum instance sits in ATProto: it resolves DIDs through the directory and reads revocations from issuers' repos. The PDS and relay edges are the target design; it does not yet publish to a PDS or relay.