10x402
Verification PAYMENT-READYpayment-ready until 2026-08-27
x402 conformance lint: 75 checks against your live 402 with a specific fix for each finding, plus a separate Bazaar-indexability verdict. Every check cites its source (spec, client code, or CDP validator). The service lints its own 402s in CI and pays over x402 itself (v1+v2 dual-stack). Open source: github.com/chronick/10x402
Pay from $0.01 to $0.25 per request in USDC on Base, settled onchain via the x402 protocol, no signup, no API key needed.
listed 2026-08-20 · no on-chain settlement recorded yet
ASSESSMENT
updated 2h agoEvidence-backed signals, not a single score. Click any chip for the proof. Measured values stay read-only; unknown is honest.
reliability 100%
- uptime 24h
- -
- uptime 7d
- -
- uptime 30d
- -
- uptime 90d
- -
- response p95
- 34ms
- avg response
- 34ms
- total checks
- 1
Measured on the unpaid 402 handshake, not the paid call. A service can 402 correctly and still fail after payment.
compliance A (14/14)
14 of 14 x402 conformance checks pass. Full checklist below.
price $0.01 to $0.25 (p39 in Verification)
- price (min)
- $0.01
- price (max)
- $0.25
- category percentile (min)
- p39 in Verification
- category percentile (max)
- p57 in Verification
- endpoints / prices
- 4 / 4
- model
- tiered
- stability
- 100%
risk clean
No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.
- domain age
- 0d
- registrar
- Cloudflare, Inc.
- hosting
- custom
- domain created
- 2026-08-19
Identity facts, not a risk score.
traction $0.00 30d · 0 buyers
- volume 30d
- $0.00
- buyers 30d
- 0
- settlements 30d
- 0
- measured since
- --- (start of our harvest window)
- last settlement
- ---
- top buyer share
- -
- trend 7d vs 30d
- -
- networks
- eip155:8453
- volume all-time
- $0
- settlements all-time
- 0
- median settlement 30d
- -
- max settlement 30d
- -
- settled via
- -
Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.
Top buyer share is a concentration signal, not part of the ranking score.
WHAT IT DOES
ai-derivedNo AI synthesis has been produced for this service yet.
ENDPOINTS
| METHOD | PATH | DESCRIPTION | PRICE | NETWORK | ASSET | 402 CHANNEL |
|---|---|---|---|---|---|---|
| POST | /lint | $0.25 | Base | USDC | header | |
| POST | /lint/envelope | $0.10 | Base | USDC | header | |
| POST | /lint/envelope/one | $0.01 | Base | USDC | header | |
| POST | /lint/one | $0.02 | Base | USDC | header |
REQUEST / RESPONSE EXAMPLE
An unpaid request to POST /lint returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.
curl -i -X POST 'https://10x402.com/lint'
// 402 response (captured by monitor) · 4 payloads · click to expand
[
{
"error": "Payment required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x885E7BEF433eb78F5976b28A7c10739c98DB11E5",
"amount": "250000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 60
}
],
"resource": {
"url": "https://10x402.com/lint",
"tags": [
"x402",
"lint",
"conformance",
"developer-tools"
],
"method": "POST",
"mimeType": "application/json",
"description": "Find conformance blockers to x402 indexing and payment on a live endpoint",
"serviceName": "10x402"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": "{\"url\":\"https://toolshed.lemon-agent.dev/convert/md-html\",\"method\":\"POST\"}",
"type": "http",
"method": "POST",
"bodyType": "text"
},
"output": {
"type": "text",
"format": "application/json",
"example": "{\"grade\":\"A\",\"summary\":{\"versions_detected\":[1,2],\"payTo\":\"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e\",\"network\":\"eip155:8453\",\"price\":\"$0.001 (1000 atomic)\",\"bazaar_ready\":true,\"blockers\":[]},\"findings\":[],\"checks_run\":72}"
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 262144,
"description": "a JSON object: { \"url\": \"https://…\" } and optionally { \"method\": \"POST\" | \"GET\" }, default POST, up to 256 KB"
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "text"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type",
"format"
],
"properties": {
"type": {
"type": "string",
"const": "text"
},
"format": {
"type": "string",
"const": "application/json",
"description": "a JSON lint report: grade, summary, findings[] and checks_run"
},
"example": {
"type": "string",
"description": "the sample request body above, actually run through this endpoint"
}
},
"additionalProperties": false
}
}
}
}
},
"x402Version": 2
},
{
"error": "Payment required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x885E7BEF433eb78F5976b28A7c10739c98DB11E5",
"amount": "20000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 60
}
],
"resource": {
"url": "https://10x402.com/lint/one",
"tags": [
"x402",
"lint",
"conformance",
"developer-tools"
],
"method": "POST",
"mimeType": "application/json",
"description": "Run ONE named check against a live endpoint",
"serviceName": "10x402"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": "{\"url\":\"https://toolshed.lemon-agent.dev/convert/md-html\",\"method\":\"POST\",\"check\":\"V2_B64_URLSAFE\"}",
"type": "http",
"method": "POST",
"bodyType": "text"
},
"output": {
"type": "text",
"format": "application/json",
"example": "{\"check\":\"V2_B64_URLSAFE\",\"applied\":true,\"passed\":true,\"finding\":null,\"regime\":\"payment\",\"severity\":\"error\",\"core\":true,\"sources\":[{\"kind\":\"client-code\",\"ref\":\"@x402/[email protected] dist/cjs/utils/index.js:133 — Base64EncodedRegex = /^[A-Za-z0-9+/]*={0,2}$/\"},{\"kind\":\"client-code\",\"ref\":\"@x402/[email protected] dist/cjs/http/index.js:1778-1781 — the regex is tested on the RAW header, then it throws, before any decode\"},{\"kind\":\"spec\",\"ref\":\"specs/transports-v2/http.md:7-25 § Payment Required Signaling\"}],\"summary\":{\"versions_detected\":[1,2],\"payTo\":\"0x0adc7adac7bbaffffbd73505711e42378c4f9f9e\",\"network\":\"eip155:8453\",\"price\":\"$0.001 (1000 atomic)\"},\"checks_run\":1}"
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 262144,
"description": "a JSON object: { \"url\": \"https://…\", \"check\": \"V2_B64_URLSAFE\" } — exactly one check id from GET /check, plus optionally { \"method\": \"POST\" | \"GET\" }, up to 256 KB"
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "text"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type",
"format"
],
"properties": {
"type": {
"type": "string",
"const": "text"
},
"format": {
"type": "string",
"const": "application/json",
"description": "a JSON single-check report: check, applied, passed, the finding with its fix (or null), regime, sources and the envelope summary"
},
"example": {
"type": "string",
"description": "the sample request body above, actually run through this endpoint"
}
},
"additionalProperties": false
}
}
}
}
},
"x402Version": 2
},
{
"error": "Payment required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x885E7BEF433eb78F5976b28A7c10739c98DB11E5",
"amount": "100000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 60
}
],
"resource": {
"url": "https://10x402.com/lint/envelope",
"tags": [
"x402",
"lint",
"conformance",
"developer-tools"
],
"method": "POST",
"mimeType": "application/json",
"description": "Check a captured x402 402 for indexing and payment blockers — no fetch",
"serviceName": "10x402"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": "{\"status\":402,\"headers\":{\"content-type\":\"application/json\"},\"body\":\"{\\\"x402Version\\\":1,\\\"accepts\\\":[{\\\"scheme\\\":\\\"exact\\\",\\\"network\\\":\\\"base\\\",\\\"maxAmountRequired\\\":\\\"1000\\\",\\\"resource\\\":\\\"https://example.com/api/thing\\\",\\\"description\\\":\\\"an example paid endpoint\\\",\\\"mimeType\\\":\\\"application/json\\\",\\\"payTo\\\":\\\"0x0000000000000000000000000000000000000001\\\",\\\"maxTimeoutSeconds\\\":60,\\\"asset\\\":\\\"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\\\",\\\"extra\\\":{\\\"name\\\":\\\"USD Coin\\\",\\\"version\\\":\\\"2\\\"},\\\"outputSchema\\\":{\\\"input\\\":{\\\"type\\\":\\\"http\\\",\\\"method\\\":\\\"POST\\\",\\\"discoverable\\\":true,\\\"bodyType\\\":\\\"text\\\",\\\"description\\\":\\\"the request body\\\"},\\\"output\\\":{\\\"type\\\":\\\"string\\\",\\\"description\\\":\\\"the response body\\\"}}}]}\"}",
"type": "http",
"method": "POST",
"bodyType": "text"
},
"output": {
"type": "text",
"format": "application/json",
"example": "{\"grade\":\"A\",\"summary\":{\"versions_detected\":[1],\"payTo\":\"0x0000000000000000000000000000000000000001\",\"network\":\"base\",\"price\":\"$0.001 (1000 atomic)\",\"bazaar_ready\":\"n/a\",\"blockers\":[\"V2_HEADER_PRESENT\"]},\"findings\":[{\"severity\":\"error\",\"code\":\"V2_HEADER_PRESENT\",\"message\":\"no PAYMENT-REQUIRED response header — this endpoint publishes no x402 v2 envelope.\",\"fix\":\"Add a PAYMENT-REQUIRED response header to the 402 carrying the standard-base64 JSON v2 envelope. This costs you DISCOVERY rather than payment, and the distinction is worth being precise about: @x402/core reads the header first but DOES fall back to a v1 body when there is none, so the current client generation can still pay you. What it cannot do is find you — CDP marks the PAYMENT-REQUIRED header a required indexing check, so a v1-only 402 is not catalogued at all, and a strictly-v2 client cannot pay it either. Keep the v1 body exactly as it is; the two versions share a 402 without either noticing the other.\",\"core\":false}],\"checks_run\":28}"
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 262144,
"description": "a JSON object: { \"status\": 402, \"headers\": { \"payment-required\": \"…\", … }, \"body\": \"…\" }, up to 256 KB"
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "text"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type",
"format"
],
"properties": {
"type": {
"type": "string",
"const": "text"
},
"format": {
"type": "string",
"const": "application/json",
"description": "a JSON lint report: grade, summary, findings[] and checks_run"
},
"example": {
"type": "string",
"description": "the sample request body above, actually run through this endpoint"
}
},
"additionalProperties": false
}
}
}
}
},
"x402Version": 2
},
{
"error": "Payment required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x885E7BEF433eb78F5976b28A7c10739c98DB11E5",
"amount": "10000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 60
}
],
"resource": {
"url": "https://10x402.com/lint/envelope/one",
"tags": [
"x402",
"lint",
"conformance",
"developer-tools"
],
"method": "POST",
"mimeType": "application/json",
"description": "Run ONE named check against a response you paste",
"serviceName": "10x402"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": "{\"status\":402,\"headers\":{\"content-type\":\"application/json\"},\"body\":\"{\\\"x402Version\\\":1,\\\"accepts\\\":[{\\\"scheme\\\":\\\"exact\\\",\\\"network\\\":\\\"base\\\",\\\"maxAmountRequired\\\":\\\"1000\\\",\\\"resource\\\":\\\"https://example.com/api/thing\\\",\\\"description\\\":\\\"an example paid endpoint\\\",\\\"mimeType\\\":\\\"application/json\\\",\\\"payTo\\\":\\\"0x0000000000000000000000000000000000000001\\\",\\\"maxTimeoutSeconds\\\":60,\\\"asset\\\":\\\"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\\\",\\\"extra\\\":{\\\"name\\\":\\\"USD Coin\\\",\\\"version\\\":\\\"2\\\"},\\\"outputSchema\\\":{\\\"input\\\":{\\\"type\\\":\\\"http\\\",\\\"method\\\":\\\"POST\\\",\\\"discoverable\\\":true,\\\"bodyType\\\":\\\"text\\\",\\\"description\\\":\\\"the request body\\\"},\\\"output\\\":{\\\"type\\\":\\\"string\\\",\\\"description\\\":\\\"the response body\\\"}}}]}\",\"check\":\"V2_HEADER_PRESENT\"}",
"type": "http",
"method": "POST",
"bodyType": "text"
},
"output": {
"type": "text",
"format": "application/json",
"example": "{\"check\":\"V2_HEADER_PRESENT\",\"applied\":true,\"passed\":false,\"finding\":{\"severity\":\"error\",\"code\":\"V2_HEADER_PRESENT\",\"message\":\"no PAYMENT-REQUIRED response header — this endpoint publishes no x402 v2 envelope.\",\"fix\":\"Add a PAYMENT-REQUIRED response header to the 402 carrying the standard-base64 JSON v2 envelope. This costs you DISCOVERY rather than payment, and the distinction is worth being precise about: @x402/core reads the header first but DOES fall back to a v1 body when there is none, so the current client generation can still pay you. What it cannot do is find you — CDP marks the PAYMENT-REQUIRED header a required indexing check, so a v1-only 402 is not catalogued at all, and a strictly-v2 client cannot pay it either. Keep the v1 body exactly as it is; the two versions share a 402 without either noticing the other.\",\"core\":false},\"regime\":\"bazaar\",\"severity\":\"error\",\"core\":false,\"sources\":[{\"kind\":\"spec\",\"ref\":\"specs/transports-v2/http.md:7-25 § Payment Required Signaling\"},{\"kind\":\"cdp-validator\",\"ref\":\"cdp-validator-toolshed.json preflight[6] payment_required_header (required)\"},{\"kind\":\"client-code\",\"ref\":\"@x402/[email protected] dist/cjs/http/index.js:1620-1628 — the v2 client DOES fall back to a v1 body\"},{\"kind\":\"field-report\",\"ref\":\"x402-foundation/x402#3091 — [email protected] is still a live buyer population\"}],\"summary\":{\"versions_detected\":[1],\"payTo\":\"0x0000000000000000000000000000000000000001\",\"network\":\"base\",\"price\":\"$0.001 (1000 atomic)\"},\"checks_run\":1}"
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 262144,
"description": "a JSON object: { \"status\": 402, \"headers\": { … }, \"body\": \"…\", \"check\": \"V2_B64_URLSAFE\" } — exactly one check id from GET /check, up to 256 KB"
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"const": "POST"
},
"bodyType": {
"type": "string",
"const": "text"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type",
"format"
],
"properties": {
"type": {
"type": "string",
"const": "text"
},
"format": {
"type": "string",
"const": "application/json",
"description": "a JSON single-check report: check, applied, passed, the finding with its fix (or null), regime, sources and the envelope summary"
},
"example": {
"type": "string",
"description": "the sample request body above, actually run through this endpoint"
}
},
"additionalProperties": false
}
}
}
}
},
"x402Version": 2
}
] OVER TIME
All charts use the 7d selector; each series spans only the dates it has data for. Every series is also served as JSON at /api/v1/services/10x402/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted). The on-chain series roll up hourly, so the latest day can be up to about an hour behind; distinct buyers are counted per payout address, so a service that settles to more than one address is an upper bound.
Median across 4 endpoints. Use the selector to isolate one.
checklist grew 11->14 on 2026-07-28; a step here is a metric change, not a regression
COMPLIANCE
14/14 checks pass · grade Alast 402 captured 2026-08-20 · last up 2026-08-20
- 402 payload captured
- accepts[] array present
- payTo address recoverable
- payTo at accepts[0].payTo (conformant shape)
- payTo is a valid on-chain address
- atomic price declared
- atomic price in a sane range
- asset (token) address declared
- network resolves to CAIP-2
- payment scheme declared
- served over HTTPS
- declares the current x402 version (2)
- EIP-712 domain parameters present on every EVM entry
- x402 v2 envelope delivered in the payment-required header
SITE PILLARS
- homepage reachable
- openapi doc
- pricing page
- llms.txt
- robots.txt
- terms page
recent checks (9) live · click to expand
EMBED THIS BADGE
<a href="https://x402-list.com/services/10x402?utm_source=badge&utm_medium=referral&utm_campaign=embed"> <img src="https://x402-list.com/badge/10x402.svg" alt="10x402 listed on x402-list" height="28"> </a>
[](https://x402-list.com/services/10x402?utm_source=badge&utm_medium=referral&utm_campaign=embed)
<a href="https://x402-list.com/services/10x402?utm_source=badge&utm_medium=referral&utm_campaign=embed"> <img src="https://x402-list.com/badge/10x402.svg?data=uptime" alt="10x402 uptime on x402-list" height="28"> </a>