Docs

Concepts

The ideas behind the numbers in Roundbeat: how Lido is organized, what happens to a validator over its life, and the protocol rules alerts are built on.

Lido staking modules

Lido splits its validators into staking modules, each with its own operators and rules. Roundbeat tracks all four on Ethereum mainnet. Credentials is the validators’ withdrawal-credential type, which sets how much ETH one validator can hold (effective balance and 0x02 keys).

Lido staking modules
ModuleCredentialsAboutActive validatorsStake
Curated v10x01, 32 ETHOperators vetted by the Lido DAO. The original module, now winding down as its validators consolidate into Curated v2.199,1716.37M ETH
SimpleDVT0x01, 32 ETHDistributed-validator clusters on Obol and SSV, each run by a group of operators. Its operators are clusters.5,000160.0k ETH
CSM0x01, 32 ETHThe Community Staking Module: permissionless, anyone can join by posting a bond.24,785793.1k ETH
Curated v20x02, up to 2,048 ETHThe successor of Curated v1: compounding validators, operators with a type (and a bond curve), bonds and penalties built on the CSM codebase.4,4421.92M ETH

Active validators and stake (effective balance): snapshot, 13 Oct 2026, 10:45 UTC.

An operator’s ID is unique only inside its module, so Roundbeat always names both: the page app.roundbeat.com/operator/4/36 is operator 36 of module 4 (Curated v2). Validators you monitor by withdrawal address belong to no module and are labelled Custom validators.

Curated v2 operator types

Each Curated v2 operator has a type, set by its bond curve. The type shows as a chip on the operator page and as a suffix of its name (for example “ChainSafe - PGO”).

PO
Professional Operator
PTO
Professional Trusted Operator
PGO
Public Good Operator
DO
Decentralization Operator
EEO
Extra Effort Operator
IODC
Intra-Operator DVT Cluster
IODC+
Intra-Operator DVT Cluster (second curve)

The Curated v1 to v2 migration

Curated v1 validators (0x01, 32 ETH each) move into Curated v2 by consolidation (EIP-7251): a request asks the beacon chain to fold a source validator’s balance into a target 0x02 validator, which can hold up to 2,048 ETH. The source exits as part of it, but this is not an exit: Roundbeat reports it as a consolidation and never as Validator exited.

Lido pairs each Curated v1 operator with one or more Curated v2 operators (its successors), and its ConsolidationMigrator contract allows each pair before validators can be submitted.

Steps of one consolidation

Requested
The request is on the execution layer, not yet in the beacon chain’s consolidation queue.
Queued
In the beacon chain’s pending consolidations; the source is exiting.
Source exited
The source has exited and waits until its balance can move.
Completed
The balance moved into the Curated v2 target.

A request still unprocessed after 32 epochs is reported stuck; after 225 epochs (about a day) with the source still active it counts as rejected: the chain dropped it and it needs a new request.

Migration stages

Each Curated v1 operator is in one stage, shown on the Curated v1 and Curated v2 pages:

Migration stages
StageMeaning
Awaiting pairNo Curated v2 pair has been allowed yet.
Not startedA pair is allowed, but no validators were submitted to the migrator.
SubmittedRequests were submitted; nothing is on the beacon chain yet.
In progressConsolidations are queued, exited or completed on the beacon chain.
DoneNo active Curated v1 validators left and nothing in flight.
ExitingLeaving Lido instead of migrating: its validators exit with no consolidation in flight, or its Curated v2 successors are winding down.
Left LidoNo validators left in either module: it left Lido after consolidating part of its validators.
InactiveNo active Curated v1 validators and nothing ever consolidated: offboarded, nothing to migrate.

6 migration alerts follow this process, and the public figures are in the migration API.

Operators and keys

A node operator runs validators for Lido in one module. It uploads validator keys to the module; Lido vets them and deposits to them in turn, and each key it deposits to becomes a validator. The pages count keys at each step:

Deposited
Keys Lido has deposited to: each became a validator. Includes exited ones.
Active
Deposited keys that have not exited.
Exited
Validators that left the active set. Consolidated Curated v1 validators are counted apart.
Depositable
Vetted keys not used yet, which Lido can deposit to next. Curated v1 flags fewer than 100; SimpleDVT flags none left for a cluster with more than 50 keys. CSM does not report depositable keys per operator, and 0x02 modules grow stake by top-ups rather than new keys, so neither is flagged.

Validator statuses

The beacon chain’s status of each validator, as Roundbeat labels it:

Validator statuses
LabelBeacon statusMeaning
Pending Initpending_initializedKnown to the beacon chain, not yet in the activation queue.
Pending Queuedpending_queuedIn the activation queue.
Activeactive_ongoingAttesting and proposing.
Exitingactive_exitingExit started; still active until its exit epoch.
Slashed (active)active_slashedSlashed and being forced out.
Exitedexited_unslashedLeft the active set.
Exited (slashed)exited_slashedLeft the active set after a slashing.
Withdrawal Possiblewithdrawal_possibleExited and its balance can be withdrawn.
Withdrawnwithdrawal_doneBalance withdrawn.
Consolidating → CMv2—A Curated v1 validator on its way into Curated v2.
Consolidated → CMv2—A Curated v1 validator whose balance moved into Curated v2.

Effective balance and 0x02 keys

A validator’s effective balance is the ETH the beacon chain counts for rewards, penalties and duties. It moves in whole-ETH steps and has a cap that depends on the withdrawal credentials:

  • 0x01 keys (Curated v1, SimpleDVT, CSM): up to 32 ETH. Rewards above it are swept to the withdrawal address.
  • 0x02 compounding keys (Curated v2): up to 2,048 ETH. Rewards and consolidated balances compound inside the validator.

