{
  "schema": "csoai.population-door/0.1",
  "kind": "preview",
  "id": "a2a",
  "title": "A2A agent registry population",
  "population": "the agents enumerable without a credential from the public A2A registry frame, counted within that frame, with the estate's own A2A directory-listing state reported beside it",
  "state": "INDEXED",
  "n": 391,
  "n_unit": "distinct agents in the a2aregistry-org frame (one frame; not a global count)",
  "as_of": "2026-09-17T05:48:05Z",
  "source": [
    "/interop/agent-population-2026-09-17.json",
    "/interop/a2a-directories.json"
  ],
  "reason": null,
  "unmeasured": [
    "per-agent rows: the census artifact publishes frame counts, page hashes and overlap, not a row per agent"
  ],
  "head": {
    "frame": {
      "source": "a2aregistry-org",
      "state": "ENUMERATED_COMPLETE",
      "pages_walked": 4,
      "items_returned": 391,
      "distinct_keys": 391,
      "duplicates_in_source": 0,
      "seconds": 2.7,
      "credential_required": false,
      "note": "Returns 403 to a request with no User-Agent. Permissionless only if you send one."
    },
    "totals": {
      "x402-cdp-bazaar": 15742,
      "x402-payai-bazaar": 25491,
      "mcp-official-registry": 32670,
      "a2aregistry-org": 391
    },
    "on_the_figure_750000": "A figure of 750,000 A2A agents was circulating when this was built. We searched for a published source and found none: no crawl, no method, no denominator. The largest independently measured A2A population we could find is in the hundreds, and this census counts the same order. We record the discrepancy rather than repeating the figure.",
    "what_this_is_not": [
      "Not a global count of anything. Each row is a count WITHIN a named frame, and the frame is the source.",
      "Not a measurement of those agents. Appearing in a registry says nothing about whether the agent works.",
      "Not a total. Sources overlap, and the overlap is published rather than assumed to be zero."
    ],
    "our_listing_state": {
      "path": "/interop/a2a-directories.json",
      "as_of": "20260905T185400Z",
      "directories": 3,
      "totals": {
        "directories_probed": 3,
        "real_directories": 1,
        "listed": 1,
        "index_declared_total": 370,
        "agents_scanned": 370,
        "pages_fetched": 8,
        "page_size": 50,
        "ours_in_index": 1,
        "agents_on_1_x": 93,
        "healthy": 363,
        "protocol_versions": {
          "0.3": 17,
          "0.3.0": 227,
          "1.0": 83,
          "1.0.0": 8,
          "2.0": 1,
          "unknown": 26,
          "1.0.1": 1,
          "9.3.5": 1,
          "1.2": 1,
          "2025-06-27": 1,
          "0.2.5": 2,
          "0.2.0": 2
        },
        "note": "Counts are DERIVED by paginating to the index's OWN declared total (the `total` field it returns beside `limit` and `offset`), not by reading one page. They are not typed."
      }
    },
    "identification": "an agent is counted because the registry returned it on an unauthenticated full walk; nothing is measured about the agent"
  },
  "manifest": "https://councilof-ai.pages.dev/api/pop/a2a/manifest",
  "buy": {
    "resource": "https://councilof-ai.pages.dev/api/pop/a2a",
    "how": "GET the resource → 402 → pay accepts[] (x402) → retry with X-PAYMENT",
    "catalog": "https://councilof-ai.pages.dev/api/x402",
    "all_doors": [
      "https://councilof-ai.pages.dev/api/pop/stablecoins",
      "https://councilof-ai.pages.dev/api/pop/swift",
      "https://councilof-ai.pages.dev/api/pop/xrpl",
      "https://councilof-ai.pages.dev/api/pop/x402-bazaar",
      "https://councilof-ai.pages.dev/api/pop/mcp-registry",
      "https://councilof-ai.pages.dev/api/pop/a2a",
      "https://councilof-ai.pages.dev/api/pop/ots-proofs",
      "https://councilof-ai.pages.dev/api/pop/layer0",
      "https://councilof-ai.pages.dev/api/pop/corrections",
      "https://councilof-ai.pages.dev/api/pop/claim-watch"
    ]
  },
  "rail": {
    "mode": "live",
    "pay_to_configured": true,
    "facilitator_configured": true,
    "note": "A settled receipt (facilitator /verify then /settle) unlocks the paid artefact. Verification of every artefact stays free."
  }
}