{"openapi":"3.1.0","info":{"title":"Agent Trust Lookup","version":"0.1.0","description":"Know your agent before you serve it: wallet history and micro-payment behaviour on Base, ERC-8004 identity and feedback, Web Bot Auth and agent-card presence on a domain, and signed-request verification. Pay per call over x402, no API key."},"servers":[{"url":"https://agent-trust.agent-utils.workers.dev"}],"paths":{"/v1/wallet":{"get":{"summary":"Who is this agent wallet? For sellers and marketplaces deciding whether to serve, rate-limit or extend credit to a buyer","description":"Who is this agent wallet? For sellers and marketplaces deciding whether to serve, rate-limit or extend credit to a buyer. Base activity (transactions, recent USDC transfers, micro-payment behaviour, distinct counterparties, USDC balance, ENS/Basename), ERC-8004 agent identities it owns with on-chain feedback, and a 0-100 trust score with tier and recommendations.","tags":["agent-reputation","kya","trust","wallet","erc-8004","x402","fraud"],"x-price-usd":"0.01","x-payment":"x402","parameters":[{"name":"address","in":"query","required":true,"description":"EVM address (Base)","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"activity":{"type":"object"},"agents":{"type":"array","items":{"type":"object","properties":{"agentId":{"type":"string"},"owner":{"type":["string","null"]},"agentWallet":{"type":["string","null"]},"uri":{"type":["string","null"]},"registration":{},"feedbackCount":{"type":"integer"},"feedbackAverage":{"type":["number","null"]},"clients":{"type":"integer"},"recentFeedback":{"type":"array","items":{"type":"object"}}}}},"assessment":{"type":"object","properties":{"trustScore":{"type":"integer","minimum":0,"maximum":100},"tier":{"type":"string","enum":["established","emerging","new","risky"]},"signals":{"type":"array","items":{"type":"string"}},"recommendations":{"type":"array","items":{"type":"string"}}}},"checkedAt":{"type":"string"}}},"example":{"address":"0x4eFB…","activity":{"isContract":false,"ensName":null,"txCount":1,"tokenTransferCount":49,"usdcBalance":12.5,"usdcTransfers30":{"count":30,"distinctCounterparties":9,"sumIn":0,"sumOut":1.2,"microPayments":28,"first":"2026-08-30T10:00:00Z","last":"2026-09-06T20:00:00Z"},"erc8004AgentIds":["1234"]},"agents":[{"agentId":"1234","owner":"0x4eFB…","agentWallet":null,"uri":"https://…/agent.json","registration":{"name":"…"},"feedbackCount":12,"feedbackAverage":0.8,"clients":5,"recentFeedback":[]}],"assessment":{"trustScore":72,"tier":"established","signals":["30 recent USDC transfers","28 micro-payments (<= $0.50): pays per call like an agent"],"recommendations":["eligible for session/streaming payments (MPP) and higher rate limits"]},"checkedAt":"2026-09-06T21:00:00.000Z"}}}},"400":{"description":"Bad request (not charged)"},"402":{"description":"Payment required. See PAYMENT-REQUIRED header (x402 v2)."}}}},"/v1/agent":{"get":{"summary":"ERC-8004 agent by id on Base: owner, verified agent wallet, registration URI and its resolved JSON (name, endpoints, skills), feedback count and average from the Reputation Registry, distinct clients and the latest feedback entries","description":"ERC-8004 agent by id on Base: owner, verified agent wallet, registration URI and its resolved JSON (name, endpoints, skills), feedback count and average from the Reputation Registry, distinct clients and the latest feedback entries. Use to vet a counterparty agent before hiring or paying it.","tags":["erc-8004","agent-reputation","identity","trust","a2a"],"x-price-usd":"0.01","x-payment":"x402","parameters":[{"name":"id","in":"query","required":true,"description":"ERC-8004 agentId (ERC-721 token id) on Base","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"agent":{"type":"object","properties":{"agentId":{"type":"string"},"owner":{"type":["string","null"]},"agentWallet":{"type":["string","null"]},"uri":{"type":["string","null"]},"registration":{},"feedbackCount":{"type":"integer"},"feedbackAverage":{"type":["number","null"]},"clients":{"type":"integer"},"recentFeedback":{"type":"array","items":{"type":"object"}}}},"checkedAt":{"type":"string"}}},"example":{"agent":{"agentId":"1","owner":"0xabc…","agentWallet":"0xabc…","uri":"https://example.com/agent.json","registration":{"name":"Example Agent"},"feedbackCount":3,"feedbackAverage":0.67,"clients":2,"recentFeedback":[{"client":"0xdef…","value":1,"tag1":"quality","tag2":"","revoked":false}]},"checkedAt":"2026-09-06T21:00:00.000Z"}}}},"400":{"description":"Bad request (not charged)"},"402":{"description":"Payment required. See PAYMENT-REQUIRED header (x402 v2)."}}}},"/v1/domain":{"get":{"summary":"Agent-readiness and identity profile of a domain: Web Bot Auth key directory (RFC 9421), A2A agent card (name, skills, extensions), MCP well-known manifest, llms.txt, robots.txt, and whether the root answers HTTP 402 with x402 payment requirements (and on which networks)","description":"Agent-readiness and identity profile of a domain: Web Bot Auth key directory (RFC 9421), A2A agent card (name, skills, extensions), MCP well-known manifest, llms.txt, robots.txt, and whether the root answers HTTP 402 with x402 payment requirements (and on which networks). Use to decide whether a counterparty domain is a real agent service and how to talk to it.","tags":["agent-identity","web-bot-auth","a2a","mcp","x402","discovery","domain"],"x-price-usd":"0.01","x-payment":"x402","parameters":[{"name":"domain","in":"query","required":true,"description":"Hostname without scheme","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string"},"reachable":{"type":"boolean"},"https":{"type":"boolean"},"webBotAuth":{"type":"object"},"agentCard":{"type":"object"},"mcp":{"type":"object"},"llmsTxt":{"type":"boolean"},"robotsTxt":{"type":"boolean"},"x402":{"type":"object"},"checkedAt":{"type":"string"}}},"example":{"domain":"agent-gateway.agent-utils.workers.dev","reachable":true,"https":true,"webBotAuth":{"directory":false,"keys":0,"kids":[]},"agentCard":{"present":true,"name":"Agent Utils","skills":22,"extensions":["https://github.com/google-a2a/a2a-x402/v0.1"],"url":"https://agent-gateway.agent-utils.workers.dev/a2a"},"mcp":{"wellKnown":false},"llmsTxt":true,"robotsTxt":false,"x402":{"answers402":false,"networks":[]},"checkedAt":"2026-09-06T21:00:00.000Z"}}}},"400":{"description":"Bad request (not charged)"},"402":{"description":"Payment required. See PAYMENT-REQUIRED header (x402 v2)."}}}},"/v1/verify-request":{"post":{"summary":"Verifies a Web Bot Auth signed HTTP request (RFC 9421 HTTP Message Signatures) against the signer's public key directory: pass the request method, URL and the Signature, Signature-Input and Signature-Agent headers you received; get back whether the signature is valid, which agent directory signed it and the key id","description":"Verifies a Web Bot Auth signed HTTP request (RFC 9421 HTTP Message Signatures) against the signer's public key directory: pass the request method, URL and the Signature, Signature-Input and Signature-Agent headers you received; get back whether the signature is valid, which agent directory signed it and the key id. For sellers who cannot run the verification library themselves.","tags":["web-bot-auth","http-message-signatures","verification","agent-identity","security"],"x-price-usd":"0.005","x-payment":"x402","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string","default":"GET"},"url":{"type":"string"},"headers":{"type":"object","description":"Must include signature, signature-input and signature-agent (case-insensitive)"}},"required":["url","headers"]},"example":{"method":"GET","url":"https://example.com/resource","headers":{"signature":"sig1=:...:","signature-input":"sig1=(\"@authority\");created=1700000000;keyid=\"...\";tag=\"web-bot-auth\"","signature-agent":"\"https://agent.example\""}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"agent":{"type":["string","null"]},"keyid":{"type":["string","null"]},"directoryKeys":{"type":"integer"},"reason":{"type":["string","null"]},"checkedAt":{"type":"string"}}},"example":{"valid":true,"agent":"https://agent.example","keyid":"abc","directoryKeys":2,"reason":null,"checkedAt":"2026-09-06T21:00:00.000Z"}}}},"400":{"description":"Bad request (not charged)"},"402":{"description":"Payment required. See PAYMENT-REQUIRED header (x402 v2)."}}}}}}