Skip to page content
SAVRN
Search Plan a project

Dataset · Other

x402-settlement-census

by Council of AI csoai/x402-settlement-census

We paid 316 conformant x402 hosts as an ordinary buyer and recorded what came back. Not a survey of what hosts advertise — a record of what they did when real USDC arrived. Two in three conformant hosts refused a correctly-signed payment.

Rows2,752
Configurations9
Size1.1 MB
Licensecc-by-4.0
AccessPublicly accessible
Monthly Downloads268

Dataset Card

By Council of AI, published under cc-by-4.0, revision df1e8e92b59b.

x402 settlement census — 2026-09-06

We paid 316 conformant x402 hosts as an ordinary buyer and recorded what came back. Not a survey of what hosts advertise — a record of what they did when real USDC arrived.

outcome hosts share
REFUSED 213 67.4%
DELIVERED 100 31.6%
NO_CHALLENGE 2 0.6%
MISMATCH 1 0.3%

Two in three conformant hosts refused a correctly-signed payment. Being listed in a Bazaar index and answering a valid 402 is not the same as taking money and delivering.

Method

Buyer's-eye, exactly as a client experiences it:

  1. GET the resource → 402 + a challenge (v2 header, or v1 body)
  2. sign an EIP-3009 TransferWithAuthorization for accepts[0], with the EIP-712 domain taken from the challenge itself
  3. GET again carrying PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1)
  4. record status, bytes, content-type, latency, and the settlement tx the host reports

The payer never broadcasts a transaction and holds no ETH: the authorisation travels in a header and the host's facilitator submits it and pays gas. That is what EIP-3009 is for.

Caps, enforced in code: 0.05 USDC per host (50000 units), 5.5 USDC total. Actual spend 1.3398 USDC. Hosts asking more than the per-host cap were never contacted. Our own hosts are excluded by name — paying ourselves is a self-settlement, never a purchase.

Beneficiary concentration

174 distinct payTo addresses collect for 314 live doors — and the three largest collect for 91 of them.

payTo hosts
0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E 62
0xFFc458dB291b4ABcE020fE3de4f91F2770E537b1 18
0xEf879BFD6C4AccB8F795136de90246e1EC245e06 11

A directory of many hosts is not a market of many beneficiaries, and a host count cannot show that.

Took a settlement and still refused (13 hosts)

These reported an on-chain settlement in their own PAYMENT-RESPONSE and then answered the retried request with 402/4xx anyway. Money moved; nothing was delivered. Check the chain yourself:

host units settlement tx
api.vibe.airforce 1000 0xe9bba7f8d3e52b5f…
5108-x402.community.iamstarchild.com 2000 0x00aa4923b82a19d1…
agent.api.0x.org 10000 0xddf564dbe6cfb93d…
agents.bytemine.ai 10000 0x9b143a686a7265f4…
linklens-sand.vercel.app 10000 0xb6e0cc06928e709d…
rentcast.x402.paysponge.com 10000 0x05adb3a1be357a1e…
tripadvisor.x402.paysponge.com 10000 0x66cfef13db6641a6…
url-extractor.x402.paysponge.com 10000 0xe8c860ce72c6ef82…
agent-proxy.alchemy.com 20000 0x452d1ba528cbc7ff…
agents.x402stock.xyz 20000 0x4a577262638e4316…
screenshotone.x402.paysponge.com 20000 0x97e33e1d05380a9e…
wolframalpha.x402.paysponge.com 20000 0xce4b39d183145526…
formo.x402.paysponge.com 50000 0xaec93dcc900b7e5c…

What this is NOT

  • Not a ranking or a recommendation. No host was contacted, before or after.
  • REFUSED is not proof of bad faith. A host may rate-limit, require an account, or have changed its terms between the challenge and the retry. From outside, all of those look identical.
  • One purchase per host, at one moment. A single refusal is not a pattern. A second round is what would make it one.
  • Not revenue. Every USDC left our own wallet. Paying anyone is a cost.
  • Not certification, not a conformity mark. Measurement of what happened, and when.

The move_a_self config

A second config records our own eight doors, paid by a wallet we control. It is here so the method can be checked against a case where the answer is known, and it is labelled so nobody mistakes it for demand: a self-settlement is never revenue. /api/revenue one_number stayed 0 throughout and self_settlements rose to 5. Five doors settled (all receipts status 0x1 on Base); three are priced at 250, 25 and 25 USD by design and were not bought — settling all eight would cost about 300 USDC.

Reproduce

SETTLE=1 X402_PAYER_KEY=<throwaway> python3 scripts/grants/x402-settlement-census.py \
  --max-hosts 316 --total-cap 5.5 --out x402-settlement-census-2026-09-06.jsonl

