{
  "schema": "csoai.population-door/0.1",
  "kind": "preview",
  "id": "stablecoins",
  "title": "Stablecoin universe",
  "population": "one row per stablecoin asset in the frozen discovery universe, with each reader's per-chain deployment reads and every unmeasured asset's own reason",
  "state": "INDEXED",
  "n": 425,
  "n_unit": "assets catalogued in the frozen universe (not supply, not a sum)",
  "as_of": "2026-09-16T12:06:54Z",
  "source": [
    "/interop/stablecoin-corpus-index-2026-09-16.json"
  ],
  "reason": null,
  "unmeasured": [],
  "head": {
    "index_schema": "csoai.stablecoin-corpus-index/0.1",
    "assets_with_at_least_one_measured_deployment": 302,
    "still_unmeasured": 123,
    "by_reader": {
      "evm": {
        "file": "/interop/stablecoin-universe-supply-2026-09-16.json",
        "measured_assets": 283,
        "chains": {
          "ethereum": 199,
          "bsc": 15,
          "polygon": 10,
          "avax": 8,
          "base": 9,
          "celo": 15,
          "optimism": 4,
          "hyperliquid": 8,
          "arbitrum": 9,
          "rsk": 6
        },
        "identification": "symbol() confirmed on chain"
      },
      "solana": {
        "file": "/interop/stablecoin-solana-supply-2026-09-16.json",
        "measured_assets": 19,
        "slot": 447515169,
        "identification": "UNCONFIRMED_ONCHAIN — an SPL mint carries no symbol() to call"
      }
    },
    "disjointness_checked": {
      "overlapping_asset_ids": [],
      "result": "disjoint",
      "why_it_is_checked": "Two sets may only be added when nothing is in both. That is a claim, so it is tested here and the union is refused if it fails, rather than assumed."
    },
    "not_a_supply_total": "This counts ASSETS with at least one measured deployment. It is not a sum of supply: the universe mixes peg currencies, and one asset may be deployed on several chains, so a sum would mix units or double-count a bridged token.",
    "identification": "catalogued: presence in the frozen discovery index; a measured deployment is a totalSupply()/getTokenSupply read at a named block by one of the two readers — never a reserve, never backing, never a grade"
  },
  "manifest": "https://councilof-ai.pages.dev/api/pop/stablecoins/manifest",
  "buy": {
    "resource": "https://councilof-ai.pages.dev/api/pop/stablecoins",
    "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."
  }
}