Lido CSM+SSV+Obol (Testnet)
Last updated
Last updated
SSV: Set up SSV node
+ SSV DKG
services & Execution + Consensus Clients
using Eth Docker
Obol: Set up Obol Charon
service & Validator Client
using Eth Docker to import Obol-compatible validator keyshares
Lido CSM: Set up a second and Dedicated Validator Client
using EthPillar to import Lido CSM-compatible validator keys
Spin up a virtual machine on a cloud service with the following specifications using the reference page below.
CPU: 4 cores
RAM: 8GB
SSD: 250GB
OS: Ubuntu 24.04
Example:
Tip: Open these reference pages in a new tab/window so that you can switch between them easily
Go to the ETH Docker repository and to get and run the installation commands. Run the next 2 commands in sequence.
Exit your virtual machine/hardware and re-login to add your host user into the sudo & docker user group.
Enable ethd to be called from anywhere on your terminal.
Follow along the prompts in the terminal UI (TUI) to:
Choose Hoodi Testnet
>> SSV node - consensus, execution and ssv-node
Select yes
for Do you want to participate in DKG ceremonies as an operator?
Once you see the screen below, select <Cancel>
as we don't have our Operator ID yet.
Then copy your SSV node public key from your terminal output and save it on a text editor
Go to the SSV webapp, connect your wallet, and set the network to Hoodi.
Select Join as Operator
>> Register Operator
Paste your SSV node public key into the Operator Public Key
field. Make sure there are no whitespaces in your pasted string.
Keep Operator Status
to Public
Set the annual fee to 1.5 SSV per validator key, representing ~1.5% staking rewards fee at current $ETH and $SSV prices ($2650 & $23).
Register operator and sign the transaction on your wallet
Your SSV Operator ID will then be generated. Copy it and save it in a text editor file.
Setting your Operator Status to Public allows other stakers to select your SSV node as one of their DV operators, allowing them to pay you for your service. You can also easily net off the fees among your own DVT cluster members if you wish.
Go back to the terminal of your VM.
Choose Hoodi Testnet
>> SSV node - consensus, execution and ssv-node
Select yes
for Do you want to participate in DKG ceremonies as an operator?
Because you now have your SSV Operator ID
, you can paste it in the requested field
Select the consensus and execution client of your choice
Use the provided URL
for Checkpoint Sync, select yes
for MEV Boost, yes
for Grafana dashboards
Set Rewards Address
to an ERC-20 wallet address that you control (e.g., Metamask, hardware wallet)
use default
Graffiti, yes
for generate validator keys
Open up the ETH Docker .env
file for editing.
Press CTRL+W
, type "SSV_NODE_TAG" and hit ENTER
.
Using the arrow keys & keyboard only, change the value of SSV_NODE_TAG= from latest
to v2.2.0-unstable.1
CTRL+O, ENTER, CTRL+X
to save and exit.
Find the external IP address of your VM on your Cloud account >> Console >> Compute Engine >> Look under "External IP".
Your DKG endpoint will be <EXTERNAL_IP_ADDRESS>:443
,without the pointy brackets. Note that down and save it in a text editor file.
Verify that your DKG endpoint is accessible from external sources.
Expected output:
Go to the Obol Hoodi Launchpad, scroll down and select "Create a distributed validator alone"
Read and click through the Advisories
Input your cluster details as follows
Cluster Name: Any
Cluster Size: 4
Validators: 1
Withdrawal & Fee Recipient Address: Your own wallet address
Create your cluster by signing an onchain transaction on your wallet
Copy the resulting "Create Cluster" command generated on the Obol Launchpad and run it on your terminal.
Copy the following files from one of the cluster folders (e.g., node0
) above into the ~/eth-docker/.eth
folder and set the necessary permissions.
Edit the .env
file of Eth Docker.
In the COMPOSE_FILE
line:
Append :lido-obol.yml
and :cl-shared.yml
Edit the "consensus"-cl-only.yml
file to "consensus".yml
. e.g., From nimbus-cl-only.yml
to nimbus.yml
Example:
Press CTRL+W
, type "CL_NODE" and hit ENTER
.
Change the CL_NODE
line to http://charon:3600 (from http://consensus:5052)
Example:
CTRL+O
, ENTER
, CTRL+X
to save and exit.
After all your services running via Docker "warmed up" for ~5 minutes, import your validator key shards.
Print the logs of the Obol Charon & Validator Client.
Go to the Coincashew website and copy the latest 1-line installation command and paste it into your terminal.
Then, type + enter ethpillar
and follow along the prompts in the terminal UI (TUI) to:
Select the Nimbus-Nethermind
option
Wait for the installation to be done and then select 2 - Hoodi
for your network (Press "2
" & ENTER
)
Select the 4 - Lido CSM Validator Client only
option
Enter http://127.0.0.1:5052
as your Consensus Client endpoint
Generate validator keys to participate in the Lido CSM
Do not choose to disable internet connection when prompted
Select Hoodi
Enter the Lido's CSM Withdrawal Vault address as the Withdrawal Address: 0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2
Set the password for your validator keys
Save the 24-word mnemonic securely
Import the generated validator keys onto your validator client
Verify the fee recipient and withdrawal address on the CSM Operator Portal
Copy the deposit data generated by the command below for uploading onto the Lido CSM Widget.
The links below include the referral IDs of the tools that we are using today to join Lido CSM. Your rewards will not be affected by using these.
Mainnet: https://csm.lido.fi/?ref=ethpillar
Example output:
[{"pubkey": "8b29b853aef47eb3da93287a83b4625b418bf5a785bb506086e9f315478170cdb452fb63f32f8134835fc4ebea3313a7", "withdrawal_credentials": "0100000000000000000000004473dcddbf77679a643bdb654dbd86d67f8d32f2", "amount": 32000000000, "signature": "abcff77128a76dff62529f2a081f2143f77404c29087da1f4e12a8c6e8506dfb079085fdf72da8903e9c8c63ddf04129143090e92b6a17c993919e62047880cf54160f350271dff1b70e616e4210a5521836334d1139ece549ba513d503d0d90", "deposit_message_root": "03d0eb169a3c1a5551484185163b3e409dde01ec00515b7e594a6430ff398f69", "deposit_data_root": "961113829f6537828c5f06e69df8b76cf2a6904de03c4d1a25939ab1da9b5a14", "fork_version": "10000910", "network_name": "hoodi", "deposit_cli_version": "11.1.0"}]
Run the ethpillar
command and select the view logs
option
Make sure to also configure port forwarding on the ports allowed above.