Source population: csoai/x402-bazaar-conformance, hosts that are conformant on eip155:8453 with scheme exact and an amount inside the per-host cap.

The live board is the authority

GET https://councilof.ai/api/gspc — quote totals.public_count. This Hub card is a printer of that GET, never a second engine. If the fetch fails the honest answer is UNCHECKABLE — never a fabricated 0.000. Status words: LOADING / UNREACHABLE / UNMEASURED / UNCHECKABLE.

Lid: 23 axes measured · 14 model fleets · 0 separated leaders · 3 public leader scores · 9 fact runs · TIE is TIE · not a certificate. A public leader score is a published field, not proof of a separated leader; read each row's status and separation.

This repository: NOT A BOARD MEASUREMENT — this repository is a corpus, mirror or door published by CSOAI. It carries no axis score. The measured slots live on the board GET below.

Live board (authority) https://councilof.ai/api/gspc
Verify a card — free, no account https://councilof.ai/gspc-verify
How to verify, by hand https://councilof.ai/signed/HOW-TO-VERIFY.md
Transparency root (Merkle) https://councilof.ai/root.json
DID document https://csoai.org/.well-known/did.json
A2A agent card https://councilof.ai/.well-known/agent-card.json
Every CSOAI repo on the Hub https://huggingface.co/csoai
Methodology DOI https://doi.org/10.5281/zenodo.21991104
MCP endpoint — 16 tools, verified 2026-09-27T05:00:40Z POST https://councilof.ai/mcp
MCP Registry io.github.CSOAI-ORG/gspc — version not pinned here; the registry is the authority
npm — MCP server csoai-gspc-mcp — npx -y csoai-gspc-mcp. No version is pinned here: ask the registry for the current one rather than trusting a number written on a card.
Python reader + card verifier pip install "csoai-gspc[verify]" then csoai-gspc check — re-derives the board totals from the axis array and exits non-zero if they disagree
The board as a dated, citable snapshot https://doi.org/10.5281/zenodo.22293341

What is in this repository

file bytes rows what
x402-settlement-census-2026-09-06.jsonl 188557 316 data (one JSON object per line)
dry/dry-2026-09-24.jsonl 144857 405 data (one JSON object per line)
dry/dry-2026-09-27.jsonl 138391 390 data (one JSON object per line)
dry/dry-2026-09-06.jsonl 113745 321 data (one JSON object per line)
dry/dry-2026-09-26.jsonl 110373 316 data (one JSON object per line)
dry/dry-2026-09-10.jsonl 105907 316 data (one JSON object per line)
dry/dry-2026-09-11.jsonl 102576 288 data (one JSON object per line)
receipts-verified-2026-09-06.json 19843 JSON document
README.md 17210 card
summary-2026-09-06.json 6192 JSON document
x402-move-a-self-2026-09-06.jsonl 5287 10 data (one JSON object per line)
receipts-verified-2026-09-06.summary.json 3652 JSON document
manifest.jsonl 3531 14 derived at 2026-09-27T05:00:40Z
settle-loop/SETTLES-2026-09-22.jsonl 2249 data (one JSON object per line)

manifest.jsonl is derived from this repository's own file tree at 2026-09-27T05:00:40Z; it lists every file with its size, its blob hash and a direct URL, so an agent can enumerate the repo without cloning it.

Citation

