Skip to main content

📥 Upload/Delete/View validator keys

Deposit queue​

info

We encourage operators to see the queue before submitting new keys, as they may have to wait some time to get deposits, and there's a key removal charge for removing keys while in the queue.

Stake is allocated to uploaded keys through a queue. You can see a visual representation of it under the deposit widget, or at the top of the View Keys tab.

Deposit queue

The default queue is FIFO (first in, first out), so keys are served in the order they were submitted. Some operator types are also eligible to have a limited number of keys deposited through a higher-priority queue, which is processed before the default one. See Stake allocation queue for the full mechanics.

In 0x01 CSM, each key receives a single 32 ETH deposit once the queue reaches it.

In 0x02 CSM, keys are funded in two phases. The queue above allocates the initial 32 ETH deposit that activates each validator, and validators are then topped up toward the 2,048 ETH maximum through a separate top-up queue. Top-ups depend on the module's stake share limit and overall deposit demand, so a validator may never reach the full 2,048 ETH, and both phases can take longer than a standard 32 ETH deposit.

Upload keys​

warning

Your deposit data must use the withdrawal credential type of the module you are joining, 0x01 for 0x01 CSM or 0x02 for 0x02 CSM. See Generating Validator Keys before you upload.

  • Go to the Lido CSM Widget and connect your wallet. MAKE SURE THAT YOU ARE ON THE CORRECT NETWORK (i.e., Mainnet or Hoodi).
  • Select Become a Node Operator and then Create a Node Operator. If you don't have an operator yet, you first choose your operator type, which determines the module you join and the bond you post.
  • On the Lido CSM Widget, upload your deposit data file and select the corresponding bond type (ETH, stETH, or wstETH), and provide the desired bond amount. Learn more about bond requirements.

Upload keys

Print the contents of the deposit_data.json file on your node machine, then copy & paste the contents into the CSM Widget directly.

  • Identify the actual file name of your deposit_data.json file on your node:
find ~ -name "*deposit_data*" 2>/dev/null

The output will be a file path to your deposit data.

  • Print the contents:
cat <FILEPATH_TO_DEPOSIT_DATA>
# replace with the actual file path
  • Finally, select Submit, sign the transaction with your connected wallet, and you are all set.
  • Now you just need to wait for the Lido CSM to deposit your validator keys (using your deposit data file). This is a first-in, first-out process so expect a queue when demand is high. More details on this process here.
warning

DO NOT DEPOSIT 32 ETH using the deposit data file generated this way, as the Lido CSM will make a deposit for you.

Doing so will result in a loss of funds.

Remove keys​

The Node Operator can delete uploaded keys voluntarily (e.g., duplicate keys) if it has not been deposited yet.

A fee is confiscated from the Node Operator's bond on each deleted key to cover maximal possible operational costs associated with the queue processing. Keys (via the deposit data file) can be deleted in continuous batches (e.g., from index 5 to 10).

More details here.

  • Go to the Lido CSM Widget, under the KEYS header
  • Select the DELETE tab on the widget
  • Press the Remove button
  • Select the keys you want to remove

Remove keys

Once your keys have been removed, the associated bond amounts that you deposited earlier will be available for claiming under the Bond & Rewards tab. You can learn more at the Rewards & Bonds page of this guide.

warning

Keys that have been deposited cannot be removed and can only be manually exited from the Consensus Layer or ejected via triggerable withdrawal requests to the protocol.

Eject keys​

CSM now supports ejecting validators via Execution Layer Triggerable Withdrawals (which requires an ejection fee).

However, this is not the standard exit flow. This method should be used only as a last resort, such as when you have lost access to your validator keys.

  • Go to the Lido CSM Widget, under the KEYS header
  • Select the DELETE tab on the widget
  • Press the Eject button
  • Select the keys you want to eject

Eject keys

Once the validators are fully exited, you can claim your locked bond.

View keys​

You can also view the status of the keys pertaining to your uploaded deposit data file and take the necessary actions.

View keys

info

In 0x02 CSM, a key shown as Active may still be receiving top-ups toward its 2,048 ETH maximum.

Key lifecycle​

StatusMeaningAction
UncheckedUploaded; awaiting validationWait. Remove earlier Invalid or Duplicated keys
DepositableValid and sufficiently bonded; awaiting depositMaintain sufficient bond
Non queuedDepositable, but not currently in the queueResolve any Unbonded keys. If still Non queued, use Normalize queue in the widget to add them to the deposit queue.
Activation pendingDeposited; awaiting activation on the beacon chainKeep your validator online and ready
ActiveActive on the beacon chainKeep validating
Exit requestedThe protocol has requested an exitExit the validator within the allowed time
Exit initiatedAn ejection request has been submittedMonitor progress; keep validating until exit
ExitingExit is scheduled on the beacon chainKeep validating until exit
Exited (withdrawal pending)Exited; ETH withdrawal is pendingWait for withdrawal
WithdrawnETH has been returned to the protocolClaim available bond and rewards under Bond & Rewards

Warnings and errors​

StatusMeaningAction
UnbondedInsufficient bond for this keyActive: top up bond or exit.
Not active: top up bond or leave pending
StrikesPerformance strikes may lead to ejection and a penaltyImprove performance
SlashedSlashed on the beacon chainReview your setup; see Slashing Prevention
DuplicatedKey uploaded more than onceRemove duplicate key
InvalidInvalid deposit signatureRemove key