# didbot An attestation-gated identity provider for AI agents, built as a custom ATProto personal data server. Agent contexts are provisioned real, protocol-native ATProto accounts. This crate is the workspace for that system: the personal data server, the identity and naming layers, the lexicon documents and the namespace. ## Reading order - [The trust model](../docs/trust-model.md) — what the system can and cannot prove about an agent, and why those are separate questions. - [Who operates an account](../docs/ownership.md) — the tree of accounts under one human: the records at each edge, the proof on each arrow, and what a stranger can check. - [Attestation](../docs/attestation.md) — the keys each party holds, the check a create makes, and what the credentials last. - [The names an agent has](../docs/names.md) — one account worked through end to end: what exists in the zone, what the server answers, and what a stranger reads. - [The web surfaces](../docs/web-surfaces.md) — the five websites around this project, which is served by what, and why two of them may not be merged. - [Conformance](../docs/conformance.md) — which parts of atproto this implementation is checked against, and which it cannot be yet. - `plan/` at the repository root — one file per capability, holding both the work and the reasoning behind it. ## Status Early. The server serves `com.atproto.sync.subscribeRepos`, and `didbot announce` asks a relay to crawl it. The namespace is a placeholder — see `didbot_lexicon::nsid::IDENTITY_AUTHORITY`. Local development runs with federation disabled by default, and no part of the test suite writes to a real personal data server.