This table is only relevant of Ethereum mainnet and does not exist for other EVM chains on Dune.
Dune does not have beacon chain data yet. This table introduces the action of withdrawing from the beacon chain only.
The Ethereum Improvement Proposal (EIP) 4895 introduces a system-level "operation" to support validator withdrawals that are "pushed" from the beacon chain to the EVM.
Withdrawals are represented as a new type of object in the execution payload, called an "operation", that cleanly separates this "system-level" operation from regular transactions. Withdrawals provide key information from the consensus layer such as a monotonically increasing index, validator index, recipient address, and the amount of ether given in Gwei.
Using this table you can observe beacon chain withdrawals.
How to work with this table¶
In order to connect deposits and withdrawals, we must identify the
validator_index of unique depositors. Since Dune doesn't have beacon chain data yet, we have to rely on a workaround using a query to obtain a list of valid and active deposits from the Ethereum deposit contract.
This query returns a list of valid and active deposits, which we can use to identify the
validator_index of unique depositors. We can use this query to match the
validator_index of depositors with the
validator_index of withdrawers in the withdrawals table.
The Query is manually maintained and therefore may not always be up to date, but most historical data is available.
Using this query, we can for example take a look at how the exodus of Kraken's ETH staking pools from the beacon chain is going:
We hope to integrate beacon chain data in the future, which will streamline the process of connecting deposits and withdrawals, and eliminate the need for the aforementioned workaround.
|block_time||timestamp||The time the block was created|
|block_number||bigint||The number of the block in the blockchain|
|index||bigint||a monotonically increasing index, starting from 0, as a value that increments by 1 per withdrawal to uniquely identify each withdrawal|
|validator_index||bigint||the validator_index of the validator, as a uint64 value, on the consensus layer the withdrawal corresponds to|
|amount||bigint||a nonzero amount of ether given in Gwei (1e9 wei)|
|address||varbinary||a recipient for the withdrawn ether. Note that depositor and recipient address are not neccesarily the same|
|withdrawals_root||varbinary||the 32 byte root of the trie committing to the list of withdrawals provided in a given execution payload|
|block_hash||varbinary||The hash of the block|