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.
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
}
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
}
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
}
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."
}