image.png

image.png


1. UserOp

A UserOp is not a transaction.

It’s a struct containing fields like:

Why this design?

Because simulations must be trustless.

UserOps cannot read dynamic chain data (block timestamp, blockhash, etc.).

That prevents simulation mismatch attacks.

UserOp Mempool

The mempool has rules: