Live markets
The Traders Spread

How Lido (LDO) Sets Each Daily stETH Reward Rebase

Lido converts consensus-layer and execution-layer staking rewards into the daily stETH rebase by updating the share rate when the accounting oracle reports.

Cut-paper collage of server racks and a plain round token, labelled LIDO, for Lido
Illustration: The Traders Spread / generated with Grok Imagine

The Lido Tokens Integration Guide states that stETH balances "get recalculated daily when the Lido oracle reports the Consensus Layer ether balance update." That line is the mechanism. Lido does not send a reward to a wallet. It changes how much pooled ether each share represents, and the balance on screen is that ratio, read again.

How Lido staking rewards work is a question about two unlike streams and when they may touch the ratio. Consensus-layer rewards are new issuance for attestations, proposals and sync committees. Execution-layer rewards are priority fees and maximal extractable value a block already contained. They wait in a vault until the report. The annualised screen figure is one report's change in the share rate, stretched to a year.

The stretch misleads. Lido's APR API, as of 21 October 2026, put the 20 October 2026 report, at 12:22:23 UTC, at 2.225%. The seven-day average for 14 to 20 October was 2.221%. On 21 October 2024 the print was 2.835%. The file also holds 11.773% on 3 February 2025 and 2.045% on 25 July 2026. The beacon-chain formula did not leap to 11% overnight.

The Altair consensus specification pays an optimally performing validator one base reward per epoch, on average, scaled by the inverse square root of total active balance. Ben Edgington, author of Upgrading Ethereum, who worked with the Teku client team and names ConsenSys as his employer in the Altair preface, puts 84.4% of that expectation in attestations. Execution-layer ether, which he called recycled rather than newly issued, ignores the square-root curve. A governed savings rate, as on the Sky token, is a different object. Lido publishes the remainder.

Updated 21 October 2026

Key figures on the day this page was checked

  • Latest stETH user APR 2.225%, from the oracle report timed 20 October 2026 at 12:22:23 UTC. Source: Lido stETH APR API, retrieved 21 October 2026.
  • Seven-day simple moving average 2.221%, from daily prints of 2.209%, 2.255%, 2.226%, 2.208%, 2.204%, 2.220% and 2.225% on 14 to 20 October 2026. Source: Lido stETH APR API, retrieved 21 October 2026.
  • The stETH stats endpoint returned totalStaked of 9,672,726.26546998. Source: Lido protocol stats API, retrieved 21 October 2026.
  • Protocol fee currently 10% of staking rewards, waived when consensus-layer penalties exceed earned rewards. Source: Lido protocol fee page, read 21 October 2026.
  • Accounting-oracle frames last 225 consensus epochs and start around 12:00 noon UTC. Quorum is described as 5 of 9 committee members. Source: Lido AccountingOracle documentation, read 21 October 2026.
  • A report whose APR would exceed 27% cannot finalise, nor can a reported drop in staked ether above 5%. Source: Lido Tokens Integration Guide, read 21 October 2026.
  • Altair incentive weights, against a denominator of 64, are source 14, target 26, head 14, sync committee 2 and proposer 8. Source: Ethereum Altair consensus specification, read 21 October 2026.

Step 1. Consensus pays the validator before Lido is involved

The consensus reward is Ethereum's. get_base_reward_per_increment multiplies the effective-balance increment by BASE_REWARD_FACTOR and integer-divides by the square root of total active balance. get_base_reward multiplies by the validator's increments. The specification notes that an optimally performing validator earns one base reward per epoch, on average.

Weights in the same document: timely source 14, timely target 26, timely head 14, sync-committee work 2, proposer 8, denominator 64. Edgington's 84.4% is 54 divided by 64, which is 0.84375. A head vote outside one slot pays nothing on that flag. Source has a five-slot window, the square root of the 32-slot epoch he uses. Target can still pay inside the epoch.

More active ether means a smaller expected reward per validator, and Lido cannot vote the square root away. Proposals and sync seats are random, so one validator's week wanders, and a skipped block can strip the head reward. The oracle later reads whatever balance is left.

Step 2. Execution-layer ether waits in a vault

A proposer also takes the payload's priority fee, and may take MEV if an outside builder made the block. Writing before the Merge, Edgington said those sums would raise earnings and variance without new beacon-chain issuance, "since they come from recycled Ether rather than new issuance."

Lido does not leave the ether on the validator. The LidoExecutionLayerRewardsVault is set as feeRecipient. Fees arrive because it is the coinbase. MEV can arrive that way, or as a builder's transfer. Only the Lido contract may call withdrawRewards. Ether sent by accident "will be distributed by the protocol as accrued rewards."

