> 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/solana-srb.md).

# Solana SRB

Learn how Solana staking rewards are calculated. SOLSRB formula covers realized epoch issuance, measured epoch duration, staked supply, validator APY, and Jito MEV yield.

SOLSRB is a benchmark representing the mean, annualized staking rate across all active Solana validators.

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

> **TL;DR:** Solana staking rewards come from protocol inflation — the issuance the chain actually paid in the last completed epoch, annualized by that epoch's measured wall-clock duration and divided by the staked supply — plus Jito MEV tips. Validator-level rates are based on the median real APY over the last 10 completed epochs.

$$
SOLSRB = I\_{e} \* (t\_y \* t\_d / D\_{e}) / ss + jitoMEV
$$

<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>I_e</td><td>Realized Epoch Issuance</td><td>The total inflation rewards the protocol issued for the last completed epoch <code>e</code> (commission and delegator shares together), read from the on-chain EpochRewards sysvar (<code>totalRewards</code>). The sysvar is written at the first block of each epoch and holds the rewards of the epoch before it.</td></tr><tr><td>D_e</td><td>Measured Epoch Duration</td><td>The wall-clock duration of epoch <code>e</code> in seconds: the block time of the first produced slot of the following epoch minus the block time of the first produced slot of epoch <code>e</code>.</td></tr><tr><td>t_y</td><td>Year Constant</td><td>365 days.</td></tr><tr><td>t_d</td><td>Day Constant</td><td>86400 seconds.</td></tr><tr><td>ss</td><td>Staked Supply</td><td>Number of Self-Staked and Delegated tokens to Solana Validators, aggregated from all active and delinquent vote accounts via the <code>getVoteAccounts</code> RPC method.</td></tr><tr><td>jitoMEV</td><td>Jito MEV Reward Rate</td><td>The stake-weighted mean of the validators' net (delegator-facing) Jito MEV APY across all non-private validators (private, 100%-commission validators pass no MEV to delegators and are excluded). A stake-weighted mean is used rather than a maximum so that a single small validator's lumpy per-epoch MEV cannot dominate the figure.</td></tr></tbody></table>

The first part of the formula (`I_e * (t_y * t_d / D_e) / ss`) represents the pure staking inflation reward: the issuance the chain actually paid in the last completed epoch, annualized by the number of epochs of that measured length in a year. Solana's nominal inflation schedule is denominated in target-slot years, and the protocol re-scales per-slot issuance whenever the slot-time target changes (from 0.4 s to an inferred \~0.35 s, \~0.30 s and \~0.25 s in August–September 2026). No RPC method exposes the target, so SOLSRB measures realized issuance instead of assuming one. It therefore self-corrects within one epoch of any future slot-time change and reflects the network-average vote-credit performance. The Jito MEV component is additive, representing additional yield beyond inflation rewards.

If the issuance or epoch-boundary reads fail on a given run, the reward rate is not published for that run rather than being estimated.

Both components are published separately as reward rate variations: `staking_reward_rate` and `jito_reward_rate`.

#### Slashing

1. SOLSRB does not factor in the possibility of slashing occurrences.
2. There is no token slashing implemented at this stage.

***

### SOL Validator Staking Reward Rate: SOLSRB(v)

Staking Rewards calculates the SOLSRB for each validator based on their real achieved APY over recent epochs.

$$
SOLSRB(v) = median(apy\_{e-9}, apy\_{e-8}, ..., apy\_{e})
$$

<table data-full-width="false"><thead><tr><th width="150.33333333333331">Formula key</th><th width="187">Metric name</th><th>Description</th></tr></thead><tbody><tr><td>apy_e</td><td>Epoch APY</td><td>The real achieved APY for a given completed epoch, factoring in the validator's individual performance, the network's average performance, total inflation, total active stake, and commission.</td></tr><tr><td>e</td><td>Epoch</td><td>The most recently completed epoch. The median is computed over the last 10 completed epochs. For validators with fewer than 10 epochs of history, the median of all available epochs is used.</td></tr></tbody></table>

