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.

GET/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>"
Parameters
ParameterDescription
chain

path · string · required

ETH and RHC only; every other chain returns 400.
hash

path · 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.

Response fields of What one ERC-4337 user operation did
FieldTypeDescription
hashstringThe operation hash, lowercase.
operationobject | nullThe operation, or null when the hash is not a known user operation.
operation.senderstringThe smart account that sent the operation.
operation.bundlerstringThe account that submitted the bundle transaction carrying it.
operation.paymasterstring | nullThe contract that paid its gas; null when the smart account paid for itself.
operation.factorystring | nullThe factory that deployed the smart account in this operation; null when the account already existed.
operation.entryPointstringThe ERC-4337 entry point contract it went through.
operation.entryPointVersionstring | nullThe entry point version, e.g. "v0.7"; null when not known.
operation.transactionHashstringThe bundle transaction the operation ran in.
operation.blockNumberintegerThe block it ran in.
operation.timestampintegerUnix seconds of that block.
operation.successbooleanWhether the operation's own execution succeeded.
operation.revertReasonstring | nullWhy it failed, as recorded — often the raw revert data in hex. null on success, and on a failure with no reason recorded.
operation.feeWeistring | nullWhat 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.gasUsedstring | nullThe gas it used, as a decimal string; null when not known.
operation.callTargetstring | nullThe contract the smart account called, when it made one call; null on a batch of calls or when not known.
operation.callMethodstring | nullThe 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