You are a Safe{Wallet} user.
You created your transaction via Safe{Wallet}.
You are about to hit “sign” and confirm via Metamask or Rabby.
This is a guide on how to perform basic checks of the transaction in your wallet.
For a complete end-to-end guide on how to verify transaction data on your hardware wallet trustlessly, refer to this guide.
If you can’t verify it, don’t sign it.
Step 1: Verify transaction data in Safe{Wallet}
Before you hit sign, from the Safe{Wallet} interface, get the following and verify that this is what you expect:
to
- set to the recipient for Ether transfers, the ERC20 token contract for token transfers, or the smart contract to interact with for contract interactions.value
- usually 0 for contract interactions and > 0 for Ether transfers.data
(“Raw data”) - Checking this requires technical understanding. Refer to this guide for details.call_type
- Usually you should see a simple “call”. You should only see something else such as “create”, or “delegate_call” if you actually know what you are doing.nonce
- index of the next transaction you want to execute
Now you hit “sign” which sends the transaction data to your wallet such as Rabby, Metamask, or the wallet you connected via WalletConnect.
Step 2: Verify data in your wallet
Your wallet should display the following and prompt you to sign typed data. If your wallet does not display this data, we recommend you to switch to another wallet.
to
Does this match
to
from step 1?Is it set to an address you recognize? Use https://etherscan.io/ to double check.
value
Does this match
value
from step 1?Is it 0 for contract interactions and the correct amount for Ether transfers?
data
(“Raw data”)Does this match
data
from step 1?
`operation`
Is this set to
0
? This means a simplecall
1
would mean delegatecall which is dangerous and you should check with a technical person.
nonce
Does this match
nonce
from step 1?Is this the index of the next transaction you want to execute?
safeTxGas
,baseGas
Are both
0
for Safes with version 1.3.0 or higher? Otherwise this can be higher.
baseGas
,gasPrice
Are both
0
?
gasToken
,refundReceiver
Are both
0x0000000000000000000000000000000000000000
?
ONLY when ALL of the above checks out, confirm on your wallet.