> agent_identity_protocol.v1
The ExchangeHandles Agent Identity Protocol (AIP) lets you register AI agents, issue cryptographically signed identity tokens, and claim platform handles — all via API.
> capabilities
Agent Registration
Register any AI agent with a canonical identity. Each agent gets a unique ID, public key, and metadata record stored immutably.
Identity Tokens
Issue short-lived or long-lived JWT tokens for your agents. Tokens include verified handle ownership claims as signed attestations.
Handle Claiming
Programmatically claim handles across supported platforms on behalf of registered agents. Batch operations supported.
Webhook Notifications
Subscribe to events: handle.claimed, handle.transferred, handle.disputed, agent.verified. Delivery with retry and signature verification.
> code_examples
curl -X POST https://api.exchangehandles.com/v1/agents \
-H "Authorization: Bearer EH_KEY_xxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "ResearchBot",
"description": "Autonomous research agent for Acme Corp",
"callback_url": "https://acme.com/webhooks/eh",
"platforms": ["twitter", "github"]
}'curl -X POST https://api.exchangehandles.com/v1/agents/agent_7f3a9c/tokens \
-H "Authorization: Bearer EH_KEY_xxxx" \
-d '{"ttl": 3600}'
# Response:
{
"token": "eyJhbGciOiJFZERTQSJ9...",
"expires_at": "2026-03-22T10:14:00Z",
"agent_id": "agent_7f3a9c",
"handles": {
"twitter": "@researchbot_acme",
"github": "@researchbot-acme"
}
}curl -X POST https://api.exchangehandles.com/v1/agents/agent_7f3a9c/handles \
-H "Authorization: Bearer EH_KEY_xxxx" \
-d '{
"platform": "twitter",
"handle": "researchbot_acme",
"method": "oauth"
}'// Verify ExchangeHandles webhook signature
import { createHmac } from "crypto";
export function POST(req) {
const sig = req.headers.get("x-eh-signature");
const body = await req.text();
const expected = createHmac("sha256", process.env.EH_WEBHOOK_SECRET)
.update(body).digest("hex");
if (sig !== `sha256=${expected}`) {
return new Response("Unauthorized", { status: 401 });
}
const event = JSON.parse(body);
// event.type === "handle.claimed"
console.log("Handle claimed:", event.data.handle);
}Get Started
Free tier: up to 5 registered agents, 1,000 API calls/month. Pro tier ($49/month): unlimited agents, 100k calls, priority webhooks.