OpenChainGraph Suite · OCG v0.8.7 · Digital-Asset Rails · Cluster ㉓

x402 Spend Evidence Pack

Note (dated 2026-08-17): a chain composes independent computations performed in an analytical order. No step's output is carried into the next step by the execution model; each step computes from its own declared inputs. This is true of every chain on this site, including chains whose per-step copy below reads as a data handoff. The assembled evidence pack below is an illustrative composition of the three steps' fields, shown for reference against §8 of the x402 spend-evidence pack specification; a caller wires the digest into the recovery call itself.

Linear three-step evidence pipeline recomputing the trust signals behind an x402/EIP-3009 TransferWithAuthorization: EIP-712 digest recomputation, ECDSA signer recovery, and domain/nonce/window verification. Not a settlement proof, an evidence bundle for a human or downstream agent deciding whether to trust an authorization. Authorization is not settlement: on-chain nonce uniqueness is enforced by the token contract, not by these tools.

OpenChainGraph · 3 Steps compliance control · Linear Hash-Anchored §4 chain_depth:3 Client-Side · Zero PII
Not a settlement proof. This pipeline recomputes the cryptographic and domain/replay signals behind a caller-supplied x402/EIP-3009 authorization from supplied facts; it does not certify that a transfer settled, that funds moved, or that a nonce has never been spent on-chain. Every input is caller-supplied: zero network calls, never a facilitator, proxy, or settlement relay.
Chain Topology (linear): EIP-712 Digest Recompute → Signer Recovery → Domain & Nonce Window Check
§4 Execution Hash · Chain Definition Anchor
execution_hash:computing…
Chain Stages · 3 Steps · Linear (no decision gates)
1 ROOT node
x402 EIP-712 Digest Recomputer art-590-x402-eip712-digest-recomputer
recomputes the exact EIP-712 digest bytes that signer recovery verifies against
MCP Call · recompute_x402_eip712_digest
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "recompute_x402_eip712_digest",
    "arguments": {
      "name": "USD Coin",
      "version": "2",
      "chainId": 1,
      "verifyingContract": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "from": "0x2A1530C4C41db0B0b2bB646CB5Eb1A67b7158667",
      "to": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f2",
      "value": 1000000,
      "validAfter": 0,
      "validBefore": 2000000000,
      "nonce": "0x0000000000000000000000000000000000000000000000000000000000000001"
    }
  },
  "id": 1
}
2 STEP node
x402 Signer Recovery Verifier art-591-x402-signer-recovery-verifier
recovers the signer address and reports the claimed_from match, alongside the digest, in the assembled evidence pack
MCP Call · verify_x402_signer_recovery
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "verify_x402_signer_recovery",
    "arguments": {
      "digest": "0xb68e5d60d6169bad9739d30399af8f8c7378d464d25f4d971911ab65ef0b014b",
      "r": "0x9b74dd5c8bb58124bcc04c7a561231fca3e1fddfac2e9b2e361bb494b6b9dbb6",
      "s": "0x62b4d6e9bc1f5fb62742981efd25c46dcc979a8b37ca92705c690d8ce0b56712",
      "yParity": 0,
      "claimedFrom": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf"
    }
  },
  "id": 2
}
3 TERMINAL node
x402 Domain & Nonce Window Checker art-592-x402-domain-nonce-window-checker
domain/window/nonce verdict is the terminal step, combining with the digest and recovery results into the x402_spend_evidence pack
MCP Call · check_x402_domain_nonce_window
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "check_x402_domain_nonce_window",
    "arguments": {
      "expected_chain_id": 1,
      "expected_verifying_contract": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "chainId": 1,
      "verifyingContract": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "validAfter": 0,
      "validBefore": 2000000000,
      "now_unix": 1000000000,
      "nonce": "0x0000000000000000000000000000000000000000000000000000000000000001",
      "nonce_already_used": false
    }
  },
  "id": 3
}
Assembled x402_spend_evidence · §8 field shape
A worked composition of the three steps' fields above into the x402_spend_evidence object shape fixed by §8 of the x402 spend-evidence pack specification. Field names are final for that spec. This preview is a static illustration, computed once from the three sample MCP calls above; a caller assembles the live object itself from its three actual tool responses; the chain execution model does not pipe one step's output into the next (see the note above).
{
  "digest": "0xb68e5d60d6169bad9739d30399af8f8c7378d464d25f4d971911ab65ef0b014b",
  "domain_separator": "0x06c37168a7db5138defc7866392bb87a741f9b3d104deb5094588ce041cae335",
  "struct_hash": "0x70eb78101a017556e79276183b47e73810ca4c42f2c19345bdf672ca78d23dd0",
  "recovered_signer": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
  "claimed_from": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
  "recovered_signer_matches_claimed_from": true,
  "domain_chain_match": true,
  "domain_contract_match": true,
  "authorization_within_window": true,
  "nonce_well_formed": true,
  "nonce_already_used": false,
  "authorization": {
    "from": "0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667",
    "to": "0xffcf8fdee72ac11b5c542428b35eef5769c409f2",
    "value": "1000000",
    "validAfter": "0",
    "validBefore": "2000000000",
    "nonce": "0x0000000000000000000000000000000000000000000000000000000000000001"
  },
  "verdict": "AUTHORIZATION_VALID",
  "disclosure": "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. On-chain nonce uniqueness is enforced by the token contract at settlement time, not by this verifier. This tool confirms the authorization is well-formed, correctly signed, and not self-reported as already used; it cannot confirm the nonce has never been spent on-chain."
}
Export Chain Artifact
Download the §4 chain definition artifact (hash-anchored JSON). The artifact encodes the complete chain definition. Available after hash computation.