Skip to main content
Technical proposal SIMD-0599 Idea

Remove Inactive Stakes from Rewards

  1. Idea
  2. Draft
  3. Review
  4. Accept
  5. Implement
  6. Active

Decision brief

Why this proposal matters

The partitioned epoch rewards process currently requires all stake accounts, including inactive stakes, to be considered when computing the lattice hash and rewards partition count. But inactive stakes do not contribute to stake weight or rewards, so they shouldn't be required. This proposal changes the rewards process to only include activating, active, and deactivating stake accounts.

Source-backed reading aid · source language: EN

Proposal at a glance

What changes

  • During epoch rollover from an epoch E to E + 1, all stakes that were inactive in E must not be included in the partitioned epoch rewards phases: calculation and distribution.
  • Specifically, during epoch rollover, inactive stakes must be excluded from the set of all potential reward-receiving stakes.
  • During account updates, if a stake account is inactive in both the current and previous epochs, it must be removed from consideration for a validator's stake weight.

Stakeholder map

Who is affected

Builders & client teams Medium impact

Validator development will be simpler since developers no longer need to consider inactive stakes in partitioned epoch rewards.

Action may be required
Validators & operators Medium impact

Validator development will be simpler since developers no longer need to consider inactive stakes in partitioned epoch rewards.

Action may be required
Users & stakers Impact unknown

No proposal-specific evidence was found for this group.

Action requirement unknown
Governance & ecosystem Medium impact

This proposal changes the rewards process to only include activating, active, and deactivating stake accounts.

Action requirement unknown

Exact source revision

Full proposal document

Source-language document. Technical identifiers and evidence remain unchanged. 0616093b2952

Summary

The partitioned epoch rewards process currently requires all stake accounts, including inactive stakes, to be considered when computing the lattice hash and rewards partition count. But inactive stakes do not contribute to stake weight or rewards, so they shouldn't be required.

This proposal changes the rewards process to only include activating, active, and deactivating stake accounts.

Motivation

The Solana runtime currently includes inactive stake accounts during partitioned epoch reward calculations, which are useless, but consensus critical.

Their inclusion during the rewards period can impact:

  1. The number of partitions
  2. The lattice hash

As a result, all validator implementations must also include inactive stakes, which is a maintenance burden and potential footgun.

New Terminology

Not new, but "inactive stake" means "a stake with no effective or activating stake".

As a reminder, a deactivating stake has effective stake.

Detailed Design

During epoch rollover from an epoch E to E + 1, all stakes that were inactive in E must not be included in the partitioned epoch rewards phases: calculation and distribution.

Specifically, during epoch rollover, inactive stakes must be excluded from the set of all potential reward-receiving stakes.

During account updates, if a stake account is inactive in both the current and previous epochs, it must be removed from consideration for a validator's stake weight.

As a reminder, during the calculation and distribution phases of partitioned epoch rewards, stake state changes are not allowed through transactions.

This table summarizes the cases and actions to take.

Status in EStatus in E+1During rewards for E
Activating / activeActivating / activeInclude
ActiveInactiveInclude
InactiveInactiveExclude

Edge Cases

This case is covered in the design, but it is useful to explain. Stakes going from non-zero effective stake to inactive at the start of epoch E + 1 must be included in the reward set.

During partitioned epoch reward payout, the newly-inactive stake must receive its rewards.

Validator Components Affected

Which validator components are affected by this change?

Validator ComponentImpact
Transaction Execution (Runtime)Partitioned epoch rewards changed

Alternatives Considered

None.

Impact

Validator development will be simpler since developers no longer need to consider inactive stakes in partitioned epoch rewards.

Security Considerations

None.

Conformance

We will provide a ledger with active, inactive and deactivating stakes at epoch E, covering all cases in the table under "Detailed Design".

Evidence graph

Related proposals and rollout

One or more sources are unavailable.

Upstream review record

Upstream discussion & review

One or more sources are unavailable.

simd.watch community discussion · SIMD-0599

Powered by Giscus · Sign in with GitHub to comment

Community comments load when this section approaches the viewport.

Provenance

Evidence & technical details

Rollout or chain data, source revisions, freshness and integrity.
3

SIMD

Deployment Status

Document lifecycleIdea
CategoryCore protocol
Devnetinactive
Testnetinactive
Mainnet-Betainactive
RMsTKfD6hZnBhhNvgGBeKNrqCNkeoP3DYYxNtcuWtRg

Exact source revision

Sources & integrity

  • Proposal document pinned_commit_blob
    0616093b2952ed6de52c4a27d66aadd11d48d4f9
  • simd-document document · stale · Sep 11, 2026
    0616093b2952ed6de52c4a27d66aadd11d48d4f9

One or more sources are unavailable.

One or more sources are unavailable.