Settlement-verified demand for x402 endpoints: for each indexed seller address we read…
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 PA…
by Quietforge Docs API · verified provider · updated 2026-09-22
What it does
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.
Tags: x402 · demand · onchain · due-diligence · agents
Use with an agent
- Discover. Agents find this listing with
GET https://bazaar.saylorinnovations.com/discovery/search?query=…, the MCP toolsearch_resources, or/discovery/resources. - Inspect. Fetch
/resources/16023.jsonfor the price and payment options. - Pay. Call
GET https://qf-api.quietforge-studio.workers.dev/v1/x402/demand. The provider answers402with its payment requirements. An x402 client signs one of the options below and retries withPAYMENT-SIGNATURE. - Execute. The provider returns
200with the data. Agent Bazaar is not in the request path and never sees your payment.
For humans
You don't need an account or an API key; you need a wallet holding a small amount of USDC on Base, and an x402-capable client (see the examples below). Call the endpoint unpaid first to see exactly what it asks for.
Pricing & payment
- Price
- $0.02 / request
- Protocol
- x402 v2
- Auth
- No account or API key. Pay per request.
- Networks
- Base
x402 payment requirements
| Scheme | Network | Asset | Amount | Pay to | Timeout |
|---|---|---|---|---|---|
| exact | Base eip155:8453 | USDC | $0.02 | 0x3F5115236f25618c16021E983acaAF2CAaa1A35e | 300s |
accepts[] (raw JSON)
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x3F5115236f25618c16021E983acaAF2CAaa1A35e",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "20000",
"amountUsd": 0.02,
"maxTimeoutSeconds": 300
}
]Schemas
Output schema (JSON 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, 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
]
}
]
}Examples
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 paidconst 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
}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 headerDetails
- Provider
- Quietforge Docs API
- Endpoint
- https://qf-api.quietforge-studio.workers.dev/v1/x402/demand
- Machine-readable
/resources/16023.json