Free tool · No sign-up required
x402 Inspector —
validate your payment challenge before you ship it.
Paste any endpoint and check its x402 payment challenge — the HTTP 402 Payment Required response that Coinbase and Cloudflare's x402 protocol uses for machine-to-machine USDC payments on Base and beyond. Get a plain-language readiness check, not a bare pass/fail.
Networks recognized
What it checks
402 challenge detection
Probes the endpoint with GET, and automatically retries with POST when the response indicates a method mismatch — x402 commonly gates POST-only resources, and a naive GET-only checker would misreport them as broken.
Payment-requirements validation
Checks the 402 body's accepts[] entries against the x402 spec — scheme, network, maxAmountRequired, resource, payTo, asset, maxTimeoutSeconds, and extra — and flags whichever required fields are missing or malformed.
Network & address-format checks
Recognizes the network identifiers in active use across the x402 ecosystem and validates payTo/asset addresses against the right format for that chain family — EVM, Solana, or Stellar.
v1 and v2 shape support
Understands both x402 response shapes in live use — v1's top-level maxAmountRequired and bare network names, and v2's amount field, extra-nested resource/description, and CAIP-2 network identifiers like eip155:8453.
Plain-language findings
Every warning names the specific field and why it matters — no bare pass/fail. Findings that a middleware would have prevented point at the fix directly.
Never spends real funds
This is a shape check, not a live transaction — the inspector confirms your challenge is well-formed and never completes an actual payment. Safe to run against production endpoints.
What a valid 402 response looks like
Modeled on ContextIQ's own /api/v1/dns-inspector endpoint — a real, live x402-gated route:
HTTP/1.1 402 Payment Required
Content-Type: application/json
{
"x402Version": 1,
"accepts": [{
"scheme": "exact",
"network": "base-sepolia",
"maxAmountRequired": "10000", // atomic units — 0.01 USDC at 6 decimals
"resource": "https://contextiq.trango-compute.com/api/v1/dns-inspector",
"description": "DNS Inspector record lookup (A/AAAA/MX/NS/TXT/SOA/CAA + SPF/DMARC) — per call",
"mimeType": "*/*",
"payTo": "0x...",
"maxTimeoutSeconds": 300,
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": { "name": "USDC", "version": "2" }
}],
"error": "Payment required"
}This is x402 v1. Live v2 endpoints use a different shape — CAIP-2 network IDs, an amount field, and resource/description nested in extra. The inspector reads both; see the full v1 vs v2 diff.
Who uses it
Backend developers integrating x402
Confirm your endpoint's 402 response is actually spec-compliant before real clients start hitting it — a malformed payTo or missing maxTimeoutSeconds fails silently until a payment can't complete.
Agent / AI-infra developers
Before wiring an autonomous agent to pay a third-party service, check that the endpoint's payment challenge is well-formed enough for your client to construct a valid payment from it.
Middleware maintainers
Verify your own x402 middleware integration end to end — this is the same check ContextIQ runs against its own x402-gated v1 API routes.