Skip to content
ihategas.xyz

EIP-712 Hasher

Signing digest, domain separator and struct hash from typed data.

Runs offline

domain, types, primaryType, message

Paste typed-data JSON to hash the signing digest and its parts.

About eip-712 hasher

EIP-712 exists so a wallet can show you named fields instead of an opaque hash. The final signing digest is keccak256 of 0x1901, the domain separator, and the struct hash — three components, computed here separately so you can see which part differs when a hash does not match. If your hardware wallet shows only a digest, this is what to compare it against.

Common questions

What is EIP-712 typed data?

A way to sign structured fields with a domain separator so the same message means something different on another chain or contract. Permits, Safe hashes and many login flows use it; a plain personal_sign string does not.

What are the domain separator and struct hash?

The domain separator binds the signature to a name, version, chain and verifying contract. The struct hash commits to the fields you are signing. This page recomputes both and the final digest your wallet should show.

Does a matching digest mean I should sign?

No. A correct hash only means the JSON matches the digest. It says nothing about whether the spender, amount or deadline are acceptable. Read the fields; the hash checks tampering, not whether the deal is good.

More developer tools