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.

Bond Requirements

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:

LIDO-CSM

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:

  1. 🖥️ Sync Full Node - Run Ethereum EL+CL clients with MEV support

  2. 🔑 Generate Keys - Create validator keys with Lido withdrawal address

  3. 📥 Import Keys - Import keys to your validator client

  4. ▶️ Start Validator - Enable and monitor the validator service

  5. 💰 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.

Mainnet Addresses

Purpose

Address

Withdrawal Address

0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f

Fee Recipient

0x388C818CA8B9251b393131C08a736A67ccB19297

Hoodi Testnet Addresses

Purpose

Address

Withdrawal Address

0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2

Fee Recipient

0x9b108015fe433F173696Af3Aa0CF7CDb3E104258

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:

https://wagyu.gg

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:

ethstaker-deposit-cli

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

keystore(s)

For importing your validator keys in your Validator client

deposit_data

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:

Running Validator 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

lighthouse account validator import --directory=/home/ethereum/validator_keys -d /home/ethereum/.lighthouse-validator-lido

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

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:

https://csm.lido.fi

Follow these steps:

  1. Click “Become a Node Operator”

    • ICS participants: minimum 1.5 ETH

    • General operators: minimum 2.4 ETH

  2. Accept the terms and choose your wallet that will create the Operator and make the deposit

  3. Click “Create node operator”

  4. Paste the deposit_data file content into “Upload deposit data” form

  5. Confirm and click “Create Node Operator”

  6. 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:

Hoodi Addresses

Purpose

Address

Withdrawal Address

0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2

Fee Recipient

0x9b108015fe433F173696Af3Aa0CF7CDb3E104258

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

lighthouse account validator --network hoodi import --directory=/home/ethereum/validator_keys -d /home/ethereum/.lighthouse-validator-hoodi-lido

Prysm

validator accounts import --keys-dir=/home/ethereum/validator_keys --hoodi --wallet-dir=/home/ethereum/.prysm-validator-hoodi-lido/prysm-wallet-v2

Nimbus

nimbus_beacon_node deposits import /home/ethereum/validator_keys --data-dir=/home/ethereum/.nimbus-validator-hoodi-lido

Step 5: Lido Operator Portal

Lido Operator Portal for Hoodi is:

https://csm.testnet.fi


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:

  1. Set up your DVT cluster following our Obol DVT Staking guide

  2. Use Lido withdrawal address during DKG:

    Network

    Withdrawal Address

    Mainnet

    0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f

    Hoodi

    0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2

  3. Use 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-validator-obol-lido.service

Lighthouse with Lido + DVT

prysm-validator-obol-lido.service

Prysm with Lido + DVT

nimbus-validator-obol-lido.service

Nimbus with Lido + DVT

grandine-validator-obol-lido.service

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.