OpenChainGraph Suite · ART-590 · x402 / EIP-3009 Crypto Primitive

x402 EIP-712 Digest Recomputer

Recomputes the EIP-712 typed-data digest for an EIP-3009 TransferWithAuthorization struct, the authorization primitive underneath the x402 payments rail: digest = keccak256(0x19 || 0x01 || domainSeparator || structHash). 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 performs no signature recovery and no domain/nonce/window checks; it makes no claim about signature validity, on-chain settlement, or spend.

EIP-712 / EIP-3009keccak256 (vendored, no hand-rolled crypto)Digest recompute only, no recovery, no settlement
๐Ÿ”’ All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data โ€” use synthetic or anonymised inputs only.
What This Does and Does Not Prove

This node recomputes the exact 32 bytes a wallet signs for an EIP-3009 transfer authorization. It does not verify a signature, recover a signer address, or check domain/nonce/window validity (those are the sibling x402-signer-recovery-verifier and x402-domain-nonce-window-checker nodes). An authorization digest is not a settlement. This node never fetches chain state, never calls a facilitator, and is never a party to a payment.

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 (SPEC-X402-CRYPTO-CORE-1-2026-08-09.md ยง4).
TransferWithAuthorization Struct
Domain Separator
Struct Hash
Digest (the bytes a wallet signs)
Typehash Constants
EIP712Domain typehash
TransferWithAuthorization typehash
Execution Hash (SHA-256)