Lido Liquid Staking¶
Liquid Staking refers to a decentralized protocol that allows users to stake their ETH, while simultaneously receiving a liquid token representing their staked assets.
When you stake ETH with Lido, you receive a token called stETH, a liquid representation of your staked ETH. The key innovation here is liquidity—stETH tokens can be freely traded, utilized in DeFi applications, or held in wallets, unlike traditionally locked staking that prevents users from accessing their funds until the lock-up period ends.
Lido Community Staking Module¶
The Community Staking Module (CSM) is the Lido on Ethereum protocol’s first module with permissionless entry, allowing any node operator and especially community stakers, from solo stakers, to groups of friends, to amateur operators to run validators by providing an ETH-based safety deposit.
Note
Lido CSM allows any user to become a Home Staker with a fraction of ETH necessary for a Vanilla validator, contribute to the network decentralization and receive a Liquid staking token to use in Defi applications.
CSM v2 and Identified Community Stakers (ICS)¶
With the launch of CSM v2 in October 2025, Lido introduced the Identified Community Stakers (ICS) program, which offers reduced bond requirements for verified community members. The stake share limit was also increased to 5%, improving validator activation times.
Operator Type |
First Validator |
Additional Validators |
|---|---|---|
ICS (Identified Community Stakers) |
1.5 ETH |
1.3 ETH |
General Operators |
2.4 ETH |
1.3 ETH |
First step is to take a look to CSM, what it is and what we can expect from it:
We prepared the clients with the appropiate config to make it easier to run a Lido Validator, but it is important for you to take a look at the Lido Portal, particularly, the “Intro” and “Quick Start sections” and make sure you understand how it works.
Note
Before creating a node or adding more keys, check if CSM has reached its stake share limit, your validator may not be activated immediately. You can still upload keys, but they might wait in the queue.
Staking Workflow¶
The Lido CSM staking process follows these steps:
🖥️ Sync Full Node - Run Ethereum EL+CL clients with MEV support
🔑 Generate Keys - Create validator keys with Lido withdrawal address
📥 Import Keys - Import keys to your validator client
▶️ Start Validator - Enable and monitor the validator service
💰 Create Operator - Register on CSM portal and deposit bond
Critical Addresses¶
Warning
Setting the correct addresses is critical. Incorrect configuration will result in penalties.
The Ethereum on ARM ls-lido package pre-configures these addresses, but you should verify them.
Purpose |
Address |
|---|---|
Withdrawal Address |
|
Fee Recipient |
|
Purpose |
Address |
|---|---|
Withdrawal Address |
|
Fee Recipient |
|
These addresses are configured in the Lido-specific validator services (e.g., lighthouse-validator-lido).
If you’re setting up manually or verifying configuration, ensure the addresses match.
Prerequisites¶
Before starting, ensure you have:
A Full/Archive Ethereum node synced with MEV support
A MEV server compatible with Lido
A Lido Community Staking Module (CSM) Operator
At least 1 CSM validator key
A running Validator Client with Lido configuration
Ethereum on ARM ls-lido package
Note
These are instructions for mainnet but you can test the Lido setup on hoodi testnet by starting the corresponding services and accessing the CSM testnet portal. Refer to the bottom of this page for more details.
We strongly recommend first running the CSM Lido setup on the hoodi testnet.
Step 1: Running a Full Ethereum Node¶
Warning
Remember, this setup requires an ARM64 device with the Ethereum on ARM image already installed.
Let’s make sure the ls-lido is installed. Run on your node:
sudo apt-get update && sudo apt-get install ls-lido
First step is to run a Full/Archive Ethereum node (Full node is enough). This is the same process as running a vanilla node, the only difference is that we need to enable MEV Boost in the beacon chain and start a MEV Boost server compatible with Lido.
1.1 Choose a Consensus Client and an Execution Client and start both services. For instance:
sudo systemctl start nethermind
sudo systemctl start lighthouse-beacon-mev
Warning
Note that the Beacon Chain service includes the mev argument. Use it with any client, for instance prysm-beacon-mev, teku-beacon-mev… This is necessary to enable MEV for running Lido.
1.2 Start the MEV service:
sudo systemctl start mev-boost
Step 2: Creating Validator Keys¶
Time to create the validator keys that will be used by your client to stake.
The ICS program, introduced with CSM v2, offers reduced bonds for verified community members. Check the CSM portal for eligibility requirements. Depending on your available ETH (and how much you are willing to stake), you can calculate how many validator keys you can create.
You have 2 main options for creating the validator keys:
Option A: Wagyu Key Generator (GUI)¶
Use the Wagyu key generator by Ethstaker (which includes a GUI). Go to:
Download the appropiate binary for your desktop and follow the instructions.
Warning
CRITICAL: Set the Lido withdrawal address: 0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f
Do not forget to include the Lido withdrawal address as this is necessary to set up the Lido CSM properly. Additionally, try to generate the keys offline by removing all network communications.
Option B: Command Line Deposit Tool¶
You can do it directly in your node and run deposit tool command (it is already installed), as ethereum user, run:
deposit new-mnemonic --num_validators $YOUR_NUMBER_VALIDATORS --chain mainnet --eth1_withdrawal_address 0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f
A validator_keys folder will be created containing all necessary files. Here you will need to copy and paste the deposit_data
file content to your desktop in order to submit this data to the CSM Lido portal.
Alternatively, download the deposit tool to your desktop and run it there:
Follow the screen instructions and make sure you write down the 12 words password.
Warning
Make sure you write down the passphrase as this are your validators private keys and set the withdrawal address.
Understanding Generated Files¶
The tools will create two file types:
File |
Purpose |
|---|---|
|
For importing your validator keys in your Validator client |
|
For uploading the keys into the CSM module and making the deposit |
For more info regarding validator keys generation visit: homestaker-validator-key-generation
Step 3: Importing Keys¶
Note
Before going forward, we recommend to take a look at our section “Running a Validator Client” for more info about importing the validator keys on each client:
Once we have our private keys, we can import them into our validator client and start it.
You need to log into your node and run the import command, depending on your client. For instance:
lighthouse account validator import --directory=/home/ethereum/validator_keys -d /home/ethereum/.lighthouse-validator-lido
Note that we assume that the keystore and deposit_data files are in the /home/ethereum/validator_keys directory. If
you generated the keys in your desktop, you will need to copy them into your node.
Client-Specific Import Commands
Client |
Import Command |
|---|---|
Lighthouse |
|
Prysm |
|
Nimbus |
|
If you are using Prysm or Nimbus, you need to specify the correct path as well:
**Prysm**: validator accounts import --keys-dir=/home/ethereum/validator_keys --wallet-dir=/home/ethereum/.prysm-validator-mainnet-lido/prysm-wallet-v2
**Nimbus**: nimbus_beacon_node deposits import /home/ethereum/validator_keys --data-dir=/home/ethereum/.nimbus-validator-lido
Step 4: Starting the Validator¶
Now it is time to start the validator. Make sure you add the argument lido in the validator service, for instance:
sudo systemctl start lighthouse-validator-lido
Warning
Don’t forget to add the lido argument as it contains the specific config for Lido CSM.
Step 5: Create and Activate the CSM Operator¶
Now it is time to visit the CSM Lido portal:
Follow these steps:
Click “Become a Node Operator”
ICS participants: minimum 1.5 ETH
General operators: minimum 2.4 ETH
Accept the terms and choose your wallet that will create the Operator and make the deposit
Click “Create node operator”
Paste the
deposit_datafile content into “Upload deposit data” formConfirm and click “Create Node Operator”
Confirm the transaction in your wallet
Done! You are now running a CSM Lido Validator. Now, you need to wait for the Validator to get enabled.
Note
With CSM v2, the stake share limit is now 5%. Activation times have improved, but check the CSM portal for current queue status.
Running CSM on Hoodi Testnet¶
Running CSM on hoodi is pretty much the same process but you need to make some adjustments.
Step 1: Start Full Node
Add the hoodi network on EL+CL client services:
sudo systemctl start nethermind-hoodi
sudo systemctl start lighthouse-beacon-hoodi-mev
Step 2: MEV Boost Service
sudo systemctl start mev-boost-hoodi
Step 3: Key Generation
Wagyu tool supports hoodi so make sure you select this network.
For deposit command line, replace mainnet with hoodi:
Purpose |
Address |
|---|---|
Withdrawal Address |
|
Fee Recipient |
|
Warning
Be careful: Lido withdrawal address for Hoodi is 0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2
Step 4: Key Import and Validator Start
You will need to add the hoodi flag to target the correct network:
lighthouse account validator --network hoodi import --directory=/home/ethereum/validator_keys
sudo systemctl start lighthouse-validator-hoodi-lido
Client-Specific Import Commands for Hoodi
Client |
Import Command |
|---|---|
Lighthouse |
|
Prysm |
|
Nimbus |
|
Step 5: Lido Operator Portal
Lido Operator Portal for Hoodi is:
Running CSM with Distributed Validators (DVT)¶
For enhanced resilience and fault tolerance, you can run your Lido CSM validators using Obol Distributed Validator Technology (DVT).
Note
DVT allows multiple operators to run a single validator together, eliminating single points of failure. This is ideal for home stakers who want extra protection against downtime.
To run Lido CSM with Obol DVT:
Set up your DVT cluster following our Obol DVT Staking guide
Use Lido withdrawal address during DKG:
Network
Withdrawal Address
Mainnet
0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293fHoodi
0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2Use Lido-specific DVT services instead of regular DVT services:
sudo systemctl enable --now charon.service
sudo systemctl enable --now lighthouse-validator-obol-lido.service
Available Lido DVT Validator Services¶
Service |
Description |
|---|---|
|
Lighthouse with Lido + DVT |
|
Prysm with Lido + DVT |
|
Nimbus with Lido + DVT |
|
Grandine with Lido + DVT |
These services are pre-configured with the Lido fee recipient address.
See Obol DVT Staking for complete DVT cluster setup instructions.