{"audit":{"version":"1.5","generated_at":"2026-09-30T07:59:16.048270+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/index.agentexchange.work","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"index.agentexchange.work","name":"Agent Economy Index","url":"https://index.agentexchange.work/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"Agent Exchange","url":"https://agentexchange.work"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"1.0","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"wrong_response","live_responds":false,"last_status_code":200,"last_elapsed_ms":41,"last_error":null},"track_record":{"first_seen":"2026-09-30T06:15:25.109384+00:00","last_checked":"2026-09-30T06:15:25.109384+00:00","last_seen_ok":"2026-09-30T06:15:25.109384+00:00","checks_total":1,"checks_ok":1,"uptime_pct":100.0,"uptime_window_days":30,"uptime_probes":1,"archived":false,"archived_reason":null},"conformance":{"score":47,"grade":"D","summary":"D-grade: significant issues, auth-gated, partially broken, or stale.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":5,"max_points":25,"status":"fail","detail":"Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response."},{"key":"protocol_version","label":"Protocol version","points":10,"max_points":10,"status":"pass","detail":"Declares A2A 1.0 with supportedInterfaces[] (current v1 card shape)."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":0,"max_points":15,"status":"info","detail":"Only 1 probe so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 16 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: Agent Exchange (https://agentexchange.work). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":5,"max_points":5,"status":"pass","detail":"declares 1 modern capability flag(s) (x402); seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":2,"max_points":5,"status":"partial","detail":"Declares 1 security scheme(s) but none use PKCE or mTLS."}]},"card_read":{"findings":[],"clean":true,"source_url":"https://index.agentexchange.work/.well-known/agent-card.json"},"skills":[{"id":"index-latest","name":"Latest daily snapshot","description":"The latest frozen daily snapshot: x402 Bazaar size, sellers, 30-day calls and payers, concentration, category demand, churn; MCP registry size and growth; MCP integrity counts. HTTP 202 while the first snapshot is in progress.","tags":["x402","bazaar","mcp-registry","measurement","free"],"examples":["GET https://index.agentexchange.work/v1/latest.json"],"inputModes":[],"outputModes":[],"securityRequirements":[]},{"id":"index-series","name":"Daily time series","description":"Daily series for one metric key (?key=bazaar.resources&days=90), or every metric when key is omitted (?days=90).","tags":["time-series","measurement","free"],"examples":["GET https://index.agentexchange.work/v1/series.json?key=bazaar.resources&days=90","GET https://index.agentexchange.work/v1/series.json"],"inputModes":[],"outputModes":[],"securityRequirements":[]},{"id":"index-snapshot","name":"One day's snapshot","description":"The frozen snapshot for one day (YYYY-MM-DD, from 2026-09-29).","tags":["measurement","free"],"examples":["GET https://index.agentexchange.work/v1/snapshots/2026-09-29.json"],"inputModes":[],"outputModes":[],"securityRequirements":[]},{"id":"mcp-census","name":"MCP remote census totals","description":"Today's census of every remote server in the MCP registry: probed, answered tools/list, tools fingerprinted, auth required, answering 402, dead or failing, not MCP, servers with flagged descriptions. HTTP 202 until the day's census has started.","tags":["mcp","census","integrity","free"],"examples":["GET https://index.agentexchange.work/v1/census.json"],"inputModes":[],"outputModes":[],"securityRequirements":[]},{"id":"mcp-server","name":"One MCP server: probes, tools, drift, claim","description":"Per-server JSON (daily probes, tool fingerprints with flags, drift events, claim state) by exact registry name. HTML page at /mcp-server/<name>, daily-refreshed SVG badge at /badge/mcp/<name>.svg, RSS of its tool changes at /mcp-server/<name>/changes.xml. 404 when the name was never probed.","tags":["mcp","integrity","badge","free"],"examples":["GET https://index.agentexchange.work/v1/mcp/<registry-name>.json","GET https://index.agentexchange.work/badge/mcp/<registry-name>.svg"],"inputModes":[],"outputModes":[],"securityRequirements":[]},{"id":"mcp-claim","name":"Claim an MCP server for webhook alerts","description":"Operators prove control of a probed server by serving its registry name as the body of https://<their endpoint host>/.well-known/agentexchange-claim.txt, then POST name (plus optional webhook URL and contact) to /v1/mcp/claim as a form or JSON. Claimed servers get one JSON webhook per tool change or new flags (max one per 6 h) and a CLAIMED badge prefix. Public claims list (names, hosts, dates) at /v1/claims.json.","tags":["mcp","claims","webhook","free"],"examples":["POST https://index.agentexchange.work/v1/mcp/claim","GET https://index.agentexchange.work/v1/claims.json"],"inputModes":["application/x-www-form-urlencoded","application/json"],"outputModes":[],"securityRequirements":[]},{"id":"bazaar-hosts","name":"x402 Bazaar sellers by host","description":"Latest day's per-host table (resources, 30-day calls, payers, sellers, median price, rank) and one seller's JSON or HTML page (/seller/<host>).","tags":["x402","bazaar","sellers","free"],"examples":["GET https://index.agentexchange.work/v1/hosts.json","GET https://index.agentexchange.work/v1/seller/<host>.json"],"inputModes":[],"outputModes":[],"securityRequirements":[]},{"id":"dumps","name":"CSV dumps (CC BY 4.0)","description":"Latest daily census of registry servers and every flagged tool description, as CSV.","tags":["csv","open-data","free"],"examples":["GET https://index.agentexchange.work/v1/dump/servers.csv","GET https://index.agentexchange.work/v1/dump/flags.csv"],"inputModes":[],"outputModes":["text/csv"],"securityRequirements":[]},{"id":"changes-rss","name":"RSS of MCP tool changes","description":"Added, removed and mutated tools detected by the daily probes, newest first.","tags":["rss","mcp","free"],"examples":["GET https://index.agentexchange.work/changes.xml"],"inputModes":[],"outputModes":["application/rss+xml"],"securityRequirements":[]},{"id":"conversion","name":"Our own conversion counter","description":"Public daily count of x402 payment challenges issued, calls paid and dollars across Agent Exchange hosts (?day=YYYY-MM-DD).","tags":["x402","transparency","free"],"examples":["GET https://index.agentexchange.work/v1/conversion.json"],"inputModes":[],"outputModes":[],"securityRequirements":[]},{"id":"mcp-tools","name":"MCP tools index_latest and index_series","description":"The snapshot and the series as MCP tools over Streamable HTTP: JSON-RPC 2.0 by POST, protocol 2025-06-18, no authentication.","tags":["mcp","streamable-http","free"],"examples":["POST https://index.agentexchange.work/mcp {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}"],"inputModes":[],"outputModes":[],"securityRequirements":[]},{"id":"paid-v1-pro-resources","name":"/v1/pro/resources.json (x402, $0.10 per call)","description":"Every paid x402 resource on a given day with host, seller wallet, price, 30-day calls and unique payers, and capability category. 1,000 rows per page (?day=&category=&page=). Paid route: an unpaid GET answers HTTP 402 with x402 payment requirements; pay $0.10 in USDC on Base (eip155:8453) and retry with the payment header. No API key, no account.","tags":["paid","x402","usdc","base"],"examples":["GET https://index.agentexchange.work/v1/pro/resources.json"],"inputModes":[],"outputModes":[],"securityRequirements":[{"x402":[]}]},{"id":"paid-v1-pro-sellers","name":"/v1/pro/sellers.json (x402, $0.10 per call)","description":"Per-seller table for a day: host, wallet, resources, 30-day calls, payers, median price; the retention view of the agent economy (?day=). Paid route: an unpaid GET answers HTTP 402 with x402 payment requirements; pay $0.10 in USDC on Base (eip155:8453) and retry with the payment header. No API key, no account.","tags":["paid","x402","usdc","base"],"examples":["GET https://index.agentexchange.work/v1/pro/sellers.json"],"inputModes":[],"outputModes":[],"securityRequirements":[{"x402":[]}]},{"id":"paid-v1-pro-new","name":"/v1/pro/new.json (x402, $0.05 per call)","description":"Resources and seller wallets that appeared or disappeared between the last two snapshots, with categories and prices. Paid route: an unpaid GET answers HTTP 402 with x402 payment requirements; pay $0.05 in USDC on Base (eip155:8453) and retry with the payment header. No API key, no account.","tags":["paid","x402","usdc","base"],"examples":["GET https://index.agentexchange.work/v1/pro/new.json"],"inputModes":[],"outputModes":[],"securityRequirements":[{"x402":[]}]},{"id":"paid-v1-pro-registry","name":"/v1/pro/registry.json (x402, $0.05 per call)","description":"Full MCP registry snapshot for a day: every server name and its remote endpoint URL (?day=&page=). Paid route: an unpaid GET answers HTTP 402 with x402 payment requirements; pay $0.05 in USDC on Base (eip155:8453) and retry with the payment header. No API key, no account.","tags":["paid","x402","usdc","base"],"examples":["GET https://index.agentexchange.work/v1/pro/registry.json"],"inputModes":[],"outputModes":[],"securityRequirements":[{"x402":[]}]},{"id":"paid-v1-pro-observations","name":"/v1/pro/observations.json (x402, $0.05 per call)","description":"Signed-agent observations at our edge for a day: user-agent family, Web Bot Auth key ids, Cloudflare verified-bot category, ASN, country, path class, counts (?day=). Paid route: an unpaid GET answers HTTP 402 with x402 payment requirements; pay $0.05 in USDC on Base (eip155:8453) and retry with the payment header. No API key, no account.","tags":["paid","x402","usdc","base"],"examples":["GET https://index.agentexchange.work/v1/pro/observations.json"],"inputModes":[],"outputModes":[],"securityRequirements":[{"x402":[]}]}],"provenance":[{"source":"manifests","first_seen":"2026-09-30T06:15:25.109384+00:00"}],"recent_probes":[{"fetched_at":"2026-09-30T06:15:25.109384+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":41,"live_responds":false}],"catalog_attestation":null,"operator_revenue_evidence":{"evidence_class":"operator_submitted","authenticity":{"rung":"no_operator_evidence","rank":0,"why":"No verifiable operator evidence has been submitted for this agent.","thresholds":{"min_independent_payers":3,"min_verified_usd":25.0},"engine_table":"agent_authenticity","merge_rule":"max(existing_rank, rank)"},"metric_metadata":{"provenance":"operator_submitted_evidence","confidence":"attested","coverage":{"numerator":0},"as_of":"2026-09-30T07:59:16.056788+00:00","definition":"Revenue proofs submitted by the verified owner and re-checked by Agenstry against the settlement chain or the operator's own Stripe account. Only independently confirmed proofs are counted."},"counts":{"retained":0,"verified":0,"unverifiable":0},"verified":{"gross_usd":0.0,"transactions":0,"independent_payers":0},"detail_url":"https://agenstry.com/api/agents/index.agentexchange.work/evidence","dispute_url":"https://agenstry.com/agents/index.agentexchange.work/dispute"},"verification_history":[],"signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYWdlbnN0cnkuY29tLy53ZWxsLWtub3duL2p3a3MuanNvbiIsImtpZCI6ImFnZW50ZmluZGVyLWVzMjU2LTEiLCJ0eXAiOiJKT1NFIn0","signature":"j0WD7JSjl2U94UfHhCOZEl3X3a4uVfKFl8CUoTPDeYrw_aB_CxeODrtwYmzL2OOqa5qyt3YsrqmiSeSxgWDdaw"}]}