Settlement-verified demand for x402 endpoints: for each indexed seller address we read the
Settlement-verified demand for x402 endpoints: for each indexed seller address we read the USDC Transfer logs on Base over a 24h window and count only transfers whose amount equals a price that address actually lists, giving real paid-call counts, DISTINCT PAYER counts and USD/day per seller. Use it to tell a service with real multi-customer demand from one whose operator is paying themselves, before you depend on it. Includes each seller's ratio of on-chain payments to the provider-reported call count.
$0.02
price
—
calls / 30d
—
unique payers
2026-09-22
updated
Provider
Quietforge Docs API · verified
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x3F5115236f25618c16021E983acaAF2CAaa1A35e",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "20000",
"amountUsd": 0.02,
"maxTimeoutSeconds": 300
}
]Output schema
{
"type": "object",
"properties": {
"generated_at": {
"type": "string"
},
"window_hours": {
"type": "number"
},
"chain": {
"type": "string"
},
"asset": {
"type": "string"
},
"method": {
"type": "string",
"description": "how a transfer is classified as an x402 payment"
},
"known_limitation": {
"type": "string"
},
"attribution": {
"type": "string"
},
"totals": {
"type": "object",
"properties": {
"addresses_scanned": {
"type": "integer"
},
"sellers_with_payment": {
"type": "integer"
},
"payments": {
"type": "integer"
},
"usd": {
"type": "number"
}
}
},
"total": {
"type": "integer"
},
"count": {
"type": "integer"
},
"sellers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"pay_to": {
"type": "string"
},
"payments": {
"type": "integer",
"description": "confirmed x402 payments in the window"
},
"distinct_payers": {
"type": "integer",
"description": "distinct paying addresses -- separates real customers from operator self-traffic"
},
"usd": {
"type": "number"
},
"usd_per_day": {
"type": "number"
},
"cdp_calls_per_day": {
"type": [
"number",
"null"
],
"description": "provider-reported call rate, for comparison"
},
"onchain_over_cdp": {
"type": [
"number",
"null"
],
"description": "ratio of settlement-verified payments to provider-reported calls"
},
"services": {
"type": "array",
"items": {
"type": "string"
}
},
"listed_prices_usd": {
"type": "array",
"items": {
"type": "number"
}
}
}
}
}
},
"required": [
"generated_at",
"totals",
"total",
"count",
"sellers"
]
}Example shape (generated from the schema above — not a captured live response)
{
"generated_at": "string",
"window_hours": 0,
"chain": "string",
"asset": "string",
"method": "string",
"known_limitation": "string",
"attribution": "string",
"totals": {
"addresses_scanned": 0,
"sellers_with_payment": 0,
"payments": 0,
"usd": 0
},
"total": 0,
"count": 0,
"sellers": [
{
"pay_to": "string",
"payments": 0,
"distinct_payers": 0,
"usd": 0,
"usd_per_day": 0,
"cdp_calls_per_day": 0,
"onchain_over_cdp": 0,
"services": [
"string"
],
"listed_prices_usd": [
0
]
}
]
}Use it
curl
curl "https://qf-api.quietforge-studio.workers.dev/v1/x402/demand" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://qf-api.quietforge-studio.workers.dev/v1/x402/demand");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://qf-api.quietforge-studio.workers.dev/v1/x402/demand")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/16023.json, and this resource appears in /discovery/resources and /discovery/search.