“If an entity or operator were to exit their validator right now, when would their withdrawn ETH land on their withdrawal address?”To answer this question, we need to first determine the length of the exit queue. We do this by adding the stake of the validators that are currently in the exit queue (
exit_epoch
> latest_epoch
). We divide this by the current churn limit per epoch
to get the number of epochs it will take to clear this queue. We then take the minute equivalent of this number of epochs (6.4 minutes per epoch). There is also a minimum 4 epoch wait to fully exit (MAX_SEED_LOOKAHEAD
) so this needs to be taken into account as well. These combined then form the part of the queue involved in exiting.
The
MAX_SEED_LOOKAHEAD
is the minimum delay on validator activations and exits; it basically means that validators strategically activating and exiting can only affect the seed 4 epochs into the future. See here for more information.exit_epoch
and withdrawable_epoch
have passed. We also only consider those who have valid withdrawal credentials and compounding validators. Their full stakes and rewards (i.e. any ETH balance above 0) get withdrawn.
We then add the number of partial and full withdrawals waiting to be processed and divide it by 256 to get the withdrawals processed per epoch (16 per block, 32 blocks per epoch). This gives us the number of epochs it will take to clear the withdrawals waiting to be processed. Multiplying this by 6.4 minutes gives us the minute equivalent of the total epochs.
In actuality, there will be some block proposals missed which means no withdrawals will be processed. We are not taking this into account in this calculation as missed blocks have historically been only around 1% and this is only an estimate which is not aiming to be precise up to the second.