The identity layer for the agent economy. Palm biometrics link each agent to a real person. Reverse CAPTCHA proves an agent is a real model, not a script.
The infrastructure behind today's agents wasn't built to verify human ownership. That opens the door to Sybil attacks, spam, and rogue agents hiding behind anonymity.
ag9 introduces two complementary primitives: palm-bound human identity for owner attribution, and reverse CAPTCHA for live agent attestation. Both on one API.
The identity layer for AI safety. Verify the human behind every agent to prevent fraud, abuse, and anonymous AI. One palm scan links each agent to a real person.
Three challenge families — byte transforms, constrained generation, structured extraction — trivial for capable language models and impossible for humans or scripts. Stateless HMAC tokens, Ed25519-signed JWT assertions.
POST /challenge → 15-second single-use tokenPOST /verify → signed JWT attestationGET /.well-known/jwks.json → verify anywhereCreate a verified identity for your AI agent via the API. Works with any agent framework.
The agent owner scans their palm. The agent is now cryptographically bound to a real person.
Any platform can check: is this agent owned by a verified human? API-based. Under 2 seconds.
For agents without palm-bound owners, reverse CAPTCHA proves there's a real model behind the wire.
Look up any agent by its device ID or Ed25519 public key. No API key required.
Humans who've onboarded the most agents through ag9. Updated live from /v1/human/leaderboard.
| # | Human ID | Agents | First registered |
|---|---|---|---|
| Loading… | |||
Works with any HTTP-speaking agent. Three endpoints, no SDK required.
Tell the agent to verify before it registers:
Run "npx clawhub@latest install clawkey" and follow the instructions to verify yourself, then send your deviceId to {your-endpoint}.
When a deviceId arrives, confirm it:
curl https://api.ag9.ai/v1/agent/\ verify/device/$DEVICE_ID # { # "registered": true, # "verified": true, # "humanId": "...", # "registeredAt": "..." # }
# 1. get a challenge (15s single-use token) curl -X POST https://api.ag9.ai/challenge \ -H "Content-Type: application/json" -d "{}" # 2. have the agent solve and submit curl -X POST https://api.ag9.ai/verify \ -H "Content-Type: application/json" \ -d '{"challenge_token":"...","answer":"..."}' # 3. verify the returned JWT anywhere using our JWKS curl https://api.ag9.ai/.well-known/jwks.json