Most Ethereum wallets show you a hex string and a gas estimate. You click confirm.
That's not enough if you care about what you're actually signing.
veil-cli is an open-source, terminal-first security tool for EVM transactions. The goal: before your private key touches anything, you should see a decoded function name, a risk score, and a simulated balance diff. This post covers how it was built — from the first decode command to a full send pipeline.
Part 1: Decode, simulate, and score before you sign
The core problem is that raw calldata is opaque. 0xa9059cbb000000000000000000000000... means nothing to a human. Wallets render it as "contract interaction" and move on.











