What is transaction simulation?

A preview that runs a transaction against current chain state and reports the balance changes it would produce before you sign.

Not yet verifiedHow we verify

3 min read

In this entry

A preview that runs a transaction against current chain state and reports the balance changes it would produce before you sign.

It exists to solve a specific problem: the thing a wallet asks you to sign is a blob of encoded data, and reading it requires knowing the contract. Simulation replaces that blob with a plain statement of what leaves your wallet and what arrives, which is the only description most people can actually judge.

The misunderstanding is treating a clean simulation as a safety certificate. It tells you what this call does against this state right now. It does not tell you the contract is honest.

How it works

The wallet or extension sends your unsigned transaction to a node running in a forked copy of current chain state. The node executes it exactly as the network would, then discards the result rather than committing it. What comes back is the set of state changes: token transfers in and out, approvals granted, and native balance movement.

Good implementations then diff that against your wallet's holdings and render it as a list. You see "you send 1.2 ETH, you receive 3,400 USDC" rather than a function selector and thirty-two byte words.

Simulation catches the two attacks that account for most drained wallets. The first is an unlimited token approval hidden inside a call presented as something else, which shows up as an approval to an address you did not intend. The second is a transfer of an asset the transaction was never supposed to touch, which shows up as an unexplained outflow.

It has real limits. State can change between simulation and inclusion, a contract can behave differently based on the caller or the block, and an off-chain signature such as an EIP-712 message authorizing a later transfer is not a transaction and may not be simulated at all.

Example

Illustrative. A page claims you are claiming a free airdrop and the button opens your wallet. Without simulation you see a contract call with an opaque payload and a fee of about $4.

With simulation you see two lines: the transaction sends 0 tokens to you, and it sets an approval allowing an unknown address to spend your entire stablecoin balance. Nothing about the fee or the interface changed. The preview turned an invisible authorization into a sentence, and you reject it.

Why it matters when you buy

Simulation is a self-custody skill, so it becomes relevant the moment you move coins off an exchange and start interacting with contracts. Until then, the exchange is signing for you. The guide on moving crypto off an exchange covers the transition, and the guide on spotting a crypto scam covers the pages that lead people to sign these payloads.

Questions

Do I need a separate tool for this?

Increasingly no. Several major wallets and browser extensions simulate by default and show the expected balance changes in the confirmation screen. Where yours does not, a dedicated preview extension fills the gap.

Does simulation slow transactions down?

It adds a moment before the confirmation screen renders, not to the transaction itself. The simulation runs off chain and never touches the network you are transacting on.

If the simulation looks right, is the transaction safe?

Safe from the payload doing something other than what it shows, yes. Not safe from a contract that takes your funds and does exactly what it advertised, which is a different question answered by a smart contract audit and by who operates the application.