The total validator APY includes both the staking inflation component and the Jito MEV tips component. These are broken down into two variations:

<table data-full-width="false"><thead><tr><th width="200">Variation</th><th>Description</th></tr></thead><tbody><tr><td>staking_reward_rate</td><td>The staking inflation component of the validator's APY.</td></tr><tr><td>jito_reward_rate</td><td>The Jito MEV tips component of the validator's APY.</td></tr></tbody></table>

> **Note:** For private validators (100% commission), the reward rate is derived from the asset-level staking reward rate adjusted by the validator's voting uptime: `SOLSRB(v) = I_e * (t_y * t_d / D_e) / ss * uptime`. Voting uptime is distinct from the published Performance metric, which measures block production (see Other Solana metrics below).

***

### SOL Gross Staking Reward Rate: SOLSRB(v)^G

The gross reward rate expresses the pre-commission rate — what the delegated stake earns before the validator deducts its commissions, including the validator's block-production income. Solana validators charge two independent commissions (an inflation commission on staking rewards and a separate commission on Jito MEV tips), and additionally earn block-production transaction fees that are not shared with delegators. The gross rate is therefore derived per component:

$$
SOLSRB(v)^G = apy\_s / (1 - c) + apy\_j / (1 - c\_j) + apy\_b
$$

<table data-full-width="false"><thead><tr><th width="150.33333333333331">Formula key</th><th width="187">Metric name</th><th>Description</th></tr></thead><tbody><tr><td>apy_s</td><td>Staking APY</td><td>The staking inflation component of the validator's net APY (published as the <code>staking_reward_rate</code> variation).</td></tr><tr><td>c</td><td>Commission</td><td>The validator's commission on staking inflation rewards, as set on the vote account.</td></tr><tr><td>apy_j</td><td>Jito MEV APY</td><td>The Jito MEV tips component of the validator's net APY (published as the <code>jito_reward_rate</code> variation). Measured from the validator's <em>realized</em> per-epoch MEV tips rather than a smoothed estimate: the delegated stake's share of tips (total tips net of the MEV commission) divided by active stake and annualized, averaged over the last 4 completed epochs.</td></tr><tr><td>c_j</td><td>Jito MEV Commission</td><td>The validator's commission on Jito MEV tips, set independently from the inflation commission.</td></tr><tr><td>apy_b</td><td>Block Rewards APY</td><td>The block-production income component (published as the <code>block_reward_rate</code> variation): the transaction-fee rewards credited to the validator's identity account. Measured from realized per-epoch block rewards — total block income divided by active stake and annualized, averaged over the last 4 completed epochs. Retained entirely by the validator (no commission split), so it contributes to the gross rate only and never to the net reward rate.</td></tr></tbody></table>

Because `apy_j` is derived from realized tips net of the MEV commission, the gross term `apy_j / (1 - c_j)` recovers the total MEV tips the validator generated per unit of stake — the full pre-commission MEV yield. The block-reward term `apy_b` requires no commission adjustment, as block rewards are kept in full by the validator.

* For private validators (100% commission), the gross rate equals the assigned network staking rate adjusted by voting uptime, as the operator retains all rewards.
* Where realized per-epoch MEV is unavailable for a validator, the MEV component falls back to the network Jito MEV APY estimate, and where that estimate carries no commission the net value is used unadjusted, making the gross rate a conservative lower bound.
* The gross reward rate of a reward option is the stake-weighted average of the gross rates of its connected validators.
* The asset-level gross reward rate is the stake-weighted average of the gross rates across all validators. Note that it is defined differently from SOLSRB: SOLSRB adds the stake-weighted mean of the validators' net Jito MEV APY to the realized network staking rate, while the gross rate aggregates the validators' own pre-commission rates — the asset-level gross reward rate can therefore be below SOLSRB.

