Comment on page
Creating a new validator
This guide shows how to create a new set of validator keys for the Goerli testnet. For Ethereum mainnet, simply change Launchpad configuration from the page's dropdown menu, and refer to this Deposit Contract on mainnet, instead.
What's more important, the Launchpad procedure includes steps related to the Execution client and Consensus client. These are not unnecessary and the steps should be skipped.
When joining the SSV network, you will not need to run the validator yourself, as Node Operators of the SSV networks will be running the clients on your behalf.
The essential steps to create a new validator are only these two:
- 1.Generate validator keys
- 2.Activate previously generated keys
- Confidence using the command line, and command line interfaces
- Goerli ETH: 32 + ~0.1 for gas fees to activate the validator keys
Head over to the official Staking Deposit CLI project page of the Ethereum organization on GitHub. The README contains instructions to use the software, but the quickest (and suggested) way remains to use the pre-built binaries.
- 2.Inside the folder there should be a
depositbinary. This should be executed from a terminal and has 2 commands, depending on your configuration:
- 1.Run the
./deposit new-mnemonicif you need to create keys from a new mnemonic phrase.
- 2.Run the
./deposit existing-mnemonicif you want to generate keys from an existing mnemonic phrase
There are additional arguments to be provided to change language, reference chain, create multiple validator keys at once, or provide an address for withdrawing staking rewards.
Here’s the command used to create one set of validator keys for the goerli testnet, providing the address to withdraw staking rewards (you must have ownership of such address):
./deposit new-mnemonic --num_validators 1 --chain goerli --execution_address [YOUR_ETHEREUM_WALLET_ADDRESS]
At this point you should open the terminal of your Operating System, type the command above, with the correct values and parameters, according to your configuration.
The procedure is interactive and it will ask you to store the mnemonic phrase, as well as to provide a password for the validator keys. At the end of it, the CLI will tell you where the keys have been stored (usually under a
validator_keyssubfolder of the current folder).
When the keys are finally created, you should be with a similar screen
Make sure to store and preserve the mnemonic phrase and the key passphrase in a secure environment, as they contain sensitive data that cannot be recovered otherwise.
Take note of the keys location, you’ll need the file named
deposit_data-[TIMESTAMP].jsonin the next step.
To activate the validator keys you must deposit the 32 ETH (or testETH) to the Deposit Contract on chain. There are two options to do so:
Göerli Staking Deposit Contract page on Etherscan
This page lists all the smart contract’s functions, and offers a form, where each field represents one of the arguments of the contract’s method in question.
In order to activate the validator keys, you need to call the
depositfunction via a transaction, providing:
All the necessary information can be found in the
deposit_data-[TIMESTAMP].jsonfile, resulting from the Generate validator keys step. Just copy the value related to the correct key (e.g.:
amountkey in the
depositfield) from the JSON file to the web page and fill the form.
Here's an example:
To perform the transaction via the UI, it’s necessary to connect your Web3 wallet, by clicking on the Connect to Web3 button, sign in with the wallet of your choice (e.g. Metamask), and finally click on the Write button and accept the transaction from the wallet to make it go through.
Alternatively, the smart contract transaction can be generated via SDKs such as
web.js. This should be how you would want to integrate SSV in the DApp you’ll be building, for example.
If you don’t trust performing the transaction via Etherscan's Beta functionality, or simply prefer a more official route, you can visit the Staking Launchpad and access the full procedure to create a new validator, by clicking Become a Validator.
Staking Launchpad Advisories
This is a summary of the procedure itself:
- 1.Accept Advisories
- 2.Select an Execution Client
- 3.Select a Consensus Client
- 4.Generate Keys
- 5.Upload deposit data
- 6.Connect wallet
- 7.Deposit transaction
As mentioned at the start, the launchpad has a rigid procedure, and some steps are not relevant in this context. Nonetheless, in order to get to the “Deposit transaction” step needed to activate the validator keys, it is necessary to go through each one of them.
Just know that:
- you will not need to choose or run neither an Execution nor a Consensus client, because the operators SSV network will do that for you, ensuring active-active redundancy, redundancy and client diversity
- you already have generated your validator keys (in the previous step)
For this reason, you’ll have to choose something to advance, but the choices made in steps 1–4 are essentially irrelevant for the purpose of this guide.
Once you get to this screen:
On this page on Staking Launchpad, it is possible to upload deposit data and generate the deposit transaction
deposit_data-[TIMESTAMP].jsonfile, select Continue on this page and on the next one and accept the transaction on your wallet when requested.