EntryPoint IntelligenceERC-4337 on Avalanche C-Chain Data to 2026-10-25

Examples v07-wrapper-embedded-deploy-swap

v07-wrapper-embedded-deploy-swap

v0.7 succeeded 1 operation

Bundler 0xf70d…dbef Unattributed bundler #48 (EOA) evidence level: hint submitted one v0.7 UserOperation through a wrapper contract: account 0xe9da…11df asked to 3 calls (erc20_approve x2, call x1), deploying the account first; the op succeeded; gas paid by the account itself.

Transaction
0x47e8e57e5ba292a9b79627d397a2766283d8fd53fbe459b9f67577bbc0dcf9a6 explained →
Block
97,837,993
Outer status
success grade: observed
UserOperations
1 in 1 handleOps call
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…dbef Unattributed bundler #48 (EOA) evidence level: hint
sent and paid for the outer transaction · grade: observed
Called contract
0xccc8…15be evidence level: unlabelled
not an EntryPoint: a wrapper contract · grade: observed
EntryPoint
0x0000…a032 EntryPoint v0.7 evidence level: primary source
v0.7 handleOps, embedded in the wrapper's call · grade: decoded
Beneficiary
0x9ac1…6702 evidence level: unlabelled
the beneficiary argument of handleOps · differs from the bundler · grade: decoded

Operations: what was asked, what happened

Operation 1

v0.7 succeeded index 0

Account 0xe9da…11df 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
0xe9da…11df evidence level: unlabelled
the sender field of UserOperationEvent · grade: observed
Account code
0x6864…00c2 evidence level: unlabelled
contract code and storage read at block 97837993 · EIP-1967 proxy · grade: contract read
Factory
0x91e6…8985 Unattributed factory #22 (contract) (third-party label: eth-infinitism (ERC-4337 reference)) evidence level: hint
the operation's initCode field · grade: decoded
Signer key
0x9ac1…6702 evidence level: unlabelled
signature scheme personal_sign(userOpHash), an EOA (secp256k1) key; matches the on-chain owner getter owner()=0x9ac1dd76baff845d274c18650427ec05a6966702 at block 97837993. A key, not a person. · grade: contract read

What was asked

Entry function on the account: executeBatch(address[],uint256[],bytes[]) grade: decoded

  1. Call 1 allow 0x17d9…6cec to spend 148500000 base units of token 0xb97e…8a6e USDC (native, Circle) evidence level: primary source (= 148.5 USDC; token symbol and decimals read from the contract at block 97837993)

    target 0xb97e…8a6e USDC (native, Circle) evidence level: primary source · function approve(address,uint256) grade: decoded · via the account's executeBatch (batch) function

  2. Call 2 allow 0x17d9…6cec to spend an UNLIMITED amount of token 0xb97e…8a6e USDC (native, Circle) evidence level: primary source

    target 0xb97e…8a6e USDC (native, Circle) evidence level: primary source · function approve(address,uint256) grade: decoded · via the account's executeBatch (batch) function

  3. Call 3 call selector 0x39ecce49 on 0x17d9…6cec (function unknown)

    target 0x17d9…6cec evidence level: unlabelled · function 0x39ecce49 grade: unknown · via the account's executeBatch (batch) function

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:

Money for this operation

The EntryPoint charged this operation 0.000000 AVAX (actualGasCost) grade: observed, taken from account (sender) deposit 0xe9daf34d7fd6de31791d6f44801326f49e9711df 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

The call trace

85 internal calls grade: observed in a trace.

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

Outer receipt fee (bundler → chain)
0.010968 AVAX
gas used × effective gas price, paid once
Σ actualGasCost (deposits → beneficiary)
0.000000 AVAX
1 operation charge

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 32 receipt logs
Receipt logs (32), in order, with the lifecycle phase each belongs to
#EmitterEventPhase
00xccc8…15be evidence level: unlabelledFundsMovement(address,address,address,uint256,bytes)before execution
10xb97e…8a6e USDC (native, Circle) evidence level: primary sourceTransferbefore execution
20xb97e…8a6e USDC (native, Circle) evidence level: primary sourceApprovalbefore execution
30xb92f…ff4f evidence level: unlabelledSolverCallExecuted(address,bytes,uint256)before execution
40xb97e…8a6e USDC (native, Circle) evidence level: primary sourceTransferbefore execution
50xb92f…ff4f evidence level: unlabelledFundsMovement(address,address,address,uint256,bytes)before execution
60xb92f…ff4f evidence level: unlabelledSolverCallExecuted(address,bytes,uint256)before execution
70xb97e…8a6e USDC (native, Circle) evidence level: primary sourceTransferbefore execution
80xb92f…ff4f evidence level: unlabelledFundsMovement(address,address,address,uint256,bytes)before execution
90xb92f…ff4f evidence level: unlabelledSolverCallExecuted(address,bytes,uint256)before execution
100xb92f…ff4f evidence level: unlabelledSolverCallExecuted(address,bytes,uint256)before execution
110xe9da…11df evidence level: unlabelledUpgraded(address)before execution
120xe9da…11df evidence level: unlabelledSimpleAccountInitialized(address,address)before execution
130xe9da…11df evidence level: unlabelledInitialized(uint64)before execution
140x0000…a032 EntryPoint v0.7 evidence level: primary sourceAccountDeployedbefore execution
150x0000…a032 EntryPoint v0.7 evidence level: primary sourceBeforeExecutionboundary
160xb97e…8a6e USDC (native, Circle) evidence level: primary sourceApprovalexecution
170xb97e…8a6e USDC (native, Circle) evidence level: primary sourceApprovalexecution
180xb97e…8a6e USDC (native, Circle) evidence level: primary sourceTransferexecution
190xb97e…8a6e USDC (native, Circle) evidence level: primary sourceTransferexecution
200xb97e…8a6e USDC (native, Circle) evidence level: primary sourceTransferexecution
210x138c…d5b6 evidence level: unlabelledotherexecution
220x8ac5…3379 evidence level: unlabelledSwap(address,address,uint24,bytes32,bytes32,uint24,bytes32,bytes32)execution
230xb31f…66c7 WAVAX (Wrapped AVAX) evidence level: primary sourceTransferexecution
240xe916…897f Token self-named 'Peak' (PEAK) evidence level: self-descriptionTransferexecution
250xb31f…66c7 WAVAX (Wrapped AVAX) evidence level: primary sourceTransferexecution
260x5e6b…5db6 evidence level: unlabelledSwap(address,address,int256,int256,uint160,uint128,int24)execution
270x17d9…6cec evidence level: unlabelledotherexecution
280x0000…a032 EntryPoint v0.7 evidence level: primary sourceUserOperationEventexecution
290xb92f…ff4f evidence level: unlabelledSolverCallExecuted(address,bytes,uint256)after the EntryPoint call
300xb92f…ff4f evidence level: unlabelledSolverCallExecuted(address,bytes,uint256)after the EntryPoint call
310xb92f…ff4f evidence level: unlabelledSolverCallExecuted(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 →