OpenChainGraph Suite · ART-612 · ERC-2612 / EIP-712 Crypto Primitive

ERC-2612 Permit Binding Verifier

Recomputes the EIP-712 typed-data digest for an ERC-2612 Permit struct (the gasless-approval rail used by USDC/DAI-style tokens): digest = keccak256(0x19 || 0x01 || domainSeparator || structHash), recovers the ECDSA signer from a caller-supplied signature, and reports whether the recovered signer binds to the caller-claimed owner or names the diverging field. All four EIP-712 domain fields (name, version, chainId, verifyingContract) are mandatory inputs and are never defaulted or guessed (a guessed verifyingContract would defeat the entire point of domain separation). This node makes no claim about on-chain nonce freshness, current allowance state, or whether deadline has passed relative to now.

EIP-712 / ERC-2612keccak256 + secp256k1 (vendored, no hand-rolled crypto)Binds / does not bind, never "valid/approved/authorized"
πŸ”’ All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data β€” use synthetic or anonymised inputs only.
EIP-712 Domain (all four fields mandatory, never defaulted)
A guessed or omitted domain field defeats domain separation: this node refuses to compute a digest without all four.
Permit Struct
Signature (r, s, and yParity/v)
Accepts a raw recovery bit (yParity 0/1), legacy Ethereum v (27/28), or EIP-155 v (chainId*2+35/36); supply exactly one.
Domain Separator
Struct Hash
Digest (the bytes a wallet signs)
Recovered Signer
recovered_signer_matches_owner
diverging_field
Typehash Constants
EIP712Domain typehash
Permit typehash
Execution Hash (SHA-256)

Ask your agent

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_erc2612_permit_binding`. Task: Recompute the EIP-712 typed-data digest for an ERC-2612 Permit struct (the gasless-approval rail used by USDC/DAI-style tokens) from caller-supplied domain and message fields, recovers the ECDSA signer from a caller-supplied signature, and reports whether the recovered signer binds to the caller-claimed owner or names the diverging field.
Call it with arguments: {"policy_parameters":{"name":"USD Coin","version":"2","chainId":1,"verifyingContract":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","owner":"0xe05fcc23807536bee418f142d19fa0d21bb0cff7","spender":"0x1111111111111111111111111111111111111111","value":1000000,"nonce":0,"deadline":2000000000,"r":"0x70bb0933677f1bd68df1604ed9dcdfab90cb39809ff6b370e3676fb81baa6081","s":"0x25f5a16ced7deac7fd852ea8501a09b720578aeec619db7ffd7022fea1ab7565","yParity":0}}
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.
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-612-erc2612-permit-binding-verifier.html#p=v1.H4sIAAAAAAAA_wGoAVf-eyJuYW1lIjoiVVNEIENvaW4iLCJ2ZXJzaW9uIjoiMiIsImNoYWluSWQiOjEsInZlcmlmeWluZ0NvbnRyYWN0IjoiMHhBMGI4Njk5MWM2MjE4YjM2YzFkMTlENGEyZTlFYjBjRTM2MDZlQjQ4Iiwib3duZXIiOiIweGUwNWZjYzIzODA3NTM2YmVlNDE4ZjE0MmQxOWZhMGQyMWJiMGNmZjciLCJzcGVuZGVyIjoiMHgxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExIiwidmFsdWUiOjEwMDAwMDAsIm5vbmNlIjowLCJkZWFkbGluZSI6MjAwMDAwMDAwMCwiciI6IjB4NzBiYjA5MzM2NzdmMWJkNjhkZjE2MDRlZDlkY2RmYWI5MGNiMzk4MDlmZjZiMzcwZTM2NzZmYjgxYmFhNjA4MSIsInMiOiIweDI1ZjVhMTZjZWQ3ZGVhYzdmZDg1MmVhODUwMWEwOWI3MjA1NzhhZWVjNjE5ZGI3ZmZkNzAyMmZlYTFhYjc1NjUiLCJ5UGFyaXR5IjowfdK0x_aoAQAA