> For the complete documentation index, see [llms.txt](https://docs.stakingrewards.com/staking-data/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stakingrewards.com/staking-data/methodologies/tezos-srb.md).

# Tezos SRB

Learn how Tezos staking rewards are calculated. XTZSRB is the rate on staked (frozen) XTZ; the formula covers max block rewards, endorsement slots, blocks per year, and total baking power.

XTZSRB is a benchmark representing the annualized gross staking rate earned by one **staked (frozen) XTZ** across all active Tezos bakers.

XTZSRB is calculated and published by Staking Rewards via the [Tezos Profile](https://www.stakingrewards.com/asset/tezos) and [Data API](https://www.stakingrewards.com/data-api).

> **TL;DR:** Tezos staking rewards are based on maximum theoretical block rewards (block reward + bonus slots + endorsement rewards + DAL attestation rewards) multiplied by blocks per year, divided by total baking power. Baker-level rates are based on each baker's realised rewards from the previous cycle, net of commission. Because the protocol counts delegated (liquid) XTZ at one third of its weight in baking power, XTZSRB is the rate on staked (frozen) XTZ; delegated XTZ earns at most about one third of it at protocol level.

$$
XTZSRB = maxRewardsPerBlock \times blocksPerYear / totalBakingPower
$$

<table data-full-width="false"><thead><tr><th width="200">Formula key</th><th width="200">Metric name</th><th>Description</th></tr></thead><tbody><tr><td>maxRewardsPerBlock</td><td>Max Rewards Per Block</td><td>The maximum rewards that can be earned per block, calculated as: <code>blockReward + (blockBonusPerSlot * (endorsersPerBlock - consensusThreshold)) + (endorsersPerBlock * endorsementRewardPerSlot) + (dalAttestationRewardPerShard * dalNumberOfShards)</code>. These values are sourced from the TzKT protocol constants and current cycle data.</td></tr><tr><td>dalAttestationRewardPerShard</td><td>DAL Attestation Reward Per Shard</td><td>The per-block reward paid for attesting one Data Availability Layer shard, sourced from the current cycle data. DAL rewards are a funded issuance component introduced with the Rio protocol upgrade (cycle 858, May 2025), carrying roughly 10% of all participation reward weight. Cycles before Rio report <code>0</code>, so the term self-zeroes for historical protocols.</td></tr><tr><td>dalNumberOfShards</td><td>DAL Number Of Shards</td><td>The number of DAL shards per block (currently 512), sourced from the Tezos protocol constants.</td></tr><tr><td>blocksPerYear</td><td>Blocks Per Year</td><td>The theoretical number of blocks produced per year, calculated as: <code>365 * 24 * 60 * 60 / timeBetweenBlocks</code>, where <code>timeBetweenBlocks</code> is sourced from the Tezos protocol constants.</td></tr><tr><td>totalBakingPower</td><td>Total Baking Power</td><td>The total baking power across all active bakers in the current cycle, sourced from TzKT cycle data. Baking power determines each baker's share of block production rights. It counts each baker's own staked (frozen) XTZ in full; external staked XTZ in full up to the baker's <code>limitOfStakingOverBaking</code> (at most <code>maxExternalOverOwnStakeRatio</code>, currently 9, times the baker's own stake), with any excess counted as delegated; and delegated XTZ divided by <code>delegationPowerDivider</code> (currently 3), the delegated amount being capped at <code>maxDelegatedOverFrozenRatio</code> (currently 9) times the baker's own frozen stake.</td></tr></tbody></table>

* XTZSRB is non-compounded and represents the staking rate before reinvesting rewards.
* Includes both claimed and unclaimed baking, endorsement and DAL attestation rewards.
* Uses maximum theoretical rewards per block, representing the optimal case where all endorsement slots are filled and all DAL shards are attested.
* The benchmark reflects the protocol's reward parameters as defined by the current Tezos protocol upgrade.

#### Staking vs. delegation

Tezos has two ways to back a baker. **Staking** freezes XTZ with the baker; frozen XTZ counts fully toward baking power and can be slashed. External stake counts in full only up to the baker's `limitOfStakingOverBaking` (at most `maxExternalOverOwnStakeRatio`, currently 9×, the baker's own stake); any excess is counted as delegated. **Delegation** leaves XTZ liquid and unslashable; the protocol counts it at `1 / delegationPowerDivider` of its weight (currently 1/3), and delegation beyond `maxDelegatedOverFrozenRatio` (currently 9×) a baker's own frozen stake counts for nothing.

