Risk warning system

16 rules, each one written down.

A rule fires only on something the simulation produced, and its evidence says exactly what it saw. There is no score and no safe badge. Any read that fails makes the whole preview “incomplete”, never clean.
R01

The transaction reverts

Any simulated call ends with status 0. The decoded reason (executor errors, Error(string), Panic) is shown.

Stop
R02

Calldata to an address without code

The target's code size is 0 while calldata is not empty.

Stop
R03

Function not decoded

The 4-byte selector is not in Delvo's list of known functions. Changes are still simulated.

Note
R04

Unlimited approval

An Approval event from you with an amount at or above 2^255.

Warning
R05

Approval to an address without code

An Approval event from you to a spender whose code size is 0 (a plain account).

Stop
R06

Approval to an unnamed contract

An Approval event from you to a contract not on Delvo's checked list.

Note
R07

Operator for a whole collection

An ApprovalForAll(you, operator, true) event.

Warning
R08

Approval for one item

An ERC-721 Approval event (four topics) from you.

Note
R09

Funds go to a third address

A transfer out of your address to an address that is neither the target, a named contract, nor a pool proved by its factory.

Warning
R10

An item leaves your wallet

An ERC-721 Transfer event from you.

Warning
R11

Events and balances disagree

For each token: the sum of Transfer events for you differs from balanceOf(you) after minus before, read in the same simulated block.

Warning
R12

Large price move

A swap moves its pool's price by 2% or more: (sqrtPrice after / sqrtPrice before)^2 − 1.

Warning
R13

HYPE sent to a contract without calldata

value > 0, no calldata, and the target has code.

Note
R14

Events not decoded

An event that is not a transfer, approval or swap shape Delvo reads.

Note
R15

Swap in a pool Delvo cannot prove

A swap event from an address that is not a pool of a known factory (getPool returns it) or a known PoolManager.

Warning
R16

Not enough HYPE

The node refuses the simulation because the sender holds less HYPE than the calls send. The preview adds the missing HYPE inside the simulation only and says so.

Stop
The four outcomes

revertsThis transaction would revert. Nothing would move, but you would still pay gas.

incompleteIncomplete: some reads failed, so this preview cannot say what it did not see.

flagsRules fired. Read each one before you sign.

no-rule-firedNo rule fired on this simulation. That is not a guarantee: read what the rules do not check.

A revert or a refused balance wins over everything; then any unread input makes the result incomplete; then a stop or warning; only then “no rule fired”.

What the rules do not check
  • The simulation runs on the latest block. The real transaction lands later; prices and balances can change in between.
  • A contract can behave differently when it can tell it is being simulated, or at a later time or block.
  • Delvo reads balances and allowances the token reports. A token can misreport them.
  • Approvals you gave before this transaction are not part of this preview: see Allowances.
  • Names come from a short list of contracts checked on 13 Nov 2026; an unnamed contract is not a bad one, and a named one can still be misused.