Skip to main content
Technical proposal SIMD-0490 Review

Upgrade BPF Stake Program to v5.0.0

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

Decision brief

Why this proposal matters

This SIMD will upgrade the Core BPF Stake Program to v5.0.0.

Source-backed reading aid · source language: EN

Proposal at a glance

What changes

  • Raise minimum delegation from 1 lamport to 1 sol. This is a medium-firm blocker on rent reduction because allowing the total lamports required to open a stake account to fall is highly undesirable.
  • Use the Rent sysvar in preference to Meta.rent_exempt_reserve. This is a hard blocker on rent reduction to protect the integrity of mathematical operations involving delegated stake. The value of rent_exempt_reserve for all new stake accounts is held at 2_282_880, the present rent-exempt reserve of a 200-byte stake account, to minimize downstream breakage.
  • Make all sysvar account inputs optional. The Stake Program will continue to gracefully accept existing instructions that include sysvars.

Stakeholder map

Who is affected

Builders & client teams Medium impact

Creating new stake accounts whose delegation is below 1 sol will no longer be possible. Dapps which create stake accounts must account for minimum delegation. Ultimately the Stake Program is the arbiter of correctness and will safely reject invalid state transitions.…

Action may be required
Validators & operators Medium impact

In validator clients this feature will use existing code to effect a Core BPF Program upgrade. Otherwise, the only required validator support is to return the new minimum delegation for the getMinimumDelegation RPC call.

Action may be required
Users & stakers Medium impact

Sysvars no longer need to be provided for Stake Program operations, reducing transaction size and allowing CPI callers to also no longer require these accounts in their own interfaces. Updated Stake Program instruction builders will be released after BPF Stake v5.0.0 is live on all networks.

Action may be required
Governance & ecosystem Impact unknown

No proposal-specific evidence was found for this group.

Action requirement unknown

Exact source revision

Full proposal document

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

Summary

This SIMD will upgrade the Core BPF Stake Program to v5.0.0.

Motivation

The BPF Stake Program is under active development and requires feature-gated releases to upgrade to new versions. This proposal is not in and of itself a new feature.

Aside from the general desire to improve and maintain the BPF Stake Program, this SIMD is necessary to activate the Incremental Reduction of lamports_per_byte feature gates.

New Terminology

N/A

Detailed Design

BPF Stake v5.0.0 introduces several changes:

  • Raise minimum delegation from 1 lamport to 1 sol. This is a medium-firm blocker on rent reduction because allowing the total lamports required to open a stake account to fall is highly undesirable.
  • Use the Rent sysvar in preference to Meta.rent_exempt_reserve. This is a hard blocker on rent reduction to protect the integrity of mathematical operations involving delegated stake. The value of rent_exempt_reserve for all new stake accounts is held at 2_282_880, the present rent-exempt reserve of a 200-byte stake account, to minimize downstream breakage.
  • Make all sysvar account inputs optional. The Stake Program will continue to gracefully accept existing instructions that include sysvars.
  • Rewrite the implementation of Split to fix several longstanding bugs. Other that removing self-split, the new Split processor remains backwards compatible.

In validator clients this feature will use existing code to effect a Core BPF Program upgrade. Otherwise, the only required validator support is to return the new minimum delegation for the getMinimumDelegation RPC call.

Alternatives Considered

The 1 sol minimum delegation was chosen after extensive debate and several other options had been considered, including 0.1 sol, 0.001 sol, and the current rent-exemption threshold.

A substantial number of stake accounts on Mainnet-Beta are below 1 sol, however collectively these account for 0.02% of active stake on the network. Validator operators have expressed comfort with adopting a 1 sol minimum via SIMD.

All other changes in v5.0.0 are routine fixes and improvements.

Impact

  • Creating new stake accounts whose delegation is below 1 sol will no longer be possible. Dapps which create stake accounts must account for minimum delegation. Ultimately the Stake Program is the arbiter of correctness and will safely reject invalid state transitions. Merging stake accounts is always allowed, even if the merge destination does not rise above 1 sol.
  • Meta.rent_exempt_reserve is now deprecated and dapps should calculate rent- exemption via Rent. This is a consequence of rent reduction itself rather than this SIMD specifically.
  • Sysvars no longer need to be provided for Stake Program operations, reducing transaction size and allowing CPI callers to also no longer require these accounts in their own interfaces. Updated Stake Program instruction builders will be released after BPF Stake v5.0.0 is live on all networks.
  • The old version of Split treated initialized stakes and deactivated stakes differently due to a longstanding bug with the side-effect that deactivated stakes could sometimes not be Split from. This is now fixed and Split should always work under the rules of its operation.
  • When calling Merge on two activating stakes, only the source delegation and rent_exempt_reserve would be merged into the destination delegation. We now merge all lamports from the source account.

Security Considerations

BPF Stake v5.0.0 will undergo security audit before deployment is allowed.

Backwards Compatibility

Minimum delegation will rise above 1 lamport. Tooling or onchain programs that assume Rent.minimum_balance(200) + 1 is sufficient to create a stake account may break for very small balances.

Splitting a stake account into itself is now an error. There is no valid usecase for such an act and as such we expect no breakage.

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-0490

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 lifecycleReview
CategoryCore protocol

Feature Gate not yet created

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.