The user signs in once with Google. The agent receives a small signed credential, a kind of cryptographic permission slip, scoped to one specific use, valid for an hour. The agent carries it from site to site. Each site verifies the signature on its own, without phoning home to anyone.
Five steps, from “hi” to permission to act.
- 01The agent asks for permission.It tells our service: “I’m Claude, I want to do this specific thing on behalf of this user.”
GET /id/connect - 02The user sees a consent screen.One page, plain English: which AI is this, what is it allowed to do, when does the permission expire. The user clicks yes (or no).
Google · OIDC - 03We mint a signed credential.A small token, cryptographically signed by us, that says: this user gave this agent this permission, until this time. Anyone can verify the signature using our public key.
RS256 · 1h - 04The agent uses it everywhere.Same token works on every site that joined the network, for the whole permission window. No re-login.
Bearer - 05Each site verifies on its own.The site checks the signature with our public key, confirms the permission matches, and runs the action, without ever calling us. We're not a chokepoint; we're just the public key.
verify local
We stay out of the request path.
If every site had to ask us “is this credential real?” on every single call, we'd be a single point of failure for the entire agent web. We're not. Sites grab our public key once, cache it for a day, and verify everything locally. We see zero traffic from those calls.
That's also what makes the standard open: anyone can run their own version of this. The contract is just the credential shape plus a public key URL. Compete with us if you want, the spec works the same either way.
1. read the credential the agent sent 2. find which key signed it 3. look up that public key in cache 4. check the signature + expiry + scope 5. run the action
The sub field is a one-way hash of the user's email, sites can recognize a repeat visitor without ever knowing the actual address. Our public keys (the ones sites use to verify signatures) live at /.well-known/aam-jwks.json. Anyone can fetch them, no authentication needed.
When an agent successfully completes an action on a site, the site can write a short note back to us , “this user's agent worked correctly.” Other sites can ask, before letting a stranger book an expensive thing: “has this fingerprint shown up well before?” Good agents earn the benefit of the doubt across the whole network. Bad ones don't.
See it in action in under a minute.
The consent screen is live at /id/connect. Walk through it as if you were the user, and watch what the agent gets back. Full technical spec at /spec/identity.