Deposit Process

This post will explain the depositing process and each of the phases. Before we start, to understand the basic idea of how Ethereum 2.0 keys work, the Ethereum 2.0 Keys blog is highly recommended.

The deposit contract

Let's go through each of the states above and explain how their durations are approximately determined.

1. Mempool - Status: Unknown

Every signed transaction visits the Mempool first, which can be referred to as the waiting room for transactions. During this period, the transaction status is pending. Depending on the chosen gas fee for the transaction, miners pick the ones that return them the most value first. If the network is highly congested (=many pending transactions), there's a high chance that new transactions will outbid(gas fees) older transactions, leading to unknown waiting times.

2. Deposit contract - Status: Deposited

Once the transaction reaches the deposit contract, the deposit contract checks the transaction for its Input data and value. If the threshold of 1 ETH is not met or the transaction has no/invalid input data, the transaction will get rejected and returned to the sender.

The user-created input data is a reflection of the upcoming validator and withdrawal keys on the Ethereum 2.0 network as seen in the picture below. The full Ethereum 2.0 keys blog is here.

Why exactly does this take at least 12 hours?

The Ethereum 2.0 chain only considers transactions which have been in the deposit contract for at least 2048 Ethereum 1.0 blocks to ensure they never end up in a reorged block. (=ETH1_FOLLOW_DISTANCE) In addition to the 2048 Ethereum 1.0 blocks, 32 Ethereum 2.0 Epochs must be awaited before the beacon-chain recognises the deposit. During these 32 Epochs, validators vote on newly received deposits. However, missed block proposals or bad Ethereum 1.0 nodes, which provide the deposit logs to the Ethereum 2.0 network can cause longer waiting times. Therefore, run your own node! 2048 blocks = 2048 x 14 seconds = 28,672 seconds = ~8 hours 32 Epochs = 32 x 6.4 minutes = 204.8 minutes = ~3.5 hours

Once the deposit is in the deposit contract, the state of the validator will switch to Deposited on the beaconcha.in explorer.

Rejected Deposit
Rejected Deposit
Rejected Transaction

3. Validator Queue - Status: Pending

The deposit is accessible now for the beacon-chain. Depending on how many deposits in total have occurred, the validators line up a queue. Four validators per Epoch (900 validators per day) get activated. Note: The first 16,384 Validators, the genesis validators, do not line up in a queue.

4. Staking - Status: Active

The validator is now actively staking, proposing blocks and signing attestations - ready to earn rewards!

Other validator status

Deposit Invalid

The transaction had an invalid BLS signature.

Active Offline

An active validator has not been attesting for two epochs.

Exiting Online

The validator is online and currently exiting the network because either its balance dropped below 16ETH or the exit was requested by the validator.

Exiting Offline

The validator is offline and currently exiting the network because either its balance dropped below 16ETH or the exit was requested by the validator.

Slashing Online

The validator is online but has been malicious and was forced to exit the network.

Slashing Offline

The validator is offline but has been malicious and was forced to exit the network. It is currently in the exiting queue with a minimum of 25 minutes.

Slashed

The validator has been kicked out of the network. The funds will be withdrawable after 36 days.

Exited

The validator has exited the network. The funds will be withdrawable after 1 day.