Exit a validator
Exiting your validator keys can be useful in situations where you want to stop staking and withdraw your staked ETH.
- A quorum of operators needs to run the same exit command for the exit to succeed.
- If a charon client restarts after the exit command is run but before the threshold is reached, it will lose the partial exits it has stored. If all charon clients restart before the required threshold of exit messages are received, operators will have to rebroadcast the exit messages.
Step 1. Confirm the
Confirm the earliest
EXIT_EPOCH to use for your validators. Assuming you want to exit as soon as possible, the default epoch of
162304 is sufficient.
Step 2. Run the
voluntary-exit command on your validator client
Run the appropriate command to broadcast an exit message from your validator client to its upstream charon client.
This command should be executed on your running validator client, not your charon client. It needs to be the validator client that is connected to your charon client taking part in the Distributed Validator Cluster, and not a standalone VC connected to a different consensus layer client, as you are only signing a partial exit message, with a partial private key share, which charon will combine with the other partial exit messages from the other operators in the cluster before broadcasting to the consensus layer when it valid.
docker exec -ti charon-distributed-validator-node-teku-1 /opt/teku/bin/teku voluntary-exit \
Once a threshold of exit signatures has been received by any single charon client, it will craft a valid exit message and will submit it to the beacon chain for inclusion.
If you have gotten this far through the process, and whether you succeeded or failed at exiting a validator, we would like to hear your feedback on the process and where you encountered difficulties. Please let us know by joining and posting on our Discord. Also, feel free to add issues to our GitHub repos.