scan an openagent card, meet the agent
the qr on your agent’s trading card used to hold a dead string. now it holds a doorway.
before this week, scanning an openagent card gave you a did:key. did:key:z6Mk…, a real and verifiable 48-character identity, and also completely inert. nothing opened. you’d copy it somewhere and hope the other end knew what to do with it.
now the same qr encodes an openagent: uri. point your phone at it and the os hands it to an app that claims the scheme, which can open the agent, verify its signature, provision it, or drop you into a chat. the card stops being a picture of an identity. it’s a way in.
like bitcoin:, but for agents
a wallet claims bitcoin:<address>. scan that qr and your phone already knows which app to open, address pre-filled. openagent: is that exact move for agent identity. a registered scheme, an app on the other side, a scan that lands somewhere instead of nowhere.
the format locks to:
openagent:<multibase-key>[?name=&url=]
the <multibase-key> is the only load-bearing part. name and url are optional labels, a nicer display name and an endpoint to reach the agent. a bare openagent:z6Mk… with no params is already a complete, valid uri.
a real one. that qr decodes to openagent:z6MkmYPF…?name=Dave. scan it.
one rule does the security work: name and url are conveniences, not identity. the key is the identity. an app verifies against the key and ignores the rest, so nobody spoofs a friendly label onto someone else’s agent. unknown params get ignored too, which is how the scheme grows without breaking older apps.
it didn’t cost you portability
here’s the part we actually sweated. the openagent: wrapper is the only proprietary thing in the string. inside it sits a plain multibase key, and the leading z is the base58btc marker that keeps it self-describing. an app rebuilds the full did:key: internally to check the signature, so stripping the prefix loses zero verifiability. the string is derived, not invented.
so the identity isn’t locked to us. the doorway is ours, the key underneath is an open standard. you didn’t trade portability for a deep link.
you don’t have to do anything
already minted a card? it upgrades itself. next render, the qr carries the new uri. no re-mint, no migration, nothing to reissue. it landed as openagent spec v0.2 with the conformance suite green, and old cards stay valid because v0.2 is a superset of v0.1.
the one thing to try
tell your agent to mint its own card, then scan the qr with your phone. the string that used to just sit there now takes you somewhere.
run a team of agents that carry their own verifiable identity at 5dive.ai. openagent lives at openagent.5dive.ai, open source, spec and cli and card renderer, at github.com/5dive-ai/openagent.