All Collections
Solo Staking
Solo Staking Guides
How do I stake a validator using the Ethereum CLI? (Mainnet & Testnet)
How do I stake a validator using the Ethereum CLI? (Mainnet & Testnet)

Validator Staking Guide [Expert Mode]

S
Written by Stakehouse
Updated over a week ago

Below is a step-by-step guide explaining how to generate your own deposit credentials with Stakehouse on the Ethereum Deposit Contract.

THIS IS A GUIDE FOR DEPOSITING ETH ON MAINNET AND TESTNET.

If you would like to use Wagyu Keygen for creating a Keystore, please head over to our Staking with Wagyu Keygen Guide.

Step #1: Start Expert Mode

Select “Create a Validator” to start staking on the Ethereum blockchain.

Select the “⋯” in the top right corner and toggle “Expert Mode”. Note: you don’t need to create a password here. Password creation is done at a later stage.

Select “Turn On Expert Mode”.

Step #2: Download and unzip the staking deposit CLI

Download the CLI needed for your operating system.

You can download the staking deposit CLI by visiting the official release page:

Step #3: Generate the deposit credentials

Generate deposit credentials with the official Stakehouse Account Manager Address. (Please visit here to verify the address and network). Make sure to set this address as the withdrawal credential.

Mainnet Address: 0xDd6E67942a9566A70446f7400a21240C5f71377C

Testnet Address: 0x952295078a226bf40c8cb076c16e0e7229f77b28

(withdrawal address is the Stakehouse account manager for that specific network)

  • Mac/Linux (Mainnet):
    ./deposit new-mnemonic --num_validators 1 --mnemonic_language english --chain mainnet --eth1_withdrawal_address 0xDd6E67942a9566A70446f7400a21240C5f71377C

  • Mac/Linux (Testnet):
    ./deposit new-mnemonic --num_validators 1 --mnemonic_language english --chain prater --eth1_withdrawal_address 0x952295078a226bf40c8cb076c16e0e7229f77b28

  • Windows (Mainnet):
    ./deposit.exe new-mnemonic --num_validators 1 --mnemonic_language english --chain mainnet --eth1_withdrawal_address 0xDd6E67942a9566A70446f7400a21240C5f71377C

  • Windows (Testnet):
    ./deposit.exe new-mnemonic --num_validators 1 --mnemonic_language english --chain prater --eth1_withdrawal_address 0x952295078a226bf40c8cb076c16e0e7229f77b28

  • You will be asked to enter a password to encrypt your validator keystore file.

  • Make sure your password is at least 8 characters long. Keep this password secure as it is not recoverable.

  • Re-enter the password when prompted.

  • You will be presented with a mnemonic. Write it down and store it safely: Keep it secure as it is not recoverable.

  • Example:
    start bleak slide grocery heavy ecology define grant because chicken piano feature hen hockey crystal divide cliff sail bubble toast ice brand found a tunnel

  • At this point you will have a keystore and deposit data file generated.

  • The deposit data file contains the data needed to process the validator deposit.

  • Example file: deposit_data-1642770906.json

This will vary from network to network

[

{
"pubkey": "b9ed3594797257462ce20cc558eb6ace9d4dbca5d6d5354e43d1c9d463d28fbb4204b98e9676092df70720a82cb6fd9e",
"withdrawal_credentials": "010000000000000000000000dd6e67942a9566a70446f7400a21240c5f71377c",
"amount": 32000000000,
"signature": "aaa08b2fe49bc555da5259de0500cd1b381c076e8cc227debf7fee391f4fe5d4b9d52c5bfa5b1a1ea1feb986e6961fc60ce9a55bc33e86ec763e62b8f1d4ac6e7b3b5cc70f0616d6f600a85f7a7a571bde2db6c2d4eab106f28fbcf9365d3af4",
"deposit_message_root": "bbf5b09ecb2638b477651309b7e999483429a4c263b83bde2ca6de5f3b55dd90",
"deposit_data_root": "9867e0a252f395f068eb951d88ef85fbb8e3e16b5567fdc8edac099f75980369",
"fork_version": "00000000",
"network_name": "mainnet",
"deposit_cli_version": "2.3.0"
}
]

  • The keystore file contains your encrypted signing key which can be unlocked with the password you entered during the key generation process.

  • Example file: keystore-m_12381_3600_0_0_0-1642770906.json

This will vary from network to network

{
"crypto": {
"kdf": {
"function": "scrypt",
"params": {
"dklen": 32,
"n": 262144,
"r": 8,
"p": 1,
"salt": "550200949b90c0b9ff4c7b5b3712bf9286f7ffe555230f590ca25b31b2c6a3c4"
},
"message": ""
},
"checksum": {
"function": "sha256",
"params": {},
"message": "94ca98cfb1d0046eb081fcda3fb290c2ad3ded535c2bb4a3140c9044c7b94799"
},
"cipher": {
"function": "aes-128-ctr",
"params": {
"iv": "b75ed5d4a4df02ca0103e59d848e0aa9"
},
"message": "6b4f9144639e0e8e17c9f5d803fa5b5da992407f185158c41f6269367cad0737"
}
},
"description": "",
"pubkey": "b9ed3594797257462ce20cc558eb6ace9d4dbca5d6d5354e43d1c9d463d28fbb4204b98e9676092df70720a82cb6fd9e",
"path": "m/12381/3600/0/0/0",
"uuid": "8459d47a-cb01-415b-b4ad-7a36bb5ca81f",
"version": 4
}

Step #4: Stake ETH using Expert Mode

Use the generated files to register the validator in the Stakehouse registry and enter the password associated with your keys.

Then select “Deposit” to send 32 ETH to the Ethereum Deposit Contract. Registering your validator is storing your encrypted validator keys on the Ethereum Blockchain. Only you have access. These files are being uploaded from your browser's cache.

You’ll be asked to confirm your validator key before approving and sending the transaction.

Step #5: Setup a Node

A node is required to perform validator duties. If you do not have one, a link to node setup is here.


Join the Blockswap Discord for the latest updates, announcements, and community support.

Did this answer your question?