The actual balance is usually a little higher than the effective balance: it also holds rewards not yet counted. Pages show Stake as the sum of effective balances. Curated v2 pages group validators by effective balance into 32, 33–512, 513–1,024, 1,025–2,047 and 2,048 ETH, and count those At 2,048 cap.

A target that would pass the cap with its pending consolidations raises Overfill risk: the excess would be withdrawn instead of compounding. A full 0x02 key holds the stake of 64 0x01 keys, so one offline 2,048 ETH key costs as much as 64 offline 32 ETH keys. Every offline key alerts as critical either way.

Epochs and slots

Slot
12 seconds. One validator is chosen to propose a block in each slot; a slot with no block is a missed proposal.
Epoch
32 slots, about 6.4 minutes. Every active validator attests once per epoch. Roundbeat reads the chain epoch by epoch.
24-hour window
225 epochs, about a day. Effectiveness and the health figures use it.
Sync committee period
256 epochs, about 27 hours. A committee of 512 validators signs every block in the period.

Effectiveness

Attestation effectiveness: correct head, target and source votes out of all votes, over the last 225 epochs (about 24 hours). Each attestation has three votes (head, target, source), so a late or wrong vote lowers it even when the attestation landed. The pages colour it green from 98%, amber from 95% and red below, and fade it when fewer than 50 epochs of data back it. An operator with no attestation data shows “—”, never 100%.

Exit requests

Lido asks operators to exit validators through its Validator Exit Bus (VEBO), for example to fill withdrawals. Each request names one validator and starts its exit deadline. Roundbeat sends Exit request as info: a request is routine; what needs attention is a request left pending, which the deadline reminders cover.

A Curated v2 validator that exits without a request, and is not consolidating or being ejected for performance strikes, is an out-of-order exit: an incident under the Curated v2 Penalty Framework. Talk to Lido’s Curated Module Committee (the DAO body that runs the module) before exiting on your own.

Exit deadlines

Every module gives a requested validator a window to start exiting. Roundbeat reads it from the module contract for each operator. On mainnet it is 96 h, except CSM’s ICS and IDVTC bond curves (curves 2 and 3), which allow 120 h.

The window starts at the later of two moments: when the request was delivered, and when the validator became allowed to exit (256 epochs after its activation). For most validators that is the request itself. The Exit request alert names that deadline; when the window starts after the request, the alert says so.

Exit deadline timeline
WhenWhat Roundbeat sends
Request deliveredExit request (info).
48 h, 12 h, 2 h before the deadlineExit deadline approaching (warning), only while the validator has not started exiting.
Deadline passedExit deadline passed (critical), once.

Roundbeat checks every 5 minutes, so a reminder can arrive up to that much after its mark. What a missed deadline costs depends on the module:

  • CSM and Curated v2: an exit-delay fee is recorded against the bond, and the validator can be force-exited through EIP-7002, with an EL request fee of up to 0.1 ETH. On Curated v2 the fee is 0.01 ETH per 32 ETH of balance for the PO type (bond curve 0) and 0.005 ETH per 32 ETH for the other types.
  • Curated v1 and SimpleDVT: the delay can be reported on chain and the exit force-triggered through EIP-7002.

MEV and missed bids

Most proposers sell block building to builders through MEV-Boost relays. Roundbeat asks 7 relays (Flashbots, bloXroute Regulated, Ultrasound, Aestus, Titan Global, Titan Regional and Agnostic) about every block a Lido validator proposes, and puts the block in one of five classes:

relayed
A polled relay delivered this exact block. The pages show the relay badges and the MEV reward.
builder
No polled relay delivered it, but the block names a builder: it came through a relay Roundbeat does not poll. Counted with relayed blocks.
local
Built locally, without MEV-Boost: every relay answered that it did not deliver the block, and nothing names a builder. A block is also local when, at its last check, the only relays that never answered were down (timeouts or server errors, not rate limits), its fee recipient is the Lido rewards vault and its extra data is an execution client’s own stamp.
pending
A relay has not answered yet. Roundbeat keeps asking (below).
unknown
A relay still had not answered when Roundbeat stopped asking, and nothing else settles the block.

How long a block can stay pending

Roundbeat asks every relay right after the slot, again about 13 minutes later, then every hour for 24 h, until each relay has answered. A relay that answers HTTP 429 (too many requests) is left alone until its cooldown ends: 10 seconds, or longer if the relay asks for it, up to about 13 minutes. Roundbeat does not retry a 429 within the same check, so a block that waits on a busy relay stays pending until a later check. If the relay is still refusing after 24 h, the block ends unknown, never local.

Missed bids

Once a block is confirmed local, Roundbeat asks every relay for its best bid for that slot. A local block with a bid is missed MEV: the Blocks table shows it in amber as Local · N left, where N is the best bid in ETH, and the slot page lists the bids. An operator whose MEV-Boost rate is at most 10% is treated as building locally on purpose, and its MEV panel says so instead of counting missed MEV.

Roundbeat asks for the bids again each hour only while no relay has answered. Once one has, a relay that was rate-limited or down at that moment is not asked again, so the best bid shown can miss that relay’s bid.

Local in the tables

The Blocks table and an operator’s Proposals tab show every proposed block without a relay as Local, including blocks still pending, unknown, or built through a relay Roundbeat does not poll. The slot page and the operator’s MEV analysis panel show the exact class.

Written for Roundbeat 1.28. Facts checked against the app source on 13 Oct 2026.