{"service":"x402 seller-ops diagnostics","what":"Deterministic (no-LLM) settle-readiness diagnostics for the OWNER of an x402 route: why it does not settle / stays invisible in Bazaar / earns nothing. A strict super-set of cross-surface consistency checks PLUS the CDP settle-blocker checks distilled from our own operating scars.","routes":{"GET /sellerops/audit":"All checks + verdict (ready|blocked|degraded) + fixes.","GET /sellerops/settle-check":"CDP settle-blocker checks only (header size / WAF text / method honesty) — cheap iterate grain.","GET /sellerops/sources":"This methodology surface (free)."},"checks":[{"id":"reachable","severity_on_fail":"blocker","grains":["settle","audit"],"method":"GET the target URL (SSRF-guarded); did it respond at all?"},{"id":"payment_required_status","severity_on_fail":"blocker","grains":["settle","audit"],"method":"Does the declared method answer an unpaid request with HTTP 402?"},{"id":"x402_v2_header","severity_on_fail":"blocker","grains":["audit"],"method":"Does the 402 carry a decodable x402 v2 payment-required challenge?"},{"id":"manifest_present","severity_on_fail":"warning","grains":["audit"],"method":"Is a /.well-known/x402 discovery manifest published at the origin?"},{"id":"header_size","severity_on_fail":"blocker","grains":["settle","audit"],"method":"Measure the real payment-required header bytes vs the empirical ~4400 B CDP settle threshold (canon #16); over it, CDP verify rejects the payload."},{"id":"waf_text","severity_on_fail":"blocker","grains":["settle","audit"],"method":"Scan challenge text for SQLi-shape / pipe-alternation patterns that trip the CDP AWS-WAF SQLi rule -> deterministic 403 on verify (canon #15)."},{"id":"method_honesty","severity_on_fail":"blocker","grains":["settle","audit"],"method":"Does the DECLARED method return the 402 (not a wrong-method GET mirror that 402s while the real method 405s, canon #10)?"},{"id":"network_asset_payee","severity_on_fail":"blocker","grains":["audit"],"method":"Is asset the canonical USDC for the advertised CAIP-2, the network facilitator-supported, and payTo/network consistent manifest vs live 402?"},{"id":"index_membership","severity_on_fail":"warning","grains":["audit"],"method":"Is the route actually in the CDP and/or PayAI discovery catalog (real walk, not self-declaration)? Answers 'why am I invisible'."},{"id":"onchain_settle","severity_on_fail":"warning","grains":["audit"],"method":"Has payTo received any USDC Transfer on the advertised chain recently (bounded getLogs window)? Never-settled = root cause of zero revenue."},{"id":"openapi_consistency","severity_on_fail":"warning","grains":["audit"],"method":"Is the live route path declared in the origin's discovery manifest?"},{"id":"price_consistency","severity_on_fail":"warning","grains":["audit"],"method":"Does the manifest-declared price match the live 402 amount?"}],"thresholds":{"settle_header_max_bytes":4400,"note":"The ~4400 B payment-required ceiling is EMPIRICAL (canon #16): we observed settle at 4476 B and 4428 B but NOT at 4592 B. Only description + output_example + input-schema + accepts ride in the header; long_desc/tags do not."},"canon":{"header_size":"canon #16 — bloated payment-required header -> CDP verify rejects payload.","waf_text":"canon #15 — SQLi-shape / pipe strings -> AWS WAF 403 on verify.","method_honesty":"canon #10 — declared method must be the method that 402s.","index_membership":"CDP/PayAI index a resource only after its first settled call.","onchain_settle":"canon #12 — dedicated getLogs pool; a never-settled payTo = zero revenue."},"canonical_usdc_networks":["eip155:1","eip155:10","eip155:137","eip155:42161","eip155:480","eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"],"attribution":"Live 402 probe + discovery walk (CDP x402 Bazaar + PayAI) + on-chain USDC reads, computed by us. Settle-blocker thresholds are our own empirical operating knowledge.","disclaimer":"Diagnostic indicators from observed public surfaces, not a guarantee the route will settle; the CDP header-size threshold is empirical (~4400 B)."}