Since `totalBakingPower = stakedXTZ + delegatedXTZ / 3` (subject to those caps), XTZSRB is the gross rate per **staked** XTZ. A delegated XTZ earns at most XTZSRB / 3 at protocol level. Those rewards are paid to the baker's liquid balance, and any share passed to delegators is an off-chain payout set by the baker. XTZSRB is not a blended average of the two rates.

#### Slashing

1. XTZSRB does not factor in the possibility of slashing occurrences.
2. Tezos implements slashing for double-baking and double-endorsement violations. Slashed amounts are burned.

***

### XTZ Baker Staking Reward Rate: XTZSRB(v)

Staking Rewards calculates the XTZSRB for each baker based on their actual rewards from the previous completed cycle.

$$
XTZSRB(v) = (rewardsPerBlock\_v \times blocksPerYear / bakingPower\_v) \times (1 - commission)
$$

<table data-full-width="false"><thead><tr><th width="200">Formula key</th><th width="200">Metric name</th><th>Description</th></tr></thead><tbody><tr><td>rewardsPerBlock_v</td><td>Validator Rewards Per Block</td><td>The baker's total rewards (block rewards + endorsement rewards + block fees + DAL attestation rewards) from the previous completed cycle, divided by blocks per cycle. Each component sums the rewards the protocol pays on every part of the baker's baking power: delegated, staked-own, staked-edge and staked-shared. Because the delegated portion is earned on delegated XTZ counted at one third weight in <code>bakingPower_v</code>, dividing the total by <code>bakingPower_v</code> yields the rate per staked (frozen) XTZ, not a blend of the staking and delegation rates. DAL attestation rewards are read from each baker's own figures: bakers who attest fewer than 64% of their assigned shards earn no DAL reward for that cycle, and their rates correctly reflect that. Sourced from TzKT baker rewards API.</td></tr><tr><td>bakingPower_v</td><td>Baker's Baking Power</td><td>The baker's baking power in the previous cycle, sourced from TzKT: own staked XTZ in full, external staked XTZ in full up to the baker's <code>limitOfStakingOverBaking</code>, plus delegated XTZ (including any external stake above that limit) divided by <code>delegationPowerDivider</code> (currently 3), the delegated amount being capped at <code>maxDelegatedOverFrozenRatio</code> (currently 9) times the baker's own stake.</td></tr><tr><td>commission</td><td>Commission</td><td>The baker's fee on <strong>external stakers'</strong> rewards. Primary source: on-chain <code>edgeOfBakingOverStaking</code> (in billionths), the share of external stakers' rewards the protocol pays to the baker. Fallback: the baker's published fee from the Baking Bad v3 API, for bakers without the on-chain parameter — the listed staking fee where Baking Bad publishes one, otherwise the listed delegation fee, used as a proxy for the edge. XTZSRB(v) is therefore the net rate for an external <strong>staker</strong>; for bakers on the delegation-fee fallback it approximates that rate. Delegators are paid off-chain under each baker's own terms and earn at most about one third of the gross rate before that baker's delegation fee.</td></tr></tbody></table>

* `rewardsPerBlock_v` is built from realised rewards, so missed blocks, missed attestations and forfeited DAL attestation rewards are already excluded from it. No separate performance factor is applied to XTZSRB(v).
* XTZSRB(v) is the rate on staked (frozen) XTZ net of the baker's edge. It is not a delegator's rate.

***

#### Observation Period:

1. The XTZSRB is determined based on the current protocol constants and cycle data at the point of evaluation.
2. Validator-level rates are based on the most recently completed Tezos cycle.
3. This data is then annualized for a comprehensive year-long projection.

#### Calculation

