Method 1: Configure on validator keys
Validator Clients
Assuming your Teku validator client is already set up, stop your Teku validator client.
sudo systemctl stop tekuvalidator.serviceFind the pubkey values of your own non-CSM validator keystores generated.
sudo find /var/lib -name "keystore*.json"For each resulting filepath, run:
grep -oP '"pubkey": *"\K[^"]+' RESULTING_FILEPATHYou should now have a list of all your own non-CSM validator keystore pubkeys.
Create a custom proposer configuration file.
sudo nano /var/lib/teku_validator/validator/proposer_configuration.jsonPaste the following contents into the file.
{
"proposer_config": {
"YOUR_OWN_VALIDATOR_PUBKEY_(NOT_CSM)_01": {
"fee_recipient": "YOUR_OWN_FEE_RECIPIENT_ADDRESS",
"builder": {
"enabled": true
}
},
"YOUR_OWN_VALIDATOR_PUBKEY_(NOT_CSM)_02": {
"fee_recipient": "YOUR_OWN_FEE_RECIPIENT_ADDRESS",
"builder": {
"enabled": true
}
},
"YOUR_OWN_VALIDATOR_PUBKEY_(NOT_CSM)_03": {
"fee_recipient": "YOUR_OWN_FEE_RECIPIENT_ADDRESS",
"builder": {
"enabled": true
}
}
},
"default_config": {
"fee_recipient": "LIDO_EXECUTION_LAYER_REWARDS_VAULT",
"builder": {
"enabled": true
}
}
}Replace YOUR_OWN_VALIDATOR_PUBKEY_(NOT_CSM) with your own actual validator pubkeys (NOT CSM).
Replace YOUR_OWN_FEE_RECIPIENT_ADDRESS with your desired wallet address.
Replace LIDO_EXECUTION_LAYER_REWARDS_VAULT with the following options.
Mainnet
Hoodi
CTRL+O, ENTER, CTRL+X to save and exit.
Set the permissions of the custom proposer configuration file.
Adding more non-CSM validator keystores:
If you want to add more of your own validator keystores, replicate the following segment, taking note of the indentation.
CTRL+O, ENTER, CTRL+X to save and exit.
Edit the Teku validator client service file.
Add the --validators-proposer-config flag and point it to the proposer_configuration.json file. Then remove the --validators-proposer-default-fee-recipient flag. e.g.,
CTRL+O, ENTER, CTRL+X to save and exit.
Restart your Teku validator client.
Monitor for errors.
Configure a separate validator client and set the fee_recipient address to the Lido Execution Layer Rewards Vault there. Refer to the subpage below.
Create a custom proposer_settings.yml file.
Use the following template and make the necessary edits.
Replace YOUR_OWN_VALIDATOR_PUBKEY_(NOT_CSM) with your own actual validator pubkeys (NOT CSM).
Replace YOUR_OWN_FEE_RECIPIENT_ADDRESS with your desired wallet address.
Replace LIDO_EXECUTION_LAYER_REWARDS_VAULT with the following options.
Mainnet
Hoodi
CTRL+O, ENTER, CTRL+X to save and exit.
Set the permissions of the custom proposer configuration file.
Adding more non-CSM validator keystores:
If you want to add more of your own validator keystores, replicate the following segment and place them under the proposer_config section, taking note of the indentation.
CTRL+O, ENTER, CTRL+X to save and exit.
Edit the docker-compose.yml file in the Lodestar folder.
Add the --proposerSettingsFile flag and point it to the proposer_settings.yml file.
Then remove the following flags.
New example:
CTRL+O, ENTER, CTRL+X to save and exit.
Restart your Lodestar validator client.
Monitor for errors.
Method 2:
Alternatively, to configure a separate validator client and set the fee_recipient address to the Lido Execution Layer Rewards Vault there, refer to the following subpage.
Assuming you have set up your Lighthouse validator client and imported your CSM validator keystores. Stop your validator client.
Then, edit the validator_definitions.yml file with the designated fee_recipeint address.
Find the pubkeys of each of your CSM validator keystores.
For each resulting filepath, run:
and add the following line under each keystore as a new line. Note: Take note of the exact indentation.
Mainnet
Hoodi
Example with Mainnet fee recipient:
To be appended, not replacing your existing file contents
Restart your Lighthouse validator client.
Monitor for errors.
Assuming your Prysm validator client is already set up, stop your Prysm validator client.
Find the pubkey values of your own non-CSM validator keystores generated.
For each resulting filepath, run:
You should now have a list of all your own non-CSM validator keystore pubkeys.
Create a custom proposer configuration file.
Paste the following contents into the file.
Replace YOUR_OWN_VALIDATOR_PUBKEY_(NOT_CSM) with your own actual validator pubkeys (NOT CSM).
Replace YOUR_OWN_FEE_RECIPIENT_ADDRESS with your desired wallet address.
Replace LIDO_EXECUTION_LAYER_REWARDS_VAULT with the following options.
Mainnet
Hoodi
CTRL+O, ENTER, CTRL+X to save and exit.
Set the permissions of the custom proposer configuration file.
Adding more non-CSM validator keystores:
If you want to add more of your own validator keystores, replicate the following segment, taking note of the indentation.
CTRL+O, ENTER, CTRL+X to save and exit.
Edit the Prysm validator client service file.
Add the --proposer-settings-file flag and point it to the proposer_configuration.json file. Then remove the --suggested-fee-recipient flag. e.g.,
CTRL+O, ENTER, CTRL+X to save and exit.
Restart your Prysm validator client.
Monitor for errors.
Automation Tools
With ETH Docker running (i.e., ethd up), run
then
with the public key of the key you wish to set a separate fee recipient for, and the Ethereum address fees should go to.
Not straightforward. Designed to assign custom fee_recipient addresses by running a separate validator client. Refer to the subpage below, under "Automation Tools"
Last updated