Until the report, the vault is invisible to stETH balances. The field is elRewardsVaultBalance, taken at the reference slot. The rewards page, read on 21 October 2026, ties consensus rewards to validator performance and execution-layer rewards to blockspace demand, congestion and block building.

Step 3. Five matching hashes, then one transaction

AccountingOracle fetches what the execution layer cannot see: consensus balances, pending deposits, both vaults, exited validators, and which withdrawals can be finalised. Accounting then "performs the core state updates and rebase calculations."

A frame is 225 consensus epochs, starting around 12:00 noon UTC. SECONDS_PER_SLOT is documented as 12. Edgington treats an epoch as 32 slots. So 225 times 32 times 12 is 86,400 seconds, a calendar day. The rewards page says the rebase lands "daily around 12:30 UTC," timing variable. The 20 October 2026 report, 12:22:23 UTC, sat in that band.

Daemons hash the state at a finalised reference slot. Quorum is more than half the committee, written on the page as 5 of 9, matching the integration guide. No finality, or no five matching hashes, and nothing rebases. The next successful report covers the missed gap and brings the balance change since the last one.

The integration guide blocks a reported APR above 27%, which it treats as a daily move larger than 27/365 of a percent, and a reported drop in staked ether above 5%. Either failure stops finalisation. The same guide says daily rebases "have never been negative by the time of writing." Read on 21 October 2026, that is an observation in the document, not a floor. Penalties can still shrink pooled ether.

Step 4. The balance is a ratio

stETH does not store a balance a reward then increments. The rewards page writes balanceOf(account) = shares[account] * totalPooledEther / totalShares. Shares move on mint, burn and transfer. Pooled ether moves when the report lands. Integer division can leave 1 or 2 wei behind on a round transfer. The guide's fix is transferShares, which moves the stable unit.

The report's inputs are the consensus-layer balance, the execution-layer vault and the withdrawal vault, plus the withdrawals to finalise. Finalising one pays ether out and burns the escrowed shares. Accounting.handleOracleReport, in the order the AccountingOracle page lists, runs sanity checks, those burns, the consensus update, collectRewardsAndProcessWithdrawals, and only then a fee mint if the fee is positive. TokenRebased is last. Unchanged shares simply read the new rate.

Vasiliy Shapovalov, author of the Lido research post "How Lido Works" of 6 November 2020, had the ancestor: data "is sent daily and is used to provide an accurate balance of stETH tokens for users," and on reward days "a small amount of stETH tokens are minted" to operators and the DAO. Execution-layer rewards and withdrawals came later. The daily oracle and the mint-the-fee design stayed.

Step 5. The fee is new shares, and the split is not one number

The protocol fee page, read on 21 October 2026, puts the charge at 10% of staking rewards, taken inside the rebase. It is waived "during periods of negative net rewards, when Consensus Layer penalties exceed earned rewards." Holders are not billed a cut of a loss.

The integration guide sets the mint so new shares, priced at the post-report rate, equal the fee basis times rewards. Solved, shares minted equal rewards times fee basis times previous shares, divided by new pooled ether times 10,000 minus fee basis times rewards. Old share counts do not change.

The same day's pages disagree on who receives them. The integration guide splits the 10% in half, operators and treasury. The fee page is by module. Curated is that half split: 90% stakers, 5% operators, 5% DAO. Simple DVT normal clusters are 90, 7 and 2. Super clusters are 90, 5 and 4. Permissionless Community Staking Module operators are 90, 3.5 and 6.5. Identified community stakers are 90, 6 and 4. Simple DVT and CSM v2 are marked blended at the module row, with those cluster rows underneath. The 10% is the stable fact. The inner cut is not.

Step 6. Withdrawals move both sides, and the wrapper refuses to rebase

A withdrawal is not a negative reward. Finalising pays ether out and burns the escrowed shares, so the rate on what remains can barely budge. The integration guide says the old APR, which watched value and ignored shares, failed once withdrawals finalised. The current formula uses the share rate on both sides of the report.

Nor is every inflow a higher rate. Rewards not spent on the queue are restaked, which is how the guide describes compounding. A week that spends the vault on exits shows a dull APR even though validators earned.

wstETH freezes the display. Wrapping locks stETH and mints against shares. The wrapper balance sits still. stEthPerToken moves. Unwrapping later pays the new rate, up or down.

Lending books prefer that. stETH emits no Transfer on a rebase, the exception the guide notes against ERC-20. Aave V2 had to track a liquidity index and a rebasing index together. Markets in the Aave deposit story list wstETH so the rebase stays inside the rate. Chainlink's capped pools, on the Chainlink page, are different again: a sized bond, not a socialised claim on issuance.

RelatedBasic Attention (BAT) Rises 26.7% in the Week to 18 Oct

Step 7. Read the annualised print as one window, not a year