The calculation happens every 2 hours and is immediately published via [Data API](https://www.stakingrewards.com/data-api).

#### Limitations

1. XTZSRB employs a 365-day convention for annualizing block rewards. This convention remains consistent and does not accommodate adjustments for leap years.
2. XTZSRB uses the maximum theoretical rewards per block. Actual rewards may be lower if endorsement slots are not fully utilized across the network, or if DAL shards go unattested — DAL rewards in particular are forfeited entirely by any baker attesting fewer than 64% of its assigned shards in a cycle.
3. Individual baker rates reflect realised rewards in the previous cycle, including the luck of block-rights assignment and any missed blocks, attestations or DAL shards, and can vary cycle to cycle.
4. The benchmark assumes the current protocol parameters remain constant for the projection period. Protocol upgrades may change reward parameters.
5. XTZSRB and XTZSRB(v) describe staked (frozen) XTZ. Staking Rewards does not currently publish a separate rate for delegated (liquid) XTZ, which earns at most about one third of XTZSRB at protocol level before the baker's off-chain payout terms.

### XTZ Real Reward Rate: XTZSRB^R

The real reward rate calculates the XTZSRB adjusted for inflation in the network.

$$
XTZSRB^R = (1 + XTZSRB) / (1 + ir) - 1
$$

<table data-full-width="false"><thead><tr><th width="141">Formula key</th><th width="158">Metric name</th><th>Description</th></tr></thead><tbody><tr><td>ir</td><td>Inflation Rate</td><td>The annualized inflation rate, computed as: <code>totalCreatedPerYear / totalSupply</code>, where <code>totalCreatedPerYear = (maxRewardsPerBlock + lbSubsidyPerBlock) * blocksPerYear</code>. <code>totalSupply</code> is the total XTZ supply, and <code>lbSubsidyPerBlock</code> is the liquidity baking subsidy, which is only minted while the on-chain toggle EMA sits below its threshold and is otherwise <code>0</code> — see Inflation Rate Behavior below.</td></tr></tbody></table>

#### Inflation Rate Behavior

Tezos inflation is determined by the protocol's block reward schedule, which includes baking rewards and, when active, the liquidity baking (LB) subsidy. The total annual token creation combines the maximum block rewards (baking + endorsement + DAL attestation) and the LB subsidy per block.

The LB subsidy is **gated on an on-chain toggle**, not paid unconditionally. Bakers vote on liquidity baking in every block, and those votes move an exponential moving average: an "off" vote raises it, an "on" vote lowers it. While the EMA sits **below** `liquidity_baking_toggle_ema_threshold` (1,000,000,000) the subsidy is minted at `5,000,000 mutez * timeBetweenBlocks / 60` per block; once the EMA reaches or exceeds the threshold, the subsidy is **halted** and contributes `0` to issuance.

The EMA crossed above the threshold on **29 May 2026**, so the LB subsidy has been halted since then and currently adds nothing to Tezos inflation. The halt is reversible — the subsidy resumes automatically if enough "on" votes push the EMA back below the threshold — so the live toggle state is read from the chain on every calculation rather than assumed.

Tezos inflation parameters can change with each protocol upgrade through the on-chain governance process.

***

### Other Tezos metrics calculated by Staking Rewards:

<table data-full-width="false"><thead><tr><th width="212.99999999999994">Metric</th><th>Description</th></tr></thead><tbody><tr><td>Delegated Tokens</td><td>The number of XTZ tokens delegated to bakers, including both own and external delegations.</td></tr><tr><td>Self Staked Tokens</td><td>The number of XTZ tokens staked by bakers directly, including own staked balance.</td></tr><tr><td>Staking Wallets</td><td>Total number of delegators per baker, sourced from TzKT delegates API (<code>numDelegators</code>).</td></tr><tr><td>Total Baking Power</td><td>Aggregate baking power across all active bakers in the current cycle.</td></tr><tr><td>Fee Revenue</td><td>Annualized transaction fees in USD.</td></tr><tr><td>Performance</td><td>The baker's block production and attestation performance in the previous completed cycle, calculated as: <code>(actualBlocks / expectedBlocks + actualAttestations / expectedAttestations) / 2</code>, capped at 1.0. For a baker with no expected blocks in the cycle (small bakers below the block-rights threshold), the published value is attestation-only: <code>actualAttestations / expectedAttestations</code>, capped at 1.0. Omitted when the baker has no expected attestations. Sourced from TzKT baker rewards data. Informational: it does not enter XTZSRB(v), whose realised rewards already reflect any misses.</td></tr></tbody></table>

#### Data Sources:

* [Staking Rewards](https://www.stakingrewards.com/) from indexed Tezos Blockchain RPC Endpoints
* [TzKT](https://tzkt.io/) for cycle data, baker rewards, and protocol constants

***

#### References:

* <https://tezos.com/developers/docs/>
* <https://www.stakingrewards.com/asset/tezos>

***

:books: [Learn more about XTZ Staking](https://www.stakingrewards.com/asset/tezos)

:bar\_chart: [Calculate your XTZ Staking Rewards](https://www.stakingrewards.com/calculator?asset=tezos)

:gear: [Access historic Tezos Staking Data via API](https://www.stakingrewards.com/data-api)

```
Last updated on 10/23/2026
```
