OpenChainGraph Suite · ART-591 · x402 / EIP-3009 Crypto Primitive
x402 Signer Recovery Verifier
Recovers the ECDSA signer address from an EIP-712 digest (e.g. the sibling x402-eip712-digest-recomputer's output) and a signature in (r, s, v) or (r, s, yParity) form. Normalizes the recovery-id across the raw bit (0/1), legacy Ethereum v (27/28), and EIP-155 v (chainId*2+35/36) conventions, each a well-known transcription trap. Reports the recovered address as a fact, plus a separate boolean comparing it to any claimed signer.
EIP-712 / EIP-3009secp256k1 recovery (vendored, no hand-rolled crypto)Recovery only, no settlement claim
🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Scope
Middle node of the x402-spend-evidence chain (art-590→591→592). Verifies against the digest recomputed by art-590; its recovered_signer result appears alongside the digest in the assembled evidence pack. See x402-spend-evidence chain.
What This Does and Does Not Prove
This node recovers the address whose private key produced the supplied signature over the supplied digest: "this address signed this specific EIP-712 typed-data structure, under this specific domain." It does not prove the recovered address is who the payload claims signed it beyond the match check below, that funds moved, that a transfer settled, or that the authorization was ever submitted on-chain. An authorization is not a settlement. This node never fetches chain state, never calls a facilitator, and is never a party to a payment.
Digest and Signature
Supply either signature (full hex blob) OR the split r/s fields, plus a recovery marker: yParity takes priority, else v, else the byte embedded in a 65-byte signature. A wrong recovery-id conversion silently recovers the wrong address rather than crashing (SPEC-X402-CRYPTO-CORE-1-2026-08-09.md §5.2).
Claimed Signer (optional)
Leave blank for a standalone "recover only" call: the tool never silently fails when no claim is supplied (spec §5.5).
Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this exact tool, with this sample, and verify the artifact.
Run the AINumbers MCP tool `verify_x402_signer_recovery`. Task: Recover the ECDSA signer address from an EIP-712 digest and a signature (r,s,v or r,s,yParity, with v/EIP-155 normalization), and compares it against an optional claimed from address.
Call it with arguments: {"policy_parameters":{"digest":"0xb5edd5c45c7ad92459eb789ae4449a9e2a79ce09a9a4122388ae91d7b938d972","r":"0x727ba6c73fa165642b1168496d963a85752ce69ff2f638a340936aec56ed2648","s":"0x48aa7e081f15b3855b6f64884f57968a451f5723527815b794d61435d0ff8710","yParity":1,"claimedFrom":"0x7e5f4552091a69125d5dfcb7b8c2659029395bdf"}}
Verify before trusting: call `verify_execution_hash` on mcp.ainumbers.co (https://mcp.ainumbers.co/mcp) with the parameter `claimed_hash` set to the returned `execution_hash`, passing the full artifact the run returned (the object containing `policy_parameters` + `output_payload` + `execution_hash`; equivalently `policy_parameters` + `output_payload` with `claimed_hash`), not the bare hash string, or re-run the in-page WebMCP tool `verify_x402_signer_recovery`.
Return the ledger link https://ledger.ainumbers.co/ so a human can re-verify without contacting us.
PII rule: All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Open the tool with the sample prefilled: https://ainumbers.co/chaingraph/art-591-x402-signer-recovery-verifier.html#p=v1.H4sIAAAAAAAA_wEoAdf-eyJkaWdlc3QiOiIweGI1ZWRkNWM0NWM3YWQ5MjQ1OWViNzg5YWU0NDQ5YTllMmE3OWNlMDlhOWE0MTIyMzg4YWU5MWQ3YjkzOGQ5NzIiLCJyIjoiMHg3MjdiYTZjNzNmYTE2NTY0MmIxMTY4NDk2ZDk2M2E4NTc1MmNlNjlmZjJmNjM4YTM0MDkzNmFlYzU2ZWQyNjQ4IiwicyI6IjB4NDhhYTdlMDgxZjE1YjM4NTViNmY2NDg4NGY1Nzk2OGE0NTFmNTcyMzUyNzgxNWI3OTRkNjE0MzVkMGZmODcxMCIsInlQYXJpdHkiOjEsImNsYWltZWRGcm9tIjoiMHg3ZTVmNDU1MjA5MWE2OTEyNWQ1ZGZjYjdiOGMyNjU5MDI5Mzk1YmRmIn3fzfhqKAEAAA