OpenChainGraph Suite · 829 · Safe Multisig Signing Check

Safe Transaction Hash Recompute

Recomputes the hash and decodes known calls. It does not simulate execution and cannot tell you the destination contract is safe. Paste the fields of a Safe transaction and this page recomputes the three values a signer compares with a hardware wallet screen: the domain hash, the message hash and the safeTxHash = keccak256(0x19 || 0x01 || domainHash || messageHash). Safe versions 1.3.0, 1.4.1 and 1.5.0 are supported; earlier versions have no chain id in their domain and are refused.

EIP-712 / Safe 1.3.0, 1.4.1, 1.5.0keccak256 (vendored, no hand-rolled crypto)Hash and decode only, no simulation
🔒 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
Compare the three hashes below with what your signing device shows before you approve. A call reported as not decoded is unexamined, not cleared. An operation of 1 means the Safe runs the destination code with the Safe's own storage and balances (delegatecall); treat it as the highest-attention case.
What This Does and Does Not Prove

This node recomputes hashes from the fields you paste, so a compromised interface that shows you different fields than it submits can be caught by comparing against the device. It does not simulate execution, does not resolve or inspect the destination contract, does not check signatures or owners, and does not fetch anything from a network. The decoder knows a fixed table of common token calls and Safe administration calls; the nested payload of a multiSend batch is reported as not decoded.

Safe and Chain
Transaction
Empty or 0x for a plain ether transfer. Up to 32768 bytes.
Gas and Refund Fields
Domain Hash
Message Hash
safeTxHash (the value to compare)
Decoded Call
Typehash Constants
EIP712Domain typehash
SafeTx typehash
Execution Hash (SHA-256)