{
  "tool_id": "art-393-x402-v2-migration-linter",
  "kernel_id": "art-393-x402-v2-migration-linter",
  "display_name": "x402 v2 Wire-Format Migration Linter",
  "tool_version": "1.0.0",
  "mandate_type": "compliance_control",
  "purpose": "Lints a supplied x402 header set / 402 response body against the Protocol Version 2 wire format: flags deprecated v1 headers (X-PAYMENT, X-PAYMENT-RESPONSE) and their v2 replacements (PAYMENT-SIGNATURE, PAYMENT-RESPONSE), flags v1 body-based PaymentRequirements delivery (v2 moves requirements into the PAYMENT-REQUIRED header as a client-selectable array), and checks the network id for CAIP-2 format. Declares protocol_version so a future wire bump is a data re-pin. Pinned to coinbase/x402 specs/x402-specification-v2.md (2025-12-09).",
  "control_description": "Lints a supplied x402 header set / 402 response body against the Protocol Version 2 wire format: flags deprecated v1 headers (X-PAYMENT, X-PAYMENT-RESPONSE) and their v2 replacements (PAYMENT-SIGNATURE, PAYMENT-RESPONSE), flags v1 body-based PaymentRequirements delivery (v2 moves requirements into the PAYMENT-REQUIRED header as a client-selectable array), and checks the network id for CAIP-2 format. Declares protocol_version so a future wire bump is a data re-pin. Pinned to coinbase/x402 specs/x402-specification-v2.md (2025-12-09).",
  "declared_inputs": [
    "art-26-x402-payload-decoder-flow-simulator"
  ],
  "declared_outputs": [
    "art-61-x402-batch-settlement-reconciler",
    "art-394-x402-deferred-handshake-validator"
  ],
  "kernel_digest": "sha256:fdb16b08532bdd3b1513e88aa97cb133f64c2ea0d04d8b0556107a2d0e95caac",
  "trust_label": "independently verified -- zkVM execution proof (risc0/groth16-bn254)",
  "data_vintage": "2026-07-10",
  "last_validated": "2026-07-10",
  "conformance_fixtures_vendored": false,
  "compute_proof_ready": "ready",
  "wave": 66,
  "source_url": "https://ainumbers.co/chaingraph/art-393-x402-v2-migration-linter.html",
  "generated_at": "2026-07-25T20:02:55.601Z"
}
