Transactions API
What one ERC-4337 user operation did
One account-abstraction user operation by hash: its smart account, bundler, paymaster, entry point, bundle transaction, fee and whether it succeeded.
/api/external/transaction-analysis/user-operation/{chain}/{hash}What it returns
One account-abstraction (ERC-4337) user operation, by its hash: the smart account that sent it, the bundler that submitted it, the paymaster that paid its gas (if any), the factory that deployed the account in it (if any), the entry point, the bundle transaction and block it ran in, what it paid, and whether it succeeded — with the revert reason when it did not. operation is null when the hash is not a known user operation on the chain (never sent, not indexed yet, or a transaction hash rather than an operation hash).
Chains
- Ethereum ETH
- Robinhood Chain RHC
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/transaction-analysis/user-operation/ETH/<hash>"
| Parameter | Description |
|---|---|
chainpath · string · required | ETH and RHC only; every other chain returns 400. |
hashpath · string · required | The ERC-4337 user operation hash (0x followed by 64 hexadecimal characters) — the operation's own hash, not the hash of the bundle transaction that carried it. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
hash | string | The operation hash, lowercase. |
operation | object | null | The operation, or null when the hash is not a known user operation. |
operation.sender | string | The smart account that sent the operation. |
operation.bundler | string | The account that submitted the bundle transaction carrying it. |
operation.paymaster | string | null | The contract that paid its gas; null when the smart account paid for itself. |
operation.factory | string | null | The factory that deployed the smart account in this operation; null when the account already existed. |
operation.entryPoint | string | The ERC-4337 entry point contract it went through. |
operation.entryPointVersion | string | null | The entry point version, e.g. "v0.7"; null when not known. |
operation.transactionHash | string | The bundle transaction the operation ran in. |
operation.blockNumber | integer | The block it ran in. |
operation.timestamp | integer | Unix seconds of that block. |
operation.success | boolean | Whether the operation's own execution succeeded. |
operation.revertReason | string | null | Why it failed, as recorded — often the raw revert data in hex. null on success, and on a failure with no reason recorded. |
operation.feeWei | string | null | What the operation paid, in wei of the chain's native coin, as a decimal string. "0" is a real zero — the operation itself was charged nothing and whoever bundled it absorbed the cost, which is common on both served chains and does not mean the chain is free. null when not known. |
operation.gasUsed | string | null | The gas it used, as a decimal string; null when not known. |
operation.callTarget | string | null | The contract the smart account called, when it made one call; null on a batch of calls or when not known. |
operation.callMethod | string | null | The smart-account method the operation invoked, e.g. "execute(address target, uint256 value, bytes data)"; null when it could not be decoded. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key