See exactly what you're about to sign. Recompute a Safe multisig transaction hash from its parameters, decode any wallet's EIP-712 signing request, or decode raw calldata into plain language — then compare against the hash your hardware wallet or Safe UI shows. Blind-signing is how the biggest treasuries get drained; this closes that gap.
Enter the Safe transaction fields (from the Safe UI's "Advanced details", a proposal JSON, or a treasury ticket), or paste the wallet's EIP-712 typed-data JSON below to auto-fill. This recomputes the Safe transaction hash and decodes what the call does. Load example
Paste the exact eth_signTypedData_v4 payload your wallet (MetaMask, Rabby, Ledger Live, any EIP-712 signer) is asking you to sign. This computes the domain separator, the struct hash, and the final signing digest, and renders the message so you can read it. Works for Permit, Permit2, Safe, orders — any typed data. Load example
Paste raw transaction calldata (the data field) to decode the function and its arguments — ERC-20 transfer/approve, Safe owner & module changes, MultiSend batches, and more. Load example
Compute the hash a wallet signs for a plain message. personal_sign applies the EIP-191 prefix (what MetaMask "Sign message" shows). Add a Safe address + network to also get the Safe off-chain message hash. Load example