ART-393 · OpenChainGraph

x402 v2 Wire-Format Migration Linter

x402 Protocol Version 2 kept the scheme model but moved payment data into headers and renamed them: X-PAYMENTPAYMENT-SIGNATURE, X-PAYMENT-RESPONSEPAYMENT-RESPONSE, and requirements now live in a base64 PAYMENT-REQUIRED header as a client-selectable array. This linter checks a supplied header set / 402 body for exactly these deltas, plus CAIP-2 network id formatting, and declares a protocol_version so a future wire bump is a data re-pin, not a code change. Produces a §4 compliance_control OpenChainGraph artifact.

⚠ Pinned to coinbase/x402 specs/x402-specification-v2.md (Protocol Version 2, 2025-12-09). Chains, assets, and schemes are plugins, so the scheme registry is not hard-coded here; verify current scheme/network support before relying on a pass. Compute-over-supplied-inputs only, nothing here initiates, routes, or settles a payment.
§4 OpenChainGraph · ART-393 x402 · Protocol v2 Zero PII Client-Side · No Network
▸ Lint headers / body against x402 Protocol Version 2
Paste a JSON header map (header name → value) and/or a 402 response body JSON. Optionally set a declared network id and protocol_version to cross-check against the wire evidence. Everything runs locally.
Headers (JSON object, optional)
402 response body (JSON object, optional)
Network id (optional)
Declared protocol_version (optional)