The API documentation builds user APR from TokenRebased. Each share rate is total ether times 10 to the 27, divided by total shares, before and after the report. APR multiplies the relative change by seconds in a year and divides by timeElapsed. The page does not print that seconds constant, so this one does not invent it.

A short window with a large inflow annualises into a spike. A catch-up report carries more ether and more time, and publishes their ratio. From 21 October 2024 to 20 October 2026 the endpoint returned 730 daily reports. Most sit a little above 2%. The outliers include 11.773% on 3 February 2025, 7.349% on 7 April 2025, 7.051% on 11 October 2025 and 4.568% on 13 March 2026, with a low of 2.045% on 25 July 2026. No cause is assigned here to any single spike. The past report bodies were not re-opened field by field.

Line chart of Lido stETH annualised reward APR from each accounting oracle report, 21 October 2024 to 20 October 2026
Annualised stETH APR from each Lido accounting-oracle report, 21 October 2024 to 20 October 2026. Spikes are single-report prints. Source: Lido APR API, retrieved 21 October 2026.

That drift is the two Octobers: 2.835% on 21 October 2024 and 2.225% on 20 October 2026. Square-root issuance can pull a baseline down while the fee stays at 10%. Ethereum's total staked ether was not fetched for this page, so the sag is not pinned to a network figure. totalStaked of 9,672,726.26546998, from the stats call on 21 October 2026, is the size of the pool that just repriced.

Questions the ratio can answer

Does the stETH balance change with no transaction in the wallet?

Yes. The integration guide recalculates balances when the oracle reports the consensus-layer update, and stETH emits no Transfer for that rebase. The wallet reads shares times pooled ether over total shares. A transfer, mint or burn is what changes the share count. wstETH instead holds the balance still and lets stEthPerToken carry the reward. After a successful report, neither display needs a transaction from the holder.

Can a day's rebase be negative?

The function allows it. Penalties and slashing cut validator balances, and the oracle reports the figure it has. The integration guide, as read on 21 October 2026, says daily rebases had never been negative by the time of that writing. A reported drop above 5% fails the sanity check and does not finalise. The fee is waived when penalties exceed rewards. A missed report is not a loss posted to the rate. It is a day with no rebase.

Why is one day's APR a poor stand-in for the year?

User APR annualises one report: share-rate change divided by the seconds covered, then scaled to a year. Tips, MEV and the length of timeElapsed all move it. Most days from October 2024 to October 2026 sat near 2% to 3%, yet 3 February 2025 printed 11.773%. The seven-day average to 20 October 2026 was 2.221%, next to that day's 2.225%. The average describes a finished week. It is not an amount anyone is owed.

Does wstETH earn a different reward from stETH?

No. It wraps the same shares. The wstETH balance stays fixed while stEthPerToken follows the rebase. Unwrapping pays the new rate, higher after a gain and lower after a loss. The wrapper is there for software that cannot abide a balance that moves by itself. A programme that adds a further payment on top is paying its own reward, not a second Lido one.

What happens if the oracle does not reach quorum?

Nothing posts. Without finality the daemons stay quiet, and without five agreeing hashes out of nine the report never lands. Balances remain on the old share rate until a later report passes. That report spans the gap, and APR divides by the whole elapsed time. Four oracles cannot force a partial update, and no side balance accrues interest for the missing day.

What the rebase settles, and what it leaves open

When five of nine oracles agree and the sanity checks pass, Lido updates pooled ether and shares for the consensus balance, both vaults, the withdrawals it can finalise, and the fee it mints. Every share reads the new rate. There is no private claim on one proposal, and no wait for a depositor's own ether to leave the activation queue.

Nothing here promises a positive day or a smooth APR. A frame of 225 epochs is a day in the slot arithmetic, starting near noon UTC, and "around 12:30" is only how the rewards page describes a normal landing. The 10% fee need not keep the curated module's 5% and 5%, because other rows already differ. The 2.225% print and the 2.221% average are closed windows, read from Lido's API on 21 October 2026. They are not a rate owed forward.

Shares are the position. The APR is one window, annualised, and a spike is one report. The ether remains a claim on validators, open to penalties, the withdrawal queue and the next finalised slot.

This article is analysis and information, not personal investment advice. Markets move; levels and odds above were correct at publication and any prices shown are indicative.

Share

Send this analysis to someone who trades How Lido (LDO) Sets Each Daily stETH Reward Rebase.

Make us a preferred source

Tell Google you want The Traders Spread higher in Top stories. It sticks to your account.

  1. 1Open Preferred sources on Google.
  2. 2Search The Traders Spread and tick the box.
  3. 3Save — our calls now surface first.
Open on Google

Opens Google in a new tab. Nothing changes here.

Keep reading

Desk