BROWSER-LOCAL ERC-4337 DIAGNOSTICS

Open the UserOperation before another opaque bundler error sends you spelunking.

Paste JSON, a JSON-RPC envelope, handleOps calldata, or revert data. The doctor separates packed fields, explains AA errors, validates version boundaries, and produces a request you can reproduce yourself.

  • EntryPoint v0.6 · v0.7 · v0.8 · v0.9
  • Inputs JSON · calldata · revert
  • Hashing Legacy · packed · EIP-712
  • Network No RPC or wallet calls
USEROP DOCTOR
ENTRYPOINT v0.9 · CHAIN 1 paymasterSignature: 65B
Shape valid · external state not checked
THE USEFUL PART

The doctor turns one opaque object into inspectable fields and a reproducible request. It distinguishes malformed local data from conclusions that require a bundler or on-chain state, and it never sends the operation anywhere.

INSPECT THE ACTUAL OPERATION

UserOperation doctor

Confirm the EntryPoint version, address, and chain before treating a calculated hash as authoritative. Structural decoding can start immediately.

Nothing is submitted
ERC-4337 field microscopeVersion-aware · browser-local · read-only
01

UserOperation, RPC envelope, calldata, or revert

Waiting for input
Optional account ABI for callData
02

Deterministic findings

Not analyzed

Analyze the sample or paste your own operation to separate local shape errors from checks that need external state.

03

Packed anatomy and exports

Decoded fields, byte segments, and a reproducible RPC request appear here.
Reproduction RPC request
Parsing and hashing stay localNo chain or bundler requestsNever paste private keys

FROM BLOB TO REPRODUCTION

Debug the representation before debugging the chain

Many integration failures can be isolated without sending another request or opening a block explorer.

  1. 01

    Paste the failing artifact

    Use the exact UserOperation, RPC envelope, handleOps calldata, or nested revert returned by the bundler.

  2. 02

    Confirm version and domain

    Choose the EntryPoint generation and verify its address and chain ID before relying on a hash.

  3. 03

    Export the reproduction

    Copy normalized fields, a request body, cURL command, or Markdown report into the issue or test that owns the failure.

ACCOUNT ABSTRACTION IN PRODUCTION

Built for the boundary where wallet, bundler, paymaster, and EntryPoint disagree

Wavect shipped account-abstraction infrastructure and MetaMask integrations against live, partially documented systems. The fastest debugging move is often to freeze the exact representation and prove which layer changed it.

Version-aware hashing

v0.6 legacy packing, v0.7 packed hashing, and v0.8 or v0.9 EIP-712 domains are kept separate instead of hidden behind one optimistic button.

Paymaster suffix inspection

v0.9 signature length and magic bytes are separated from signed paymaster data so parallel signing failures are visible.

External state stays external

The doctor labels checks that require code, nonce state, delegation, deposits, policy, simulation, or signature-specific account logic.

HONEST LIMITS

A decoder is not a bundler simulation

  • The tool validates representation and deterministic hashing. It does not execute validateUserOp, account callData, paymaster policy, or postOp.
  • EIP-7702 UserOperation hashing depends on the delegation address. The doctor will not fabricate that state from an incomplete input.
  • Account signatures and custom callData can be interpreted only when their scheme or ABI is supplied. A 65-byte value is not proof that a signature is valid.
  • Official EntryPoint addresses are convenient defaults. Verify the address and deployed code for the network you are actually using.

Questions about the UserOperation doctor

No. It performs JSON parsing, ABI decoding, packing, and hashing locally. The generated RPC request is text for you to review and run yourself.
v0.6, v0.7, v0.8, and v0.9. Structural shape can sometimes be inferred, but you must confirm the version before the tool presents a hash as authoritative.
Yes. It separates the paymaster address, verification and postOp gas limits, paymaster data, and the optional v0.9 paymaster signature suffix.
The EntryPoint hash includes the current delegation target. If that state or a complete authorization is absent, a local-only tool cannot produce an authoritative value without guessing.

FREE · OPEN SOURCE · READ-ONLY

Freeze the UserOperation, split the fields, and give the failure a reproducible shape.

Use the doctor locally, then take the normalized request and findings to the layer that actually failed.