Examples v07-failed-inner-userop
v07-failed-inner-userop
Bundler 0x4337…98b6 Unattributed bundler #5 (EOA) evidence level: hint submitted one v0.7 UserOperation: account 0xd5f2…2b56 asked to call depositForBurn(...) on 0x28b5…cf5d; the op FAILED; gas sponsored by 0x03df…103b Unattributed paymaster #28 (contract) evidence level: hint.
- Block
- 97,860,967
- Outer status
- success grade: observed
- UserOperations
- 1 in 1
handleOpscall - Selector
0x765e827f
How to read the evidence markers
Evidence levels (how strong an address label is)
- evidence level: primary source The vendor or protocol itself publishes this exact address
- evidence level: self-description What the contract says about itself via a getter; contracts can claim any name
- evidence level: cluster Shares a key, getter or bytecode with labelled addresses: same machinery, not proof of the same operator
- evidence level: hint Ranking, explorer tag, metadata or third-party label: a clue, never proof
- evidence level: unlabelled No registry label. In running text, an address without a marker has no label.
Evidence grades (how a value was obtained), strongest first
grade: observed grade: decoded grade: recomputed grade: recovered grade: contract read grade: inferred grade: unknown
Weaker grades are set in italics. Hover or focus a marker for its definition; full definitions.
Who was involved
- Bundler
0x4337…98b6Unattributed bundler #5 (EOA) evidence level: hintsent and paid for the outer transaction · grade: observed- Called contract
0x0000…a032EntryPoint v0.7 evidence level: primary sourcegrade: observed- EntryPoint
0x0000…a032EntryPoint v0.7 evidence level: primary sourcev0.7handleOps· grade: decoded- Beneficiary
0x4337…98b6Unattributed bundler #5 (EOA) evidence level: hintthebeneficiaryargument ofhandleOps· same address as the bundler · grade: decoded
Operations: what was asked, what happened
Operation 1
v0.7 failed index 0Account 0xd5f2…2b56 asked to call depositForBurn(...) on 0x28b5…cf5d; the op FAILED; gas sponsored by 0x03df…103b Unattributed paymaster #28 (contract) evidence level: hint.
Who was involved
- Smart account
0xd5f2…2b56evidence level: unlabelledthesenderfield ofUserOperationEvent· grade: observed- Account code
0x9c6e…1aedevidence level: unlabelledcontract code and storage read at block 97860967 · EIP-1967 proxy · grade: contract read- Paymaster
0x03df…103bUnattributed paymaster #28 (contract) evidence level: hintthe operation'spaymasterAndDatafield · grade: decoded- Signer key
0x65aa…5a14evidence level: unlabelledsignature schemepersonal_sign(userOpHash), an EOA (secp256k1) key; matches the on-chain owner gettergetNativeOwner()=0x65aa0b934419e289c20db2495f5dc56f17f55a14at block 97860967. A key, not a person. · grade: contract read
What was asked
Entry function on the account: execute(address,uint256,bytes) grade: decoded
Call 1 call depositForBurn(...) on
0x28b5…cf5d
What happened
The outer transaction reported success grade: observed; this UserOperation failed grade: observed.
Revert reason from UserOperationRevertReason: ERC20: transfer amount exceeds balance grade: observed
- Call 1 undone (the operation reverted) grade: observedthe op's execution reverted (UserOperationEvent success=false), so this leg's effects were undone
Money for this operation
The EntryPoint charged this operation 0.001981 AVAX (actualGasCost) grade: observed, taken from paymaster deposit 0x03df76c8c30a88f424cf3cbbc36a1ca02763103b Unattributed paymaster #28 (contract) evidence level: hint grade: inferred and paid to the beneficiary grade: inferred.
Sponsorship: sponsored, terms not visible: a paymaster pays the gas charge from its deposit; its terms (free, token-paid, off-chain billing) are not decodable from this record grade: decoded
The call trace
17 internal calls grade: observed in a trace.
Errors in the call tree:
- call to
0xd5f2…2b56evidence level: unlabelledexecute(address,uint256,bytes): execution reverted ·ERC20: transfer amount exceeds balance - call to
0x9c6e…1aedevidence level: unlabelledexecute(address,uint256,bytes): execution reverted ·ERC20: transfer amount exceeds balance - call to
0x28b5…cf5devidence level: unlabelledsupportsInterface(bytes4): execution reverted - call to
0x555e…3ec8evidence level: unlabelledsupportsInterface(bytes4): execution reverted - call to
0x28b5…cf5devidence level: unlabelleddepositForBurn(uint256,uint32,bytes32,address,bytes32,uint256,uint32): execution reverted ·ERC20: transfer amount exceeds balance - call to
0x555e…3ec8evidence level: unlabelleddepositForBurn(uint256,uint32,bytes32,address,bytes32,uint256,uint32): execution reverted ·ERC20: transfer amount exceeds balance - call to
0xb97e…8a6eUSDC (native, Circle) evidence level: primary sourcetransferFrom(address,address,uint256): execution reverted ·ERC20: transfer amount exceeds balance - call to
0x30df…ffe6evidence level: unlabelledtransferFrom(address,address,uint256): execution reverted ·ERC20: transfer amount exceeds balance
an error deep in the call tree can be caught by a caller; only the outer status and the UserOp success flag say what persisted
Money
The outer fee (what the bundler paid the network) and the per-op charges (what the EntryPoint collected from deposits and paid to the beneficiary) are different quantities. They are listed, never added together; their difference is not 'bundler profit'.
The logs
| # | Emitter | Event | Phase |
|---|---|---|---|
| 0 | 0x0000…a032 EntryPoint v0.7 evidence level: primary source | BeforeExecution | boundary |
| 1 | 0x0000…a032 EntryPoint v0.7 evidence level: primary source | UserOperationRevertReason | execution |
| 2 | 0x0000…a032 EntryPoint v0.7 evidence level: primary source | UserOperationEvent | execution |
What we can't tell
- The signer is a key (address) recovered from the signature. It does not tell you which person, company or bot controls that key.
- A paymaster paid the gas charge, but that does not mean the user paid nothing: the paymaster may bill the user off-chain or in a token (see sponsorship mode).
- The beneficiary is only where gas compensation was sent; it is not the user, and it is not proof of who runs the bundler.
- Some contracts involved are unlabelled: event and function names shown for them are signature-database hints and do not identify the app or protocol.
- Names (token symbols, labels) are metadata unless their evidence level says otherwise.
- The outer fee is what the bundler paid the network for the whole transaction; it cannot be split fairly across ops or legs, and comparing it with the per-op charges does not give bundler profit.
Rendered from the explain record (schema epi.explain/v1). Address labels and levels come
from the current registry. How evidence grades and levels work →