Transactions API

Beacon-chain validator deposits made by a transaction

Which beacon-chain validator deposits one transaction made: amount, validator public key, withdrawal address, deposit index and status.

GET/api/external/transaction-analysis/transaction-beacon-deposits/{chain}/{hash}

What it returns

Every beacon-chain validator deposit one transaction made: amount, validator public key, withdrawal address, deposit index and status. Served on Ethereum mainnet only; every other chain returns 400. A transaction that made no deposits answers deposits: [] — a real answer, not an error. A hash that is well-formed but unknown answers 404, never an empty list: "we have no such transaction" and "this transaction made no deposits" are different answers and this resource keeps them apart. Exactly one upstream call is made per request; see complete.

Chains

  • Ethereum ETH

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/transaction-beacon-deposits/ETH/<hash>"
Parameters
ParameterDescription
chain

path · string · required

Ethereum only; every other chain returns 400 — beacon-chain deposits are read from a single mainnet source with no equivalent on any other chain this API serves.
hash

path · string · required

The transaction hash: 0x followed by 64 hexadecimal characters. Not a Solana signature (base58) — Solana is not served by this resource.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of Beacon-chain validator deposits made by a transaction
FieldTypeDescription
transactionHashstringThe transaction hash, lowercase.
depositsobject[]In the order the source returns them; not necessarily sorted by index.
deposits[].indexintegerThe deposit index: one per deposit accepted by the deposit contract, counting up from 0 across the whole chain. It is not a position within this transaction. Rows come back newest first, so within one transaction the index descends.
deposits[].pubkeystringThe validator’s BLS public key.
deposits[].signaturestring | nullThe deposit’s BLS signature, or null when not reported.
deposits[].withdrawalCredentialsstring | nullThe raw withdrawal-credential bytes, 0x-prefixed.
deposits[].withdrawalCredentialTypestring | nullDerived from the first byte of withdrawalCredentials: bls (0x00), execution (0x01) or compounding (0x02). null for a prefix never observed.
deposits[].withdrawalAddressstring | nullThe execution-layer withdrawal address. null exactly when withdrawalCredentialType is bls — a real "no execution withdrawal address", not missing data.
deposits[].amountWeistringThe deposit amount in WEI, as a decimal string. Never assume 32 ETH: amounts of 1.25, 31, 32, 119.594551 and 1000 ETH have all been observed on real deposits. Kept as a string and never pre-divided: at 18 decimals the value routinely exceeds what a JSON number holds exactly.
deposits[].statusstring | nullServed exactly as the source reports it. "pending" and "completed" are the only values observed; the exact point a deposit flips from one to the other was not measured, so this is deliberately a free string rather than a closed enum.
deposits[].blockNumberinteger | nullThe block the deposit transaction was mined in.
deposits[].blockTimestampinteger | nullUnix SECONDS the block was mined at.
deposits[].fromAddressstring | nullThe address that sent the deposit transaction.
deposits[].transactionHashstring | nullThe transaction hash this deposit was made in.
completebooleanfalse when the source’s own pagination cursor says more deposits exist beyond this page. Exactly one upstream call is made per request and pagination is never walked, so a transaction with more deposits than one page holds is served short with complete: false rather than paying an unbounded number of round trips.

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