---
name: evm-state-transition-review
description: Investigate Solidity bugs that emerge across paired operations, storage writers, role transitions, callbacks, pricing and arithmetic. Use for stateful DeFi or protocol source where isolated function scans miss interactions.
---

# Solidity state-transition specialist

Native selection of Pashov Audit Group's specialist research prompts; see SOURCES.md. Read them as
analysis lenses in this session. No other agents or Pashov orchestration runtime are running.

## Choose one lens from the observed mechanism

| Evidence or question | Reference |
| --- | --- |
| Deposit/withdraw, normal/emergency, native/token or other paired branches differ | references/asymmetry-agent.md |
| Coupled state, shared limits, stale snapshots, settlement or entitlement | references/invariant-agent.md |
| A permitted actor exploits a pricing difference or change in economic ownership | references/trust-gap-agent.md |
| Truncation, scaling, signedness, intermediate width or casts | references/math-precision-agent.md |
| The order of calls, writes, external effects or revert paths matters | references/execution-trace-agent.md |
| Oracles, token behavior, liquidity and attacker costs | references/economic-security-agent.md |

Read one matching reference, and a second only when the candidate crosses both mechanisms. Do not
launch one agent per file or read every lens mechanically. Trace an operation through all relevant
callers and state writers, including the code that supposedly makes the risky operation safe.

## Evidence and threat-model corrections

The upstream references are heuristics. Apply these rules when using them:

- An asymmetry may be intentional. Name the guarantee that requires equivalence and check docs,
  known issues and accepted risks before claiming a missing guard is exploitable.
- Do not drop a supported single-mechanism issue because a reference assumes another agent covers it.
- Privileged access is not supplied for free. Determine whether the actor exceeds its intended
  authority; a trusted administrator choosing an authorized configuration is not itself a bounty finding.
- Unlimited capital and flash loans are hypothesis-generation assumptions only. Show available
  liquidity, collateral, costs, ordering and realizable outcomes in the actual deployment.
- A rounding direction is operation-specific. For ERC-4626, deposit outputs shares down, mint
  charges assets up, withdraw burns shares up, redeem outputs assets down. Other formulas require
  their own specification. Do not derive severity from the existence of truncation alone.
- Account for library/compiler protections, actual signedness and realistic bounds. Use an independent
  arithmetic oracle and verify both the normal and adversarial paths.
- Respect EVM rollback semantics. A reverted call does not ordinarily leave its own partial writes
  committed. Trace call frames, caught failures and callbacks before claiming persistent partial state.
- Keep state-changing live tests within the program and owned fixtures. Prefer a local fork/replica
  for financial, callback, or adversarial-ordering experiments. Do not broadcast exploit transactions.

Output a compact trace: actor authority, initial state, call/write sequence, invariant before/after,
who gains or loses what, concrete evidence, alternative explanation, and next discriminating test.
Mark unproven paths as leads. Use fp-check before reporting.
