A voluntary exit is when a validator chooses to stop performing its duties, and exits the Beacon Chain permanently.
To voluntarily exit, the validator must continue performing its validator duties until successfully exited to avoid penalties.
important
To voluntarily exit, you must have a running beacon node with the REST API enabled.
warning
A validator cannot rejoin the network once it voluntarily exits. You can set up a new validator with the withdrawn funds.
Initiate a voluntary exit
Use the voluntary-exit
subcommand to initiate a voluntary exit for specified validators.
Example
teku voluntary-exit \
--beacon-node-api-endpoint=http://127.0.0.1:5051 \
--validator-keys=validator/keys/validator_1e9f2a.json:validator/passwords/validator_1e9f2a.txt
In the command:
- Specify the location of the beacon node using the
--beacon-node-api-endpoint
option. - Specify the validators to exit using the
--validator-keys
option. - Specify the earliest epoch at which to exit using the
--epoch
option.If not specified, the default value is the current epoch.You cannot specify a future epoch.
If using an external signer such as Web3Signer, then specify the external signer URL and public key of the exiting validator:
Example
teku voluntary-exit \
--beacon-node-api-endpoint=http://127.0.0.1:5051 \
--validators-external-signer-url=http://localhost:9000 \
--validators-external-signer-public-keys=1e9f2afcc0737f4502e8d4238e4fe82d45077b2a549902b61d65367acecbccba
Use the /eth/v1/beacon/pool/voluntary_exits
API to check the pending exit queue.
Create but don't submit an exit
Use the voluntary-exit
subcommand to create asigned exit for the specified validators, but not submit it to the beacon node.
Example
teku voluntary-exit \
--beacon-node-api-endpoint=http://127.0.0.1:5051 \
--save-exits-path=. \
--validator-keys=validator/keys/validator_1e9f2a.json:validator/passwords/validator_1e9f2a.txt
In the command:
- Specify the location of the beacon node using the
--beacon-node-api-endpoint
option. - Specify the validators to exit using the
--validator-keys
option. - Specify the path at which to save the generated exit messages using the
--save-exits-path
option.
In this example, a JSON file is written to the current folder (.
) containing a signed exit messagefor validator 1e9f2a
.At a future time when this exit needs to be processed, you can use the beacon API to submitthis message using a POST request to /eth/v1/beacon/voluntary_exits
.