{
  "tool_id": "art-591-x402-signer-recovery-verifier",
  "note": "golden_hash filled by `node golden-parity.test.mjs --update`. The signing key for every recovered-signer vector is the well-known test private key 0x000...001, whose address (0x7e5f4552091a69125d5dfcb7b8c2659029395bdf) is a documented external constant used across Ethereum tooling -- so a re-implementation can independently confirm the recovered address without trusting this kernel's own output. RFC 6979 deterministic-k signing means the (r,s) values are byte-for-byte reproducible from the same (digest, privkey) pair by any independent secp256k1 implementation, not a self-referential round-trip. Digests for vectors A and C are the real art-590-x402-eip712-digest-recomputer 'usdc-mainnet-domain' fixture digest; vector B's digest is that kernel's 'synthetic-sepolia-zero-value' fixture digest (SPEC-X402-CRYPTO-CORE-1-2026-08-09.md section 5).",
  "vectors": [
    {
      "name": "known-key-raw-yparity-claim-match",
      "policy_parameters": {
        "digest": "0xb68e5d60d6169bad9739d30399af8f8c7378d464d25f4d971911ab65ef0b014b",
        "r": "0x9b74dd5c8bb58124bcc04c7a561231fca3e1fddfac2e9b2e361bb494b6b9dbb6",
        "s": "0x62b4d6e9bc1f5fb62742981efd25c46dcc979a8b37ca92705c690d8ce0b56712",
        "yParity": 0,
        "claimedFrom": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf"
      },
      "output_payload": {
        "verdict": "SIGNER_RECOVERED",
        "reasons": [],
        "digest": "0xb68e5d60d6169bad9739d30399af8f8c7378d464d25f4d971911ab65ef0b014b",
        "recovered_signer": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
        "claimed_from": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
        "recovered_signer_matches_claimed_from": true,
        "recovery_id": 0,
        "recovery_id_source": "yParity",
        "scope_note": "Recovers the ECDSA signer address from a caller-supplied EIP-712 digest and signature. Proves that a given address's private key produced a valid signature over the exact digest bytes supplied -- it does not prove the recovered address is who the payload claims signed it (beyond the recovered_signer_matches_claimed_from comparison this node itself performs), that funds moved, that a transfer settled, or that the authorization was ever submitted on-chain. An authorization is not a settlement. Zero network calls; never a facilitator, proxy, or settlement relay."
      },
      "golden_hash": "38071028caa28a5bc9d520a508fc73ffbfbf71f18034822d309c01c1009d9e4b"
    },
    {
      "name": "known-key-legacy-v27-embedded-signature-no-claim",
      "policy_parameters": {
        "digest": "0x4302ecae4565ab562dec0e20ef54c3542b526539c85a6533e927ef3e1672f3c6",
        "signature": "0x1b4d237a88d704e04b2aff172c006e536cbde7d3c41c7687c680d4b9f7df0a972e9fcbee80296589d5422a512780a4b14dc66d34424a58e25c6cabc0e07b8d301b"
      },
      "output_payload": {
        "verdict": "SIGNER_RECOVERED",
        "reasons": [],
        "digest": "0x4302ecae4565ab562dec0e20ef54c3542b526539c85a6533e927ef3e1672f3c6",
        "recovered_signer": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
        "claimed_from": null,
        "recovered_signer_matches_claimed_from": null,
        "recovery_id": 0,
        "recovery_id_source": "embedded_in_signature:v27_28",
        "scope_note": "Recovers the ECDSA signer address from a caller-supplied EIP-712 digest and signature. Proves that a given address's private key produced a valid signature over the exact digest bytes supplied -- it does not prove the recovered address is who the payload claims signed it (beyond the recovered_signer_matches_claimed_from comparison this node itself performs), that funds moved, that a transfer settled, or that the authorization was ever submitted on-chain. An authorization is not a settlement. Zero network calls; never a facilitator, proxy, or settlement relay."
      },
      "golden_hash": "7ddc561b97ac5c218dc7b495c8141a6c8ac2e47f7920f380fe6b86645136647b"
    },
    {
      "name": "known-key-eip155-v-claim-mismatch",
      "policy_parameters": {
        "digest": "0xb68e5d60d6169bad9739d30399af8f8c7378d464d25f4d971911ab65ef0b014b",
        "r": "0x9b74dd5c8bb58124bcc04c7a561231fca3e1fddfac2e9b2e361bb494b6b9dbb6",
        "s": "0x62b4d6e9bc1f5fb62742981efd25c46dcc979a8b37ca92705c690d8ce0b56712",
        "v": 16941,
        "chainId": 8453,
        "claimedFrom": "0x1111111111111111111111111111111111111111"
      },
      "output_payload": {
        "verdict": "SIGNER_RECOVERED",
        "reasons": [],
        "digest": "0xb68e5d60d6169bad9739d30399af8f8c7378d464d25f4d971911ab65ef0b014b",
        "recovered_signer": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
        "claimed_from": "0x1111111111111111111111111111111111111111",
        "recovered_signer_matches_claimed_from": false,
        "recovery_id": 0,
        "recovery_id_source": "v:eip155",
        "scope_note": "Recovers the ECDSA signer address from a caller-supplied EIP-712 digest and signature. Proves that a given address's private key produced a valid signature over the exact digest bytes supplied -- it does not prove the recovered address is who the payload claims signed it (beyond the recovered_signer_matches_claimed_from comparison this node itself performs), that funds moved, that a transfer settled, or that the authorization was ever submitted on-chain. An authorization is not a settlement. Zero network calls; never a facilitator, proxy, or settlement relay."
      },
      "golden_hash": "291e994ebc280e927428a5db5d69a673f8a744b1e8dc5fe7c7bd676d1e19f22f"
    },
    {
      "name": "malformed-signature-never-throws",
      "policy_parameters": {
        "digest": "0xb68e5d60d6169bad9739d30399af8f8c7378d464d25f4d971911ab65ef0b014b",
        "signature": "0xdeadbeef"
      },
      "output_payload": {
        "verdict": "INDETERMINATE",
        "reasons": [
          "signature must be 64 bytes (r||s) or 65 bytes (r||s||v) hex, got 4 bytes"
        ],
        "digest": "0xb68e5d60d6169bad9739d30399af8f8c7378d464d25f4d971911ab65ef0b014b",
        "recovered_signer": null,
        "claimed_from": null,
        "recovered_signer_matches_claimed_from": null,
        "recovery_id": null,
        "recovery_id_source": null,
        "scope_note": "Recovers the ECDSA signer address from a caller-supplied EIP-712 digest and signature. Proves that a given address's private key produced a valid signature over the exact digest bytes supplied -- it does not prove the recovered address is who the payload claims signed it (beyond the recovered_signer_matches_claimed_from comparison this node itself performs), that funds moved, that a transfer settled, or that the authorization was ever submitted on-chain. An authorization is not a settlement. Zero network calls; never a facilitator, proxy, or settlement relay."
      },
      "golden_hash": "94af71784a3a2064f4fcdd259a702dbcfe204420dc5b536138bdc3c435504d3d"
    },
    {
      "name": "missing-everything-indeterminate",
      "policy_parameters": {},
      "output_payload": {
        "verdict": "INDETERMINATE",
        "reasons": [
          "digest is required and must be a 32-byte hex value (the art-590 recomputed EIP-712 digest)",
          "r is required and must be a 32-byte hex value when signature is not supplied",
          "s is required and must be a 32-byte hex value when signature is not supplied"
        ],
        "digest": null,
        "recovered_signer": null,
        "claimed_from": null,
        "recovered_signer_matches_claimed_from": null,
        "recovery_id": null,
        "recovery_id_source": null,
        "scope_note": "Recovers the ECDSA signer address from a caller-supplied EIP-712 digest and signature. Proves that a given address's private key produced a valid signature over the exact digest bytes supplied -- it does not prove the recovered address is who the payload claims signed it (beyond the recovered_signer_matches_claimed_from comparison this node itself performs), that funds moved, that a transfer settled, or that the authorization was ever submitted on-chain. An authorization is not a settlement. Zero network calls; never a facilitator, proxy, or settlement relay."
      },
      "golden_hash": "bcc7d92d6b0648a29274f077ae21b7624c944175c226ae59059be3692ae8b16c"
    }
  ]
}
