{"uid":"cap__is8bKBwI4YH_98Mi40iu","slug":"10x402-x402-envelope-linter-single-check-da3ec783","name":"10x402 x402 Envelope Linter (Single Check)","description":"Run ONE named check against a response you paste","url":"https://10x402.com/lint/envelope/one","method":"POST","headers":{},"bodySchema":{"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 — or, when that run is larger than a response header should carry, an object naming its size and the free URL it is published at in full"}},"additionalProperties":false}}},"responseSchema":{"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/core@2.23.0 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 — x402-fetch@1.x is still a live buyer population\"}],\"summary\":{\"versions_detected\":[1],\"payTo\":\"0x0000000000000000000000000000000000000001\",\"network\":\"base\",\"price\":\"$0.001 (1000 atomic)\"},\"checks_run\":1}"},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.004","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.004/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_BD-RDi371ptB_IlvXQT7T","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.004","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Lints a single x402 HTTP 402 response envelope for a specific compliance check and returns a finding with a concrete fix.","exampleAgentPrompt":"My x402 service passes the validator but still isn't showing up in Bazaar — can you run the V2_HEADER_PRESENT check against this 402 response and tell me exactly what's wrong and how to fix it?","exampleUseCases":[{"title":"Diagnosing missing Bazaar indexing","prompt":"My API keeps passing validation but never appears in Bazaar search — run the V2_B64_URLSAFE check on this 402 response I'm getting and tell me what the blocker is and how to fix it."},{"title":"Fixing x402 v2 envelope header","prompt":"I'm getting reports that strict x402 v2 clients can't pay my endpoint even though v1 clients can — can you lint my 402 response with the V2_HEADER_PRESENT check and give me the exact fix?"},{"title":"Pre-launch x402 compliance audit","prompt":"Before I ship this new paid API endpoint, run a single-check lint on its 402 response using check ID V2_B64_URLSAFE so I can see if the envelope will pass x402 Bazaar indexing requirements."}],"resultDescription":"A JSON report for one check ID containing: whether the check applied and passed, a finding object with severity, error code, human-readable message, and a detailed actionable fix, the x402 regime and whether the check is core, source references (spec, CDP validator, client code, field reports), and a summary of the 402 envelope (detected versions, payTo address, network, price).","failureModes":["Malformed body JSON returns a parse error","Missing required fields (type, method, bodyType, body) returns 400","Body exceeds 256 KB limit returns payload too large","Invalid or unrecognized check ID returns applied:false with no finding","402 response body missing status or headers may result in partial analysis","Network timeout if upstream envelope fetch is slow"],"whenToPreferThis":"Use this endpoint when you need a focused, single-check lint of an x402 402 HTTP response — especially when a service passes general validation but fails to appear in Bazaar or is not discoverable by x402 v2 clients. It provides a specific finding and a concrete fix for one check at a time, making it ideal for targeted debugging rather than full-suite validation. Prefer it over generic HTTP validators when you need x402-protocol-specific compliance context and actionable remediation guidance.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T03:42:38.999Z","isFirstParty":false}