Experimental Cryptographic Registry
Portable identity for autonomous agents: give an agent a permanent cryptographic identity that survives changes in models, clouds, applications, and infrastructure.
The problem
An autonomous agent has four separate concerns — who it is, where it is right now, how to verify messages from it, and what it may do — that today get smashed together into a URL plus an API key plus a vendor account. Move the agent to another provider and its identity goes with the account; the party that hosts it effectively owns it, and nothing proves the agent you reach today is the one you trusted yesterday.
Four concerns, one fragile bundle
- IDENTITY
- Who is this agent? Today: a vendor account.
- DISCOVERY
- Where is it right now? Today: a hardcoded URL.
- AUTHENTICATION
- How do I verify messages from it? Today: a provider-specific API key.
- AUTHORIZATION
- What is it allowed to do? Today: implied by the above.
The registry separates them: a stable identity under a key the owner holds, a current service location, an authentication key, and declared capabilities — each changeable by signed operation, none owned by a hosting provider.
The control flow
A name can be controlled by a cryptographic key, updated through signed operations, independently verified, and projected into ordinary DNS. Private keys never leave the owner's machine; the registry only ever sees public keys, canonical bytes, and signatures.
YOUR BROWSER ─────▶ generate private key · canonicalize · sign
│
SIGNED COMMAND ─────────┤ protocol · version · environment · run
│ operation · name · sequence · previous hash
REGISTRY VALIDATOR ─────┤ ✓ signature valid
│ ✓ signer authorized
│ ✓ sequence valid
│ ✓ previous state valid
APPEND-ONLY LOG ────────┤ the source of truth; hash-chained per name
│
DETERMINISTIC STATE ────┤ a projection, rebuildable by replay
│
┌─────────┴─────────┐
NATIVE RESOLVE│ │DNS PROJECTION
"research.robinett" research.registry.robinettindustries.comThe four proofs the demo runs
Plus a fifth and sixth: ownership transfer with the old key provably dead, and 2-of-3 threshold recovery from a lost primary key. Every verdict on screen is the server's evaluation of bytes your browser signed.
CREATE
An agent identity is claimed by a key generated in your browser — no login, no wallet extension. Claim authority is itself a key: the run's bootstrap keypair, not a server-issued token.
VERIFY
Anyone resolving the name gets the current endpoint, the owner's public key, the sequence, and the state hash — one signed record instead of a URL plus an API key plus an account.
MOVE
The endpoint changes with one signed operation; the identity, owner, and key do not move. Infrastructure becomes replaceable.
REJECT
The former host signs an update with its own valid key — and the registry refuses: UNAUTHORIZED_SIGNER. The old owner after a transfer: OLD_OWNER. One recovery signature when two are required: THRESHOLD_NOT_MET. No account password protected the record; the mathematics did.
The line the demo earns: your hosting provider hosts your agent — it does not own your agent.
What exists today
Graded plainly. An experimental registry with honest boundaries beats an inflated one; the categories below do not blur.
Implemented & demonstrated
Everything the demo executes is the real protocol: Ed25519 keypairs generated in the visitor's browser (WebCrypto, non-extractable; audited pure-JS fallback), one exactly-specified canonical JSON encoding producing the bytes both sides sign and verify, a domain-separated envelope binding every signature to protocol/version/environment/run, the four-check validator (signature, authority, sequence, previous state), claim / record-update / transfer / 2-of-3 threshold recovery, an append-only event log whose projection is provably rebuildable by replay, idempotent exact retries, and a served event chain the browser re-verifies end to end.
True, but scoped to a demo
Namespaces are per-visitor runs that expire after 24 hours, with small capacity caps; record keys are allowlisted and values capped; demo keys are throwaway and live only in the visitor's browser. The registry itself runs as one operator — this site — sequencing all writes.
Deferred, and labeled in the product
Live DNS for the projection (the pane renders what a wildcard bridge would publish; no real records exist), Merkle snapshots and inclusion proofs (resolve responses ship an explicitly empty proof field), a downloadable independently-implemented verifier, agent-to-agent trust exchanges, and hierarchical organizational delegation.
Not claimed
This registry is not decentralized: V1 has a centralized sequencer and operator, and the branding gate bans stronger wording site-wide until multiple independent writers actually exist. Also not claimed: consensus, production use as a name service, custody hardware, or authenticated real-world identity behind the demo's keys.
Limitations, stated
- — The registry has a centralized sequencer and operator (this site). V1 is cryptographically owned and independently verifiable — not decentralized.
- — Demo namespaces are per-visitor and expire in 24 hours; nothing here is a persistent public name service yet.
- — The recovery beat demonstrates threshold recovery semantics — a lost or compromised primary key. All demo keys share one browser's storage, so it does not demonstrate recovery from losing the browser; production custody would place recovery keys on separate devices or custodians.
- — Browser verification runs the same single-source protocol module the server runs: it is verification independently executed from the server's verdict, not an independent implementation. Everything required for third-party verification is public.
- — The DNS projection is rendered, not served. The agents are identities with records; no live agent executes or communicates in V1.
Run it
Claim a name, publish an agent's records, move it between providers, watch a hijack and a revoked key get refused, recover from a lost primary key, and re-verify the whole signed history in your own browser. About three minutes; no account, no email, no wallet extension.
Run the registry demo