Chains API

The newest validator deposits on Ethereum

The newest beacon-chain validator deposits accepted on Ethereum (validator public key, amount, withdrawal address, status) and the total number accepted so far.

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

What it returns

The newest limit beacon-chain validator deposits accepted on Ethereum, newest first: the deposit index, the validator public key, the withdrawal credentials and address, the amount in wei (a decimal string), the status, and the block and transaction that carried it. totalDeposits is every deposit the deposit contract has accepted as of the newest indexed deposit — that index plus one, a count rather than an estimate because the index counts up by one per deposit from 0. Deposits are sparse next to withdrawals and arrive in bursts: about one every four minutes when measured, most of them whole transactions of dozens at once, so this list often spans hours.

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

query · integer · optional

How many deposits to return: 1 to 50. Defaults to 10. The ceiling is one source page; a short page returns fewer than asked rather than an error. limit ≤ 35 keeps the answer under 32 KB.
chain

path · string · required

ETH only. The deposit contract is an Ethereum mainnet contract; every other chain returns 400.

Response fields

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

Response fields of The newest validator deposits on Ethereum
FieldTypeDescription
totalDepositsintegerEvery validator deposit accepted as of the newest indexed deposit: that index plus one. The index counts up by one per deposit from 0, so this is a count rather than an estimate.
depositsobject[]Newest first, one per deposit index, with no gaps.
deposits[].indexintegerThe deposit index: one per deposit accepted by the deposit contract, counting up from 0 across the whole chain. This list is that index, newest first and with no gaps.
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: the newest page measured ran from 7.59 to 1800 ETH. 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 that carried this deposit — one transaction commonly carries dozens, so the same hash repeats down the list.

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