Examples v08-erc20-paymaster-usdc-transfer
v08-erc20-paymaster-usdc-transfer
Bundler 0xcc5c…2c41 submitted one v0.8 UserOperation: account 0xfabc…0b65 asked to 2 calls (erc20_approve x1, erc20_transfer x1); the op succeeded; gas sponsored by 0x8888…2402 Pimlico singleton paymaster (EntryPoint v0.8) evidence level: primary source.
- Block
- 96,876,734
- 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
0xcc5c…2c41evidence level: unlabelledsent and paid for the outer transaction · grade: observed- Called contract
0x4337…f108EntryPoint v0.8 evidence level: primary sourcegrade: observed- EntryPoint
0x4337…f108EntryPoint v0.8 evidence level: primary sourcev0.8handleOps· grade: decoded- Beneficiary
0xcc5c…2c41evidence level: unlabelledthebeneficiaryargument ofhandleOps· same address as the bundler · grade: decoded
Operations: what was asked, what happened
Operation 1
v0.8 succeeded index 0Account 0xfabc…0b65 asked to 2 calls (erc20_approve x1, erc20_transfer x1); the op succeeded; gas sponsored by 0x8888…2402 Pimlico singleton paymaster (EntryPoint v0.8) evidence level: primary source.
Who was involved
- Smart account
0xfabc…0b65evidence level: unlabelledthesenderfield ofUserOperationEvent· grade: observed- Account code
0xbb4f…cbcdevidence level: unlabelledcontract code and storage read at block 96876734 · EIP-1167 minimal proxy · grade: contract read- Paymaster
0x8888…2402Pimlico singleton paymaster (EntryPoint v0.8) evidence level: primary sourcethe operation'spaymasterAndDatafield · grade: decoded
What was asked
Entry function on the account: executeBatch((address,uint256,bytes)[]) grade: decoded
Call 1 allow
0x8888…2402Pimlico singleton paymaster (EntryPoint v0.8) evidence level: primary source to spend 72587 base units of token0xb97e…8a6eUSDC (native, Circle) evidence level: primary source (= 0.072587 USDC; token symbol and decimals read from the contract at block 96876734) (that address is this op's paymaster)Call 2 transfer 200000 base units of token
0xb97e…8a6eUSDC (native, Circle) evidence level: primary source to0x23d3…c890(= 0.2 USDC; token symbol and decimals read from the contract at block 96876734)
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 confirmed by an exactly matching log grade: observeda Transfer with exactly this token, sender, recipient and amount appears in this op's execution segment
Token movements logged during this operation:
- ERC-20 transfer of 0.200000 USDC
0xb97e…8a6eUSDC (native, Circle) evidence level: primary source from0xfabc…0b65to0x23d3…c890out of the account, during execution grade: observed - ERC-20 transfer of 0.012633 USDC
0xb97e…8a6eUSDC (native, Circle) evidence level: primary source from0xfabc…0b65to0xd8ba…f21cout of the account, during execution grade: observed
Money for this operation
The EntryPoint charged this operation 0.001043 AVAX (actualGasCost) grade: observed, taken from paymaster deposit 0x888888888888ec68a58ab8094cc1ad20ba3d2402 Pimlico singleton paymaster (EntryPoint v0.8) evidence level: primary source grade: inferred and paid to the beneficiary grade: inferred.
Sponsorship: ERC-20 paymaster: the user pays the paymaster in a token grade: observed
Token charged in postOp: 12633 base units of 0xb97e…8a6e USDC (native, Circle) evidence level: primary source, sent to 0xd8ba…f21c evidence level: unlabelled grade: observed. the token payment goes where the paymaster's config says; it need not be the paymaster address
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 | 0x4337…f108 EntryPoint v0.8 evidence level: primary source | BeforeExecution | boundary |
| 1 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Approval | execution |
| 2 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Transfer | execution |
| 3 | 0xb97e…8a6e USDC (native, Circle) evidence level: primary source | Transfer | execution |
| 4 | 0x8888…2402 Pimlico singleton paymaster (EntryPoint v0.8) evidence level: primary source | UserOperationSponsored | execution |
| 5 | 0x4337…f108 EntryPoint v0.8 evidence level: primary source | UserOperationEvent | execution |
What we can't tell
- The signer is a passkey (a P-256 public key held by a device or password manager); there is no address to look up, and the key does not tell you who holds the device.
- 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.
- 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.
- 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 →