@misc{csoai_gspc_x402_settlement_census,
  title        = {x402-settlement-census — Council of AI / GSPC},
  author       = {{CSOAI Ltd}},
  year         = {2026},
  doi          = {10.5281/zenodo.21991104},
  howpublished = {Hugging Face Hub, \url{https://huggingface.co/datasets/csoai/x402-settlement-census}},
  note         = {Live board: https://councilof.ai/api/gspc. Measurement, not certification.}
}

Measurement, not certification. Issued by CSOAI Ltd (England & Wales, Companies House 16939677), 3rd Floor, 86–90 Paul Street, London EC2A 4NE. Card refreshed 2026-09-27T05:00:40Z.

Capability + living GET (TUI7 distribution 2026-09-14)

SUPERSEDED: typed Hub triples LIVE (re-GET /api/hub-cards → counts.*) (and prior 885/900/937/1113/1182/1185) — do not re-paste. Hub cite = live GET only.

Live board: GET https://councilof.ai/api/gspc → quote totals.public_count / totals.lid (22·22·0 derived, never typed as a frozen paste)
Hub cards: GET https://councilof.ai/api/hub-cards → quote counts.cells / counts.measured / counts.unmeasured LIVE (no typed Hub triple)
Hub bank: https://huggingface.co/datasets/csoai/gspc-hub-cards
Free verify: https://councilof.ai/gspc-verify
Discovery: GET https://councilof.ai/.well-known/x402.json (live · Base · USDC)
OX discovery resources: councilof 0/60 honest — do not invent rows
Measurement, never certification. Printer only — no axis mine on ZeroGPU. A100 COLD.

Council of AI — GSPC + Hub printer

  • Living board: https://councilof.ai/api/gspc — quote totals.public_count / totals.lid (never invent MEASURED)
  • Hub cite: https://councilof.ai/api/hub-cards — re-GET; quote counts.* (typed LIVE (re-GET /api/hub-cards → counts.*) SUPERSEDED 2026-09-14)
  • Hub dataset bank: https://huggingface.co/datasets/csoai/gspc-hub-cards
  • Verify free: https://councilof.ai/gspc-verify
  • x402 discovery: https://councilof.ai/.well-known/x402.json
  • Catalog: https://councilof.ai/api/x402
  • Free door (amount 0): https://councilof.ai/api/free-door
  • Jail goldbank: https://huggingface.co/datasets/csoai/gspc-jail-goldbank
  • Human: free + x402 PAYG · Coming—Paddle not live · never Stripe
  • Agents: payTo is merchant receive — never the signer
  • Self-settle proves the rail; stranger revenue is separate (do not invent buyers)
  • Measurement, not certification. Never sell a rank. Never certify.

Any Hub x402.json in a CSOAI printer is a byte-mirror of the living well-known GET — not a second authority.

OpenX402 + free discovery (cite only · never invent OX resource rows)

OpenX402 server: Council of AI · https://councilof.ai · payTo 0x212686404a7d1e1fd88f35ed6200c3af7a78ae31
Servers API: GET https://openx402.ai/api/servers (LIVE row · registered 2026-09-14 · Base tx 0x0eb1ead995e235a2…)
Whitelist: GET https://facilitator.openx402.ai/whitelist/0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31 → whitelisted true
OX discovery resources: GET https://facilitator.openx402.ai/discovery/resources → councilof still 0/60 (no free advertise API; settle-through required — do not invent rows)
Estate well-known: GET https://councilof.ai/.well-known/x402.json → 10 resources · mode live
OpenAPI: https://councilof.ai/openapi.json
Free-door: https://councilof.ai/api/free-door (402 amount 0 · bazaar)
Free crawl: https://councilof.ai/api/feeds/provider-diff (200 JSON · not a paid OX resource)
Catalog: https://councilof.ai/api/x402
Measurement, never certification. Self≠revenue. Never clone PayAI.

Owner: N-Sites spray onto HF leftovers / registry printers. OX discovery stays 0 until settle-through — never invent. Stamp 2026-09-14T03:29Z.

Smithery / MCP door (measured 2026-09-14 — not a certification)

  • Primary free MCP door: https://councilof.ai/mcp — GET 200; tools/list = 12 tools (matches registry tools[] for csoai/gspc-mcp).
  • Smithery primary listing: https://smithery.ai/server/csoai/gspc-mcp · registry https://registry.smithery.ai/servers/csoai/gspc-mcp — deploymentUrl=https://gspc-mcp--csoai.run.tools → GET/POST 401 invalid_token (Smithery auth required). Prefer the public door above; do not treat run.tools as the free door.
  • Stale duplicate: https://smithery.ai/server/csoai/gspc · registry https://registry.smithery.ai/servers/csoai/gspc — tools[] includes phantoms measure|verify|jail-probe|enter-arena (not on live /mcp); deploymentUrl=https://gspc--csoai.run.tools also 401. Prefer archive/unlist; keep only csoai/gspc-mcp.
  • Registry write: PATCH/DELETE need Authorization — no free write without Nick Smithery login (HARD BLOCKER if token absent).
  • Measurement only. Never invent that Smithery was fixed. Never certify.

Signed measurement archive (free cite · never a grade)

Living board: GET https://councilof.ai/api/gspc → 22 axis · 22 measured · lid: 22 axes measured · 14 model fleets · 3 public leader scores · 8 fact runs · TIE is TIE · not a certificate.
Signed card index: GET https://councilof.ai/signed/card_index.json → n_cards=335 · schema csoai.gspc-card-index/0.1
How to verify (stranger): https://councilof.ai/signed/HOW-TO-VERIFY.md
Free verify UI: https://councilof.ai/gspc-verify/
Example SIGNED card: https://councilof.ai/signed/cards/cff1aaf070acb97c224177809856bc20310f4958eb44bdffab7d4b04836535f4.json
Hub census (≠ board ≠ card_index): GET https://councilof.ai/api/hub-cards → 131/131/0
HF printers: https://huggingface.co/datasets/csoai/gspc-hub-cards · https://huggingface.co/datasets/csoai/gspc-jail-goldbank
Supply-led: CSOAI measures public systems independently first; sells delivery/freshness/monitoring/integration/replay/extra compute — never grades or favourable results.
Measurement credential, never certification. Free refresh only.

Owner: N-Sites — free paste onto HF/Kaggle printers. Hub LIVE 131 (kill 1191/1196). card_index n=335. Never invent VC/revenue. Stamp 2026-09-14T10:37Z.

Structure

default 316 rows

SplitRowsSize
train316111.5 KB
hoststringurlstringadvertised_unitsint64indexeslistobserved_attimestamp[s]modestringchallenge_unitsint64x402_versionint64pay_tostringmimestringprobe_sfloat64statusstringpaid_statusint64paid_sfloat64bytesint64content_typestringbody_jsonboolsettle_txstringpayerstringspent_units_runningint64probe_statusint64

dry-2026-09-06 321 rows

SplitRowsSize
train32166.3 KB
hoststringurlstringadvertised_unitsint64indexeslistobserved_attimestamp[s]modestringchallenge_unitsint64x402_versionint64pay_tostringmimestringprobe_sfloat64statusstring

dry-2026-09-10 316 rows

SplitRowsSize
train31664.9 KB
hoststringurlstringadvertised_unitsint64indexeslistobserved_attimestamp[s]modestringchallenge_unitsint64x402_versionint64pay_tostringmimestringprobe_sfloat64statusstringprobe_statusint64

dry-2026-09-11 288 rows

SplitRowsSize
train28862.4 KB
hoststringurlstringadvertised_unitsint64indexeslistobserved_attimestamp[s]modestringchallenge_unitsint64x402_versionint64pay_tostringmimestringprobe_sfloat64statusstringprobe_statusint64

dry-2026-09-24 405 rows

SplitRowsSize
train40588.5 KB
hoststringurlstringadvertised_unitsint64indexeslistobserved_attimestamp[s]modestringchallenge_unitsint64x402_versionint64pay_tostringmimestringprobe_sfloat64statusstringprobe_statusint64

dry-2026-09-26 316 rows

SplitRowsSize
train31667.2 KB
hoststringurlstringadvertised_unitsint64indexeslistobserved_attimestamp[s]modestringchallenge_unitsint64x402_versionint64pay_tostringmimestringprobe_sfloat64statusstringprobe_statusint64

dry-2026-09-27 390 rows

SplitRowsSize
train39084.2 KB
hoststringurlstringadvertised_unitsint64indexeslistobserved_attimestamp[s]modestringchallenge_unitsint64x402_versionint64pay_tostringmimestringprobe_sfloat64statusstringprobe_statusint64

dry-2026-09-28 390 rows

SplitRowsSize
train39083.7 KB
hoststringurlstringadvertised_unitsint64indexeslistobserved_attimestamp[s]modestringchallenge_unitsint64x402_versionint64pay_tostringmimestringprobe_sfloat64statusstringprobe_statusint64

move_a_self 10 rows

SplitRowsSize
train103.6 KB
hoststringurlstringadvertised_unitsint64indexeslistobserved_attimestamp[s]modestringchallenge_unitsint64x402_versionint64pay_tostringmimestringprobe_sfloat64statusstringpaid_statusint64paid_sfloat64bytesint64content_typestringbody_jsonboolsettle_txstringpayerstringspent_units_runningint64probe_statusint64reasonstring

Details

Repository
csoai/x402-settlement-census
Publisher
Council of AI
Task category
Other
Tags
x402, payments, base
Size category
n<1K
Languages
en
Revision
df1e8e92b59be6055039f7f1305933bc9caa5409
Last updated
2026-09-28

Files

16 files, 1.1 MB in total.

Data14 files · 1.1 MB
Documentation1 file · 17.4 KB
Repository1 file · 2.5 KB
Every file
FileTypeSizeSHA-256
dry/dry-2026-09-06.jsonlData113.7 KB—
dry/dry-2026-09-10.jsonlData105.9 KB—
dry/dry-2026-09-11.jsonlData102.6 KB—
dry/dry-2026-09-24.jsonlData144.9 KB—
dry/dry-2026-09-26.jsonlData110.4 KB—
dry/dry-2026-09-27.jsonlData138.4 KB—
dry/dry-2026-09-28.jsonlData137.5 KB—
manifest.jsonlData3.8 KB—
receipts-verified-2026-09-06.jsonData19.8 KB—
receipts-verified-2026-09-06.summary.jsonData3.7 KB—
settle-loop/SETTLES-2026-09-22.jsonlData2.2 KB—
summary-2026-09-06.jsonData6.2 KB—
x402-move-a-self-2026-09-06.jsonlData5.3 KB—
x402-settlement-census-2026-09-06.jsonlData188.6 KB—
README.mdDocumentation17.4 KB—
.gitattributesRepository2.5 KB—

License and Download

License
cc-by-4.0
Access
No access gate
Download from Council of AI

Released by Council of AI through its official repository on Hugging Face. Read the license.