what is this
Ethereum staking operations — consolidating validators to compounding (0x02) credentials under EIP-7251, or requesting withdrawals under EIP-7002 — are raw, selector-less calldata that hardware wallets can only blind-sign. This page is the second opinion: paste the calldata or the fully signed transaction on a different device and see, independently of the machine that built it, what it actually does.
why a separate device
A compromised workstation can display one transaction and ask your hardware wallet to sign another. The wallet's screen is the defense — but 96 bytes of validator pubkeys are hard to eyeball. Decoding the same bytes on a second device gives you an independent reading: if your phone and your hardware wallet agree, the workstation had no say in it.
the calldata digest
Trezor firmware ≥ 2.12.4 shows an ERC-8213 digest on the sign-tx
data screen (choose “View data and hash”):
keccak256(uint256(byte-length) ++ calldata). This page computes the
same digest, so you compare one hash against the device screen instead of
eyeballing 96 bytes of pubkeys. Skipping the data view skips the digest
screen — don’t skip it.
what gets checked
- Destination: the
toaddress is compared against the predeploy addresses pinned into this page — consolidations0x0000BBdDc7CE488642fb579F8B00f3a590007251, withdrawals0x00000961Ef480Eb55e80D19ad83579A64c007002. Pasted input cannot redirect them. - Sender: the signer is recovered from the signature. The consensus layer silently drops requests whose sender is not the validator’s withdrawal address — the transaction still succeeds and the fee is still taken, so this failure is invisible on-chain.
- Intent: source and target pubkeys, self-consolidation (credential flip) vs. merge, withdrawal amount vs. full exit.
- Encoding: non-canonical RLP is flagged. Some signers (e.g. trezorctl) zero-pad signature values ~1% of the time; strict nodes reject those blobs even though the signature itself is valid — re-encode minimally instead of re-signing.
merges are unforgiving
The protocol never checks that source and target share an owner. A consolidation naming someone else’s 0x02 validator as target irreversibly moves your stake under their withdrawal credentials. Before signing a merge, confirm the target pubkey is yours — the chain will not save you from a wrong target.
privacy
Decoding runs entirely in your browser; pasted bytes never leave the page. Validator explorer links are plain links — nothing is fetched until you tap one. An anonymous, cookie-free page-view counter may be enabled; it never sees what you paste.