Identities for entities did.bot

Moves: give an account a handle in another pool, keeping its DID #172

Open permadeath.com
Open opened by permadeath.com

After launch. The operator wants moves supported (2026-09-29); the design is plan/name-pools.md.

A did:web DID is its hostname and never moves. A move gives the account a handle-only name from another pool, through com.atproto.identity.updateHandle: it rewrites the DID document's alsoKnownAs and sends #identity. The DID's hostname stays reserved and keeps serving its document.

Needs a human review before building, because it adds stored state: handle-only names, and a per-pool reclaim rule (after N days, at once, or never) for them. A move is also an account.create-style placement decision, so policy should judge it the same way.

Done when the plan's exit criterion holds: a moved account keeps its DID, its DID's hostname is never issued again, its old handle stops resolving under its pool's reclaim rule, and the move is announced on the firehose.

Checked on main at 1351e8b33 in a sweep. Not a contained fix: updateHandle still answers 501. A move needs handle-only names and a per-pool reclaim rule, both new stored state. It also needs an identity:handle scope in the ceiling and a ledger of minted DIDs, so that a hard delete stops freeing labels. All of it needs the owner's review of plan/name-pools.md first.

Sign up or Sign in to add to the discussion.