
ERC draft: Independent Simulation Result for (STVA)
ERC draft "Independent Simulation Result" (STVA) defines a canonical, content-addressed SimulationResult (success, gasUsed, returnData, stateDiffHash, logsHash, snapshotId, resultHash) that any wallet, hardware device or verifier can recompute from the same VerificationPayload and state snapshot. It targets compromised-frontend and UI/calldata-mismatch attacks, and defines Basic, Standard and Strict compliance levels. Open questions are stateDiff encoding, prestate proofs and binding to capability tokens.
What it is
ERC draft "Independent Simulation Result" (Standards Track, status Draft, created 30 October 2026) is posted by @MATOBOYCRYPTO65 on ethresear.ch for the STVA proposal. It standardizes how a transaction simulation is encoded and hashed, so a wallet, hardware device, second machine or third-party verifier can recompute the same result from the same inputs. The stated aim is to close the UI/calldata mismatch class of attacks, since a simulation served by a compromised frontend is worthless.
How it works
Inputs are the full preimage of the transaction (UserOperation or SafeTx, including every field that enters the hash), a block/state root or Merkle proofs of the relevant state, and optional overrides.
The output is a SimulationResult. The reference struct has success, gasUsed, returnData, stateDiffHash, logsHash, snapshotId (block hash or state root), resultHash and an optional derivedSummary. The prose spec also lists structured balanceChanges and tokenTransfers, simulatorId/version, and semanticEffects, preferably recomputed from ERC-7730-style descriptors. These are not in the reference struct.
The canonical hash is either keccak256(abi.encode(SimulationResult)) or a domain-separated EIP-712 hash. The draft does not pick one. The result hash is meant to be bound into signatures and Scoped Capability Tokens, and simulation is meant to be required before high-privilege authority transitions.
What to do
The compliance levels are the part an implementer can act on:
- Basic: any simulator.
- Standard: multi-node consensus on the state root.
- Strict: local revm/EVM execution plus Merkle proofs of prestate.
One normative requirement is stated: a hardware offline verifier MUST be able to re-execute, or re-verify proofs, and reject on mismatch.
Caveats
- The draft is early and asks for feedback. It gives no test vectors, no encoding rules for
stateDiff, and no reference implementation. - Open points are full versus hash-only
stateDiff(size trade-off), required prestate proofs versus a trusted RPC with multi-node consensus, and how tightly to bind the result into the VerificationPayload and capabilities. - Basic compliance accepts any simulator, so it adds no independence by itself. The page does not say how a verifier treats
derivedSummarywhen it is only claimed and not recomputed.
Technologies named here
- revm
- Ethereum
- Safe
- ERC-7730 descriptors
Standards and laws named here
- EIP-712
- ERC-4337
- ERC-7730
Techniques named here
- Blind signing
- Domain-separated EIP-712 hashing
- Independent transaction simulation
- Merkle proofs of prestate
- Multi-node consensus on state root
- UI/calldata mismatch
Concepts named here
- Authority lifecycle
- Canonical, content-addressed simulation result
- Compliance levels
- Scoped Capability Tokens
- UI/calldata mismatch attacks
Related in Blockchain

THORChain Exploit Report #2 — GG20 root-cause disclosure

Black Thursday revisited: MakerDAO keeper exploited for $500K
.jpg)