***

#### Observation Period:

1. The SOLSRB staking component is determined based on the last completed epoch at the point of evaluation (its realized issuance and measured wall-clock duration).
2. Validator-level staking rates are based on the median of the last 10 completed epochs of real achieved APY, providing a smoothed long-term yield estimate.
3. The validator Jito MEV and block-production reward components are each averaged over the last 4 completed epochs of realized rewards.
4. 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. SOLSRB excludes on-chain transaction fees; these are tracked separately as the Fee Revenue metric.
2. SOLSRB employs a 365-day convention for annualizing the last completed epoch's issuance. This convention remains consistent and does not accommodate adjustments for leap years.
3. Validators with fewer than 10 completed epochs may have less stable APY estimates due to a smaller sample size.
4. The Jito MEV component is variable and depends on network MEV activity and individual validator participation in the Jito protocol.

### SOL Real Reward Rate: SOLSRB^R

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

$$
SOLSRB^R = (1 + SOLSRB) / (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>I_e * (t_y * t_d / D_e) / cs</code>, the realized annualized issuance of the last completed epoch divided by <code>cs</code>, the circulating supply. The published Validator Inflation metric is the same annualized issuance divided by total supply.</td></tr></tbody></table>

#### Inflation Rate Behavior

Solana's inflation follows a disinflationary schedule. It started at 8% in February 2021 and decreases by 15% per year (the "dis-inflation rate") until it reaches a long-term steady state of 1.5%. The schedule rate returned by `getInflationRate` is denominated in target-slot years, so it is not a wall-clock annual rate once slot times change. The inflation rate used for the real reward rate calculation is instead the issuance actually paid in the last completed epoch (the validator portion; the foundation allocation is currently 0), annualized by that epoch's measured duration.

***

### Other Solana 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 SOL tokens delegated to validators.</td></tr><tr><td>Self Staked Tokens</td><td>The number of SOL tokens staked by validators directly.</td></tr><tr><td>Staking Wallets</td><td>Total number of unique delegations onchain. It doesn't distinguish based on unique delegator addresses.</td></tr><tr><td>Fee Revenue</td><td>Annualized transaction fees in USD, derived from the 30-day average of daily fees (sourced from DefiLlama) multiplied by 365 and the current SOL price.</td></tr><tr><td>Minimum</td><td>The minimum delegation for a stake account, read live from the <code>getStakeMinimumDelegation</code> RPC method (1 SOL as of September 2026). Omitted for a run if the read fails.</td></tr><tr><td>Performance</td><td>A validator's block-production rate in the current epoch: blocks produced divided by leader slots assigned so far, read for all validators at once via the <code>getBlockProduction</code> RPC method. Only the current epoch is available, so the figure covers the epoch in progress at the time of the run. It is published only once a validator has at least 20 leader slots in the epoch; validators below that threshold, or with no leader slots yet, carry no value rather than 0. A reward option's performance is the stake-weighted average across its connected validators that carry a value.</td></tr><tr><td>Lockup Time</td><td>The commitment period before a delegator can request deactivation. Solana has none, so this is 0 seconds.</td></tr><tr><td>Unstaking Time</td><td>The unbonding period once deactivation is requested. Stake deactivates at an epoch boundary, so this equals one epoch: the measured wall-clock duration of the last completed epoch, <code>D_e</code> (~1.3 days at the October 2026 slot time of ~0.27 s). Omitted for a run if the epoch-boundary block times are unavailable. Deactivations are rate-limited to 25% of active stake per epoch.</td></tr></tbody></table>

#### Data Sources:

* [Staking Rewards](https://www.stakingrewards.com/) from indexed Solana Blockchain RPC Endpoints

***

#### References:

* <https://docs.solanalabs.com/>
* <https://www.stakingrewards.com/asset/solana>

***

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

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

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

```
Last updated on 10/07/2026
```
