An Ethereum transaction is a tiny bundle of 8 fields. Understanding them removes 90% of wallet weirdness.
The fields
- Nonce. A sequential counter per sender. Your first tx is nonce 0, second is 1, etc. Miners execute in order. If nonce 5 is stuck, nonce 6 and 7 cannot go through.
- Gas limit. The maximum units of computation you allow. Regular ETH transfer: 21,000. Simple ERC-20: ~65,000. Uniswap V3 swap: ~180,000. Setting too low reverts. Setting too high wastes nothing, unused gas is refunded.
- Max fee (gwei). The most you'll pay per gas unit. Base + tip cap.
- Max priority fee (gwei). The tip. Typical: 0.5-2 gwei on quiet days.
- To. Recipient address, or 0x0 for contract deployment.
- Value. ETH sent, in wei. 1 ETH = 10^18 wei = 10^9 gwei.
- Data. The function call and its parameters for contract interactions. Empty for plain transfers.
- Signature (v, r, s). Proves you own the sender's private key.
The nonce trap
You submit tx nonce 12 with a low gas fee. Network gets busy. It sits pending for hours. You submit tx nonce 13 to swap on Uniswap. It sits too, because 12 has to go first. Every future transaction is now blocked.
The fix is to broadcast a replacement for nonce 12 with the same nonce but a higher fee. Any decent wallet has a "speed up" or "cancel" button that does this automatically. Cancel is really "send yourself 0 ETH with the same nonce at a higher fee": the network mines your empty replacement, unlocking every later nonce.
Units cheat sheet
1 ETH = 1018 wei = 109 gwei = 103 Mwei. Gas prices are always shown in gwei. A 30 gwei price on a 100,000 gas transaction = 3,000,000 gwei = 0.003 ETH. At $3,000 ETH, that's $9.
What data actually contains
The first 4 bytes of data are the function selector: keccak256("transfer(address,uint256)")[0:4] for an ERC-20 transfer. The rest is the ABI-encoded parameters. This is what your wallet decodes into "Transfer 100 USDC to 0xabc..." on the confirmation screen. When your wallet cannot decode it (unknown contract), it shows raw hex. Signing raw hex you don't understand is how people lose money.
Koinlytics