{
  "schema": "csoai.x402-catalog/0.3",
  "one_line": "Verification is free forever. Agents pay per artefact: issuance, assembly, cadence — never a grade.",
  "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.",
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": {
      "symbol": "USDC",
      "contract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "decimals": 6
    },
    "pay_to": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
    "amounts": "only inside each resource's 402 challenge (accepts[].amount) — never on this catalog, never in prose",
    "well_known": "https://councilof-ai.pages.dev/.well-known/x402.json",
    "offer_receipt": {
      "emission": "conditional",
      "board_signing_key_configured": true,
      "facilitator_configured": true,
      "offers": "signed only when BOARD_SIGN_KEY_PKCS8_B64 is provisioned and an accepts[] entry can be committed; otherwise csoai.offer_receipt names the gap and no offer-receipt block is attached",
      "receipts": "signed only after facilitator-confirmed settlement when the facilitator names a payer and BOARD_SIGN_KEY_PKCS8_B64 is provisioned; otherwise receiptGap names why no signed receipt was attached",
      "format": "jws (EdDSA)",
      "kid": "did:web:csoai.org#board-attestation-1",
      "spec_commit": "69652a69798f0b08f95bef33318896e36e210f7e",
      "verify_free": "https://councilof-ai.pages.dev/api/receipts/verify",
      "verify_without_us": "https://councilof.ai/verifier/verify_receipt.py — checks JWS bytes under the public or retained DID key; no payment verification; guide https://councilof.ai/verifier/receipt-toolkit.md",
      "by_payer": "https://councilof-ai.pages.dev/api/receipts?payer=0x…"
    }
  },
  "resources": [
    {
      "id": "free_door",
      "name": "Free board + public-root discovery door",
      "resource": "https://councilof-ai.pages.dev/api/free-door",
      "free_preview": "https://councilof-ai.pages.dev/api/free-door",
      "deliverable": "The live GSPC board totals and public signed root through a genuine x402 challenge whose amount is zero.",
      "never": [
        "a paid artefact",
        "a grade",
        "a rank",
        "a certificate"
      ]
    },
    {
      "id": "issuance",
      "name": "Commission a signed card (request-attestation)",
      "resource": "https://councilof-ai.pages.dev/api/request-attestation?subject=<id>&axis=<slug>",
      "free_preview": "https://councilof-ai.pages.dev/api/request-attestation?subject=<id>",
      "free_preview_note": "the 402 body carries csoai.preview: signed cards already on file",
      "deliverable": "A signed card-v0 commission receipt for one named subject, plus every already-signed measurement card on file for it. Payment never mints a MEASURED cell.",
      "never": [
        "a score",
        "a rank",
        "a certificate",
        "a MEASURED cell minted by payment"
      ]
    },
    {
      "id": "evidence_bundle",
      "name": "Evidence bundle mapped to an obligation",
      "resource": "https://councilof-ai.pages.dev/api/evidence-bundle?obligation=article-50|article-53|dora|cra&subject=<model-id>&bundle=1",
      "free_preview": "https://councilof-ai.pages.dev/api/evidence-bundle?obligation=<dora|cra|article-50|article-53>&subject=<model-id>",
      "deliverable": "An OSCAL 1.1.0 assessment-results bundle of already-signed CSOAI cards, mapped to one named obligation. Not a conformity determination.",
      "never": [
        "a conformity determination",
        "satisfied/not-satisfied findings",
        "a certificate"
      ]
    },
    {
      "id": "data_feed",
      "name": "Signed data feed (assembly + cadence)",
      "resource": "https://councilof-ai.pages.dev/api/eunomia-data?feed=1",
      "free_preview": "https://councilof-ai.pages.dev/api/eunomia-data",
      "deliverable": "A signed JSON feed of enforcement and measurement artefacts already on the public root. Data only — no scores, no ranking.",
      "never": [
        "scores as a product",
        "a ranking",
        "a rating"
      ],
      "also": {
        "proof_bundle": "https://councilof-ai.pages.dev/api/proof?bundle=1",
        "one_inclusion_free": "https://councilof-ai.pages.dev/api/proof?sha=<64-hex>"
      }
    },
    {
      "id": "proof_bundle",
      "name": "Public-root inclusion-proof bundle",
      "resource": "https://councilof-ai.pages.dev/api/proof?bundle=1",
      "free_preview": "https://councilof-ai.pages.dev/api/proof?sha=<64-hex>",
      "free_preview_note": "one inclusion proof is free for any leaf in the current public root",
      "deliverable": "Inclusion proof bundle for leaves available in the last published Merkle root, with leaf hashes, indexes, proof paths, the Merkle root and signed card count. Not a grade.",
      "never": [
        "a grade",
        "a rank",
        "a certificate",
        "a private evidence claim"
      ]
    },
    {
      "id": "rwa_evidence",
      "name": "XRPL asset evidence card (per request)",
      "resource": "https://councilof-ai.pages.dev/api/rwa/evidence?asset=<symbol|issuer_address>",
      "free_preview": "https://councilof-ai.pages.dev/api/rwa/evidence?asset=<symbol>&preview=1",
      "free_preview_note": "unsigned state, no raw-fetch hashes; symbols at /api/xrpl",
      "deliverable": "A signed XRPL evidence card: AccountRoot flags, Domain, two-way TOML check, and cited raw-fetch hashes. Historical state — not a rating or a guarantee.",
      "never": [
        "a rating",
        "a guarantee",
        "a verdict",
        "a rank",
        "a paywall on /api/xrpl or /root.json"
      ]
    },
    {
      "id": "wrapper_parity",
      "name": "Wrapped-asset parity card (per pair)",
      "resource": "https://councilof-ai.pages.dev/api/wrapper?id=<wrapped-symbol:chain>",
      "free_preview": "https://councilof-ai.pages.dev/api/wrapper?id=<wrapped-symbol:chain>&preview=1",
      "free_preview_note": "unsigned state, no raw-read hashes; pair ids in /interop/wrapped-asset-parity-2026-09-13.json",
      "deliverable": "A signed wrapped-asset parity card: wrapped totalSupply on its chain and the canonical token's bridge-escrow balance on the origin chain at pinned finalized blocks, raw reads sha256'd, BigInt ratio. A read — not a rate, a grade or a reserve attestation.",
      "never": [
        "a rating",
        "a guarantee",
        "a verdict",
        "a rank",
        "a reserve attestation",
        "a paywall on the free ledger or /root.json"
      ]
    },
    {
      "id": "wrapper_changes",
      "name": "Wrapped-asset change feed (per pair)",
      "resource": "https://councilof-ai.pages.dev/api/wrapper/changes?id=<wrapped-symbol:chain>",
      "free_preview": "https://councilof-ai.pages.dev/api/wrapper/changes?id=<wrapped-symbol:chain>&preview=1",
      "free_preview_note": "delta of wrapped supply and escrow since the previous ledger snapshot; pair ids in /interop/wrapped-asset-parity-*.json",
      "deliverable": "Delta of wrapped supply and escrow between two ledger snapshots. A diff — not a rate, a grade or a reserve attestation.",
      "never": [
        "a rating",
        "a guarantee",
        "a verdict",
        "a rank",
        "a reserve attestation",
        "a paywall on the free ledger or /root.json"
      ]
    },
    {
      "id": "fresh_capsule",
      "name": "Fresh measurement capsule (one MCP endpoint, one claim)",
      "resource": "https://councilof-ai.pages.dev/api/measurement/fresh-capsule?endpoint=<https-mcp-url>&dimension=<TOOLS|VERSION|PROTOCOL>",
      "free_preview": "https://councilof-ai.pages.dev/api/measurement/fresh-capsule?endpoint=<https-mcp-url>&dimension=TOOLS&preview=1",
      "free_preview_note": "the same measurement, unsigned and without source digests; verification (MCP verify_capsule, server_evidence) stays free",
      "deliverable": "One csoai.measurement-capsule/0.2: the endpoint's own discovery documents vs its live initialize + tools/list answer for one dimension, CONSISTENT / INCONSISTENT / UNCHECKABLE, sha256 of every read, board signature pinning the capsule id. Read before settle.",
      "never": [
        "a rating",
        "a guarantee",
        "a verdict",
        "a rank",
        "an endorsement",
        "a certificate",
        "a call beyond the discovery boundary"
      ]
    },
    {
      "id": "art50_marking_evidence",
      "name": "Article 50 machine-readable marking evidence",
      "resource": "https://councilof-ai.pages.dev/api/art50/marking-evidence?url=<https-output-url>",
      "free_preview": "https://councilof-ai.pages.dev/api/art50/marking-evidence?url=<https-output-url>&preview=1",
      "free_preview_note": "the same point-in-time detection is returned unsigned before purchase",
      "deliverable": "A signed card recording whether named methods detected a machine-readable mark in one named output at one time.",
      "never": [
        "a conformity opinion",
        "a guarantee about the generator",
        "a certificate",
        "legal advice"
      ]
    },
    {
      "id": "provider_diff_feed",
      "name": "Provider document diff feed (signed historical batch / bespoke partner feed)",
      "resource": "https://councilof-ai.pages.dev/api/feeds/provider-diff?history=1",
      "free_preview": "https://councilof-ai.pages.dev/api/feeds/provider-diff",
      "free_preview_note": "recent diffs + latest state per target, free; leaves in /feeds/provider-diff/leaves/",
      "deliverable": "Every hash-only provider-document diff leaf to date, each with its inclusion proof to the signed root. Hashes only — no page content, no verdict.",
      "never": [
        "a verdict on any change",
        "the content of any page (never captured)",
        "a grade"
      ]
    },
    {
      "id": "receipts_batch",
      "name": "Historical measurement-card batch (assembly)",
      "resource": "https://councilof-ai.pages.dev/api/receipts/batch?from=<iso>&to=<iso>",
      "free_preview": "https://councilof-ai.pages.dev/api/receipts/batch?from=<iso>&to=<iso>&preview=1",
      "free_preview_note": "count, span, root count and the sha256 of the exact batch bytes — no leaves",
      "deliverable": "Historical measurement-card batch from published roots for a requested time window, capped at 200 leaves, with inclusion paths and carrying roots. Not payment or settlement receipts.",
      "recent_free": [
        "https://councilof-ai.pages.dev/root.json",
        "https://councilof-ai.pages.dev/cards/<sha16>.json",
        "https://councilof-ai.pages.dev/api/proof?sha=<64-hex>",
        "https://councilof-ai.pages.dev/receipts/root-history.json"
      ],
      "honesty": "no settlement-receipt stream exists (/api/receipts/latest is UNPUBLISHED); these are measurement leaves, not payment receipts",
      "never": [
        "a conclusion about any leaf",
        "a grade",
        "a certificate",
        "a settlement-receipt claim"
      ]
    },
    {
      "id": "ras_mcp_probe",
      "name": "MCP discovery probe (per endpoint)",
      "resource": "https://councilof-ai.pages.dev/api/ras/mcp-probe?url=<https-mcp-endpoint>",
      "deliverable": "MCP discovery probe receipt — one live read-only discovery of a public https MCP endpoint (server/discover, else initialize + tools/list; no tool is ever called): state, requested vs negotiated protocol version, tool count and tool-names sha256, Ed25519-signed. A probe, not a grade.",
      "free_preview": "https://councilof-ai.pages.dev/evidence/mcp-remote-census/",
      "verify_free": "https://councilof-ai.pages.dev/api/verify",
      "never": [
        "a tool call",
        "a grade",
        "a rank",
        "a safety judgement",
        "a certificate",
        "a board cell"
      ]
    },
    {
      "id": "ras_x402_check",
      "name": "x402 challenge conformance check (per resource)",
      "resource": "https://councilof-ai.pages.dev/api/ras/x402-check?url=<https-x402-resource>",
      "deliverable": "x402 challenge conformance receipt — one live GET of a public x402 resource scored by the daily census rule (HTTP 402, PAYMENT-REQUIRED header, x402Version 2 and extensions.bazaar in the body), Ed25519-signed. A non-conformant result is delivered as found.",
      "free_preview": "https://councilof-ai.pages.dev/api/x402/index",
      "verify_free": "https://councilof-ai.pages.dev/api/verify",
      "daily_index_free": "https://councilof-ai.pages.dev/api/x402/index",
      "never": [
        "a payment to the target",
        "a judgement of the seller",
        "a grade",
        "a certificate"
      ]
    },
    {
      "id": "ras_supply",
      "name": "Token supply read with state proof (per deployment)",
      "resource": "https://councilof-ai.pages.dev/api/ras/supply?asset=<USDC>&ledger=<evm-ledger-on-issuer-list>",
      "deliverable": "Token supply read receipt — one fresh totalSupply() read of an issuer-listed EVM deployment (USDC, address parsed from the issuer page on the request); on Ethereum the EIP-1186 storage proof is checked against the block stateRoot, elsewhere it is labelled OPERATOR_API. Not a reserve attestation.",
      "free_preview": "https://councilof-ai.pages.dev/evidence/cross-ledger-usdc/",
      "verify_free": "https://councilof-ai.pages.dev/api/verify",
      "never": [
        "a reserve attestation",
        "a proof of backing",
        "a rate",
        "a grade",
        "a certificate"
      ]
    },
    {
      "id": "pop_stablecoins",
      "name": "Population slice: Stablecoin universe",
      "resource": "https://councilof-ai.pages.dev/api/pop/stablecoins",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/stablecoins?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "Stablecoin universe slice — every asset the frozen discovery index catalogues, with each reader's per-chain deployment reads and every unmeasured asset's own reason. Assets, never supply; a read, not a reserve attestation.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    },
    {
      "id": "pop_swift",
      "name": "Population slice: SWIFT-linked bank census",
      "resource": "https://councilof-ai.pages.dev/api/pop/swift",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/swift?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "SWIFT-linked bank census slice — every bank named in a dated public notice about the Swift digital-asset MVP, in its notice's own state (LIVE, COMMITTED, DISCOVERED). Mixed identity by design; never a client list.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    },
    {
      "id": "pop_xrpl",
      "name": "Population slice: XRPL issued-asset set",
      "resource": "https://councilof-ai.pages.dev/api/pop/xrpl",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/xrpl?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "XRPL issued-asset slice — the assets whose signed xrpl.asset.state card sits on the current public root, from the live reader, with the issuer registry artifact beside it. A read, not a rating.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    },
    {
      "id": "pop_x402-bazaar",
      "name": "Population slice: x402 Bazaar listings",
      "resource": "https://councilof-ai.pages.dev/api/pop/x402-bazaar",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/x402-bazaar?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "x402 Bazaar listings slice — the payable resources the two public discovery indexes catalogue, counted within each frame with the overlap published, plus the estate's own door census. Appearing in an index is not delivery.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    },
    {
      "id": "pop_mcp-registry",
      "name": "Population slice: MCP registry listings",
      "resource": "https://councilof-ai.pages.dev/api/pop/mcp-registry",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/mcp-registry?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "MCP registry listings slice — every server name the estate publishes in the official registry, classified on its latest version, with the registry's full-walk census and the effect-binding server probe's counts. Distribution, not adoption.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    },
    {
      "id": "pop_a2a",
      "name": "Population slice: A2A agent registry population",
      "resource": "https://councilof-ai.pages.dev/api/pop/a2a",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/a2a?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "A2A registry population slice — the agents enumerable without a credential from the public A2A registry frame, with the estate's own directory-listing state. A frame count, not a global count.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    },
    {
      "id": "pop_ots-proofs",
      "name": "Population slice: OpenTimestamps proof manifest",
      "resource": "https://councilof-ai.pages.dev/api/pop/ots-proofs",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/ots-proofs?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "OpenTimestamps proof manifest slice — every published .ots proof of an estate artifact with the state its bytes were read into (Bitcoin-attested, calendar-pending, subject absent). A pending proof is not anchored.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    },
    {
      "id": "pop_layer0",
      "name": "Population slice: Layer-0 machine-surface ceremony",
      "resource": "https://councilof-ai.pages.dev/api/pop/layer0",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/layer0?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "Layer-0 ceremony slice — every rail and probe of the estate's own machine surface at the ceremony's as_of with the HTTP status returned, and the ceremony artifact's .ots state. Self-attestation, dated.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    },
    {
      "id": "pop_corrections",
      "name": "Population slice: Corrections ledger, full history",
      "resource": "https://councilof-ai.pages.dev/api/pop/corrections",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/corrections?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "Corrections ledger slice, full history — every published correction (what was wrong, how it was caught, the fix, dated) with a per-entry content digest. The free /api/corrections stays free; this meters the assembled slice.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    },
    {
      "id": "pop_claim-watch",
      "name": "Population slice: Claim-maintenance registries",
      "resource": "https://councilof-ai.pages.dev/api/pop/claim-watch",
      "free_preview": "https://councilof-ai.pages.dev/api/pop/claim-watch?preview=1",
      "free_preview_note": "state, n, as_of, source paths and caveats, read from the artifact on the request; the source artifacts themselves are free files",
      "deliverable": "Claim-maintenance registries slice — each published registry of a vendor's public claims (captured verbatim, hashed, source-cited, each with a measurement plan) with the file's digest, digest-reproducibility and .ots state read from bytes. CLAIM_CAPTURED, never a claim of falsity.",
      "never": [
        "a grade",
        "a rank",
        "a verdict about any row",
        "a paywall on the source artifact",
        "a certificate"
      ]
    }
  ],
  "free_forever": [
    "https://councilof-ai.pages.dev/gspc-verify",
    "https://councilof-ai.pages.dev/api/gspc",
    "https://councilof-ai.pages.dev/root.json",
    "https://councilof-ai.pages.dev/api/fines",
    "https://councilof-ai.pages.dev/api/proof?sha=<64-hex>",
    "https://councilof-ai.pages.dev/api/witness/status?sha256=<64-hex>",
    "https://councilof-ai.pages.dev/api/receipts/batch?from=<iso>&preview=1",
    "https://councilof-ai.pages.dev/receipts/root-history.json",
    "https://councilof-ai.pages.dev/api/commissions",
    "https://councilof-ai.pages.dev/methodology",
    "https://councilof-ai.pages.dev/api/verify?record_url=<https-councilof-record-url>",
    "https://councilof-ai.pages.dev/api/x402/index"
  ],
  "mcp": {
    "url": "https://councilof-ai.pages.dev/mcp",
    "free_tools": [
      "board_totals",
      "get_axis",
      "verify_card",
      "list_cards",
      "get_root",
      "get_card",
      "verify_inclusion",
      "x402_trust",
      "mcp_trust",
      "measurement_index",
      "verify_capsule",
      "server_evidence"
    ],
    "paid_tools": [
      {
        "name": "commission_card",
        "route": "https://councilof-ai.pages.dev/api/request-attestation",
        "sells": "issuance"
      },
      {
        "name": "art50_marking_evidence",
        "route": "https://councilof-ai.pages.dev/api/art50/marking-evidence",
        "sells": "issuance",
        "note": "deployed; the tool still answers NOT_DEPLOYED on any origin where the route 404s"
      },
      {
        "name": "rwa_evidence",
        "route": "https://councilof-ai.pages.dev/api/rwa/evidence",
        "sells": "issuance",
        "note": "deployed; the tool still answers NOT_DEPLOYED on any origin where the route 404s"
      },
      {
        "name": "receipts_batch",
        "route": "https://councilof-ai.pages.dev/api/receipts/batch",
        "sells": "assembly"
      }
    ],
    "how": "tools/call without x_payment → the route's 402 challenge per the x402 MCP transport (isError:true; structuredContent carries x402Version, accepts[], resource); pay from your wallet; call again with x_payment. Payment travels as the x_payment ARGUMENT and this door sets the X-PAYMENT header itself, so carrying a paid tool is a packaging choice, never a property of the transport. Every paid tool is measurement, not certification — no tool carries or awards a trust label of any kind. The catalogue (tools/list) is free."
  },
  "invariants": {
    "measurement_not_certification": "CSOAI LTD (UK 16939677) is an independent measurement body. It issues measurements and signed attestations, never certificates of conformity.",
    "never_a_grade": "No resource sells a grade, a score, a pass/fail verdict, or a place on the board.",
    "recomputable_for_free": "Every artefact is independently recomputable; a buyer pays for issuance, assembly and a durable independent signature — not for the answer.",
    "no_public_price": "Amounts appear only in a 402 challenge.",
    "financial_firewall": "No token, credit, or cash-settled index. Attestation is not tokenisation and confers no ownership."
  },
  "lid": "23 axes measured · 14 model fleets · 0 separated leaders · 9 public leader scores · 9 fact runs · TIE is TIE · not a certificate.",
  "explainer": "https://councilof-ai.pages.dev/pricing",
  "revenue_truth": "https://councilof-ai.pages.dev/api/revenue"
}