Examples v07-wrapper-embedded-2
v07-wrapper-embedded-2
Bundler 0xf70d…dbef Unattributed bundler #48 (EOA) evidence level: hint submitted one v0.7 UserOperation through a wrapper contract: account 0xd05a…cc6b asked to 3 calls (erc20_approve x2, call x1), deploying the account first; the op succeeded; gas paid by the account itself.
- Block
- 97,838,013
- Outer status
- success grade: observed
- UserOperations
- 1 in 1
handleOpscall - Selector
0x0a2b8f36
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.
- The outer transaction was sent to a non-EntryPoint contract (a wrapper). Logs before BeforeExecution may include the wrapper's own activity, not only validation.
Who was involved
- Bundler
0xf70d…dbefUnattributed bundler #48 (EOA) evidence level: hintsent and paid for the outer transaction · grade: observed- Called contract
0xccc8…15beevidence level: unlabellednot an EntryPoint: a wrapper contract · grade: observed- EntryPoint
0x0000…a032EntryPoint v0.7 evidence level: primary sourcev0.7handleOps, embedded in the wrapper's call · grade: decoded- Beneficiary
0xb5dd…c729evidence level: unlabelledthebeneficiaryargument ofhandleOps· differs from the bundler · grade: decoded
Operations: what was asked, what happened
Operation 1
v0.7 succeeded index 0Account 0xd05a…cc6b asked to 3 calls (erc20_approve x2, call x1), deploying the account first; the op succeeded; gas paid by the account itself.
Who was involved
- Smart account
0xd05a…cc6bevidence level: unlabelledthesenderfield ofUserOperationEvent· grade: observed- Account code
0x6864…00c2evidence level: unlabelledcontract code and storage read at block 97838013 · EIP-1967 proxy · grade: contract read- Factory
0x91e6…8985Unattributed factory #22 (contract) (third-party label: eth-infinitism (ERC-4337 reference)) evidence level: hintthe operation'sinitCodefield · grade: decoded- Signer key
0xb5dd…c729evidence level: unlabelledsignature schemepersonal_sign(userOpHash), an EOA (secp256k1) key; matches the on-chain owner getterowner()=0xb5ddd55bcfba76ae7e1ef88cd1acc49aee50c729at block 97838013. A key, not a person. · grade: contract read
What was asked
Entry function on the account: executeBatch(address[],uint256[],bytes[]) grade: decoded
Call 1 allow
0x17d9…6cecto spend 990000000 base units of token0xb97e…8a6eUSDC (native, Circle) evidence level: primary source (= 990 USDC; token symbol and decimals read from the contract at block 97838013)Call 2 allow
0x17d9…6cecto spend an UNLIMITED amount of token0xb97e…8a6eUSDC (native, Circle) evidence level: primary sourceCall 3 call selector 0x1165bb46 on
0x17d9…6cec(function unknown)
This operation also deployed the account grade: observed via the factory 0x91e6…8985 Unattributed factory #22 (contract) (third-party label: eth-infinitism (ERC-4337 reference)) evidence level: hint.
What happened
The outer transaction reported success grade: observed; this UserOperation succeeded grade: observed.
- Call 1 ran (its logs show it) grade: observedan Approval from the account to this spender appears in this op's segment (allowance may since be spent)
- Call 2 ran (its logs show it) grade: observedan Approval from the account to this spender appears in this op's segment (allowance may since be spent)
- Call 3 ran (its logs show it) grade: inferredthe target emitted 1 log(s) in this op's execution segment (unknown event 0x2ed5a874 x1); this shows it ran, not what it achieved
Token movements logged during this operation:
- ERC-20 transfer of 990.000000 USDC
0xb97e…8a6eUSDC (native, Circle) evidence level: primary source from0xb92f…ff4fto0xd05a…cc6binto the account, during before execution grade: observed - ERC-20 transfer of 1.485000 USDC
0xb97e…8a6eUSDC (native, Circle) evidence level: primary source from0xd05a…cc6bto0x17d9…6cecout of the account, during execution grade: observed - ERC-20 transfer of 1.485000 USDC
0xb97e…8a6eUSDC (native, Circle) evidence level: primary source from0x17d9…6cecto0x7e7d…1750between other addresses, during execution grade: observed - ERC-20 transfer of 988.515000 USDC
0xb97e…8a6eUSDC (native, Circle) evidence level: primary source from0xd05a…cc6bto0x8ac5…3379out of the account, during execution grade: observed - ERC-20 transfer of 101.225705 WAVAX
0xb31f…66c7WAVAX (Wrapped AVAX) evidence level: primary source from0x8ac5…3379to0x17d9…6cecbetween other addresses, during execution grade: observed - wrapped-AVAX withdrawal (unwrap) of 101.225705 WAVAX
0xb31f…66c7WAVAX (Wrapped AVAX) evidence level: primary source from0x17d9…6cecto ? unwrap, during execution grade: observed - ERC-20 transfer of 18,728.019248 PEAK
0xe916…897fToken self-named 'Peak' (PEAK) evidence level: self-description from0x0638…bc85to0xd05a…cc6binto the account, during execution grade: observed - wrapped-AVAX deposit (wrap) of 98.705185 WAVAX
0xb31f…66c7WAVAX (Wrapped AVAX) evidence level: primary source from ? to0x17d9…6cecwrap, during execution grade: observed - ERC-20 transfer of 736,946.143515 PEAK
0xe916…897fToken self-named 'Peak' (PEAK) evidence level: self-description from0x5e6b…5db6to0xd05a…cc6binto the account, during execution grade: observed - ERC-20 transfer of 98.705185 WAVAX
0xb31f…66c7WAVAX (Wrapped AVAX) evidence level: primary source from0x17d9…6cecto0x5e6b…5db6between other addresses, during execution grade: observed
Money for this operation
The EntryPoint charged this operation 0.000000 AVAX (actualGasCost) grade: observed, taken from account (sender) deposit 0xd05a664790645e1fda7946e436c7805c6c5dcc6b grade: inferred and paid to the beneficiary grade: inferred.
Sponsorship: self-funded: no paymaster: the account's own EntryPoint deposit (or prefund it sent) pays the gas charge grade: decoded
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
Show all 36 receipt logs
| # | Emitter | Event | Phase |
|---|---|---|---|
| 0 | 0xccc8…15be evidence level: unlabelled | FundsMovement(address,address,address,uint256,bytes) | before execution |
| 1 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Transfer | before execution |
| 2 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Approval | before execution |
| 3 | 0xb92f…ff4f evidence level: unlabelled | SolverCallExecuted(address,bytes,uint256) | before execution |
| 4 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Transfer | before execution |
| 5 | 0xb92f…ff4f evidence level: unlabelled | FundsMovement(address,address,address,uint256,bytes) | before execution |
| 6 | 0xb92f…ff4f evidence level: unlabelled | SolverCallExecuted(address,bytes,uint256) | before execution |
| 7 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Transfer | before execution |
| 8 | 0xb92f…ff4f evidence level: unlabelled | FundsMovement(address,address,address,uint256,bytes) | before execution |
| 9 | 0xb92f…ff4f evidence level: unlabelled | SolverCallExecuted(address,bytes,uint256) | before execution |
| 10 | 0xb92f…ff4f evidence level: unlabelled | SolverCallExecuted(address,bytes,uint256) | before execution |
| 11 | 0xd05a…cc6b evidence level: unlabelled | Upgraded(address) | before execution |
| 12 | 0xd05a…cc6b evidence level: unlabelled | SimpleAccountInitialized(address,address) | before execution |
| 13 | 0xd05a…cc6b evidence level: unlabelled | Initialized(uint64) | before execution |
| 14 | 0x0000…a032 EntryPoint v0.7 evidence level: primary source | AccountDeployed | before execution |
| 15 | 0x0000…a032 EntryPoint v0.7 evidence level: primary source | BeforeExecution | boundary |
| 16 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Approval | execution |
| 17 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Approval | execution |
| 18 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Transfer | execution |
| 19 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Transfer | execution |
| 20 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Transfer | execution |
| 21 | 0x138c…d5b6 evidence level: unlabelled | other | execution |
| 22 | 0x8ac5…3379 evidence level: unlabelled | Swap(address,address,uint24,bytes32,bytes32,uint24,bytes32,bytes32) | execution |
| 23 | 0xb31f…66c7 WAVAX (Wrapped AVAX) evidence level: primary source | Transfer | execution |
| 24 | 0xb31f…66c7 WAVAX (Wrapped AVAX) evidence level: primary source | Withdrawal | execution |
| 25 | 0x0638…bc85 evidence level: unlabelled | Swap(bytes32,address,int128,int128,uint160,uint128,int24,uint24) | execution |
| 26 | 0xe916…897f Token self-named 'Peak' (PEAK) evidence level: self-description | Transfer | execution |
| 27 | 0xb31f…66c7 WAVAX (Wrapped AVAX) evidence level: primary source | Deposit | execution |
| 28 | 0xe916…897f Token self-named 'Peak' (PEAK) evidence level: self-description | Transfer | execution |
| 29 | 0xb31f…66c7 WAVAX (Wrapped AVAX) evidence level: primary source | Transfer | execution |
| 30 | 0x5e6b…5db6 evidence level: unlabelled | Swap(address,address,int256,int256,uint160,uint128,int24) | execution |
| 31 | 0x17d9…6cec evidence level: unlabelled | other | execution |
| 32 | 0x0000…a032 EntryPoint v0.7 evidence level: primary source | UserOperationEvent | execution |
| 33 | 0xb92f…ff4f evidence level: unlabelled | SolverCallExecuted(address,bytes,uint256) | after the EntryPoint call |
| 34 | 0xb92f…ff4f evidence level: unlabelled | SolverCallExecuted(address,bytes,uint256) | after the EntryPoint call |
| 35 | 0xb92f…ff4f evidence level: unlabelled | SolverCallExecuted(address,bytes,uint256) | after the EntryPoint call |
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.
- The beneficiary is only where gas compensation was sent; it is not the user, and it is not proof of who runs the bundler.
- UserOp success=true only means the account's call did not revert at the top level. Accounts and batch executors can catch inner failures, so individual legs can still have failed.
- Some contracts involved are unlabelled: event and function names shown for them are signature-database hints and do not identify the app or protocol.
- Token transfers between other addresses inside this op's segment were caused during its execution, but the receipt does not say who economically benefited.
- 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.
- handleOps was embedded inside a wrapper contract's call. The wrapper's own logic (what it did before/after, and with which funds) is not decoded.
Rendered from the explain record (schema epi.explain/v1). Address labels and levels come
from the current registry. How evidence grades and levels work →