Linear three-step evidence pipeline for an x402 Permit2 payment that also carries the gas-sponsoring approval extension, where the payer signs a second message approving the transfer contract and a facilitator pays the gas to submit it. The first step recomputes the Permit2 transfer digest and, when the extension is present, emits the sponsored-approval facts and a handoff in the approval verifier's input shape; the second step recovers the transfer signer; the third recomputes the approval digest and reports whether its signer binds to the declared owner. The three outputs compose into an evidence pack covering both signatures. This is an evidence bundle and never a settlement proof: no chain is read, nothing is submitted, and the approval handoff carries nulls rather than a guess when the token domain name and version were not declared.
recompute_x402_permit2_digest{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "recompute_x402_permit2_digest",
"arguments": {}
},
"id": 1
}
verify_x402_signer_recovery{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "verify_x402_signer_recovery",
"arguments": {}
},
"id": 1
}
verify_erc2612_permit_binding{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "verify_erc2612_permit_binding",
"arguments": {}
},
"id": 1
}
Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this whole workflow on the server and check one field that answers a real question.
Question: A facilitator wants to pay the gas and submit both of my payer's signatures. Does the approval signature bind to the same owner as the transfer?
Run the AINumbers MCP tool `run_chain` with {"chain":"x402-permit2-sponsored-spend-evidence"} and read `art-612-erc2612-permit-binding-verifier.recovered_signer_matches_owner`.
Re-run with `inputs` for `art-612-erc2612-permit-binding-verifier`, reusing the values that result echoed, with `owner` changed so any other twenty byte address, which breaks the owner binding. Compare the same field.
Verify: call `verify_execution_hash` (https://mcp.ainumbers.co/mcp) with `claimed_hash` set to `composite_execution_hash` and the full `composite_artifact`.
Ledger, for a human re-check: https://ledger.ainumbers.co/
PII rule: send synthetic or anonymised inputs only. The MCP server runs these kernels and logs no payloads.
Chain page: https://ainumbers.co/chaingraph/chains/x402-permit2-sponsored-spend-evidence.html