Wallets API

The validator withdrawals one wallet received

The beacon-chain withdrawals credited TO one Ethereum address: withdrawal index, validator, amount in wei, block. These credits have no transaction hash and appear in no transaction list.

GET/api/external/wallet-analysis/wallet-beacon-withdrawals/{chain}/{address}

What it returns

Every beacon-chain withdrawal CREDITED TO this address, newest first: the withdrawal index, the validator the balance came from, the amount in wei (a decimal string) and the block and time that carried it. The key is the receiver. An address is matched against the validator’s execution-layer withdrawal address and nothing else — an address that funded validators but is not their withdrawal address answers an empty list here. These credits appear in no transaction list: since the Shanghai upgrade a withdrawal is applied directly in the block payload and has no transaction hash, so a wallet’s transaction history cannot show them at all — that is the reason this endpoint exists. Most rows are small automatic reward skims; a 32 ETH-sized amount is usually a validator exiting and returning its principal. An address that never received one is a real empty list, not an error: an address always exists. truncated is true when this address has more withdrawals than the ones listed.

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/wallet-analysis/wallet-beacon-withdrawals/ETH/<address>"
Parameters
ParameterDescription
limit

query · integer · optional

How many withdrawals to return: 1 to 50. Defaults to 10. The ceiling is one source page; an address with more withdrawals than that answers truncated: true rather than an error.
chain

path · string · required

ETH only. A beacon-chain withdrawal is an Ethereum consensus-layer event; every other chain returns 400.
address

path · string · required

The address the withdrawals were CREDITED TO — 0x followed by 40 hexadecimal characters, any case. This is the validator's execution-layer withdrawal address, not whoever sent the deposit: an address that only ever funded validators answers an empty list here.

Response fields

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

Response fields of The validator withdrawals one wallet received
FieldTypeDescription
addressstringThe address asked about, lower-cased. Case never changes the answer.
withdrawalsobject[]Newest first, descending by withdrawal index but NOT contiguous: the index counts every withdrawal on the chain, so it jumps wherever another address was paid in between. A real empty array for an address that never received one.
withdrawals[].indexintegerThe consensus layer’s withdrawal index: one per withdrawal, counting up from 0 across the WHOLE chain (measured: 143161643 then 105542156 on adjacent rows of one address).
withdrawals[].validatorIndexintegerThe validator the balance was withdrawn from. One address commonly receives from thousands of validators — a staking service pays every validator it runs into one address.
withdrawals[].amountWeistringThe amount credited in WEI, as a decimal string. A reward skim is typically hundredths of an ETH; a full exit returns the 32 ETH principal with it. Kept as a string and never pre-divided: at 18 decimals the value routinely exceeds what a JSON number holds exactly.
withdrawals[].blockNumberintegerThe block whose payload carried the credit. There is no transaction.
withdrawals[].timestampintegerUnix SECONDS of that block.
truncatedbooleantrue when this address has MORE withdrawals than the ones listed — either limit cut the list, or the address has received more than one source page holds. Raise limit first; past that, this address’s full history is deeper than this endpoint reaches. A staking service’s withdrawal address is paid several times per hour, so for one of those this is true for any limit.

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