Allow Commission Decrease at Any Time
- Idea
- Draft
- Review
- Accept
- Implement
- Active
Decision brief
Why this proposal matters
The commission_updates_only_allowed_in_first_half_of_epoch feature disallows commission decrease in the second half of epoch. Given that the purpose of this feature was to prevent 'rug pulls' which are accomplished by increasing commission at the end of epoch and then decreasing commission at the beginning of next epoch, disallowing decreases during the second half of epoch is unnecessary. A feature gate must be added to support this SIMD as all validators' vote programs must treat commission change instructions the same or else consensus will diverge.
Proposal at a glance
What changes
- A feature will be added which, when enabled, must cause all node implementations' vote program's set-commission instruction handling to first check whether the proposed commission change is a decrease or no change, and if so, do not invoke the "only allow commission change in first half of epoch" rule.
- The commission_updates_only_allowed_in_first_half_of_epoch feature disallows commission decrease in the second half of epoch. Given that the purpose of this feature was to prevent 'rug pulls' which are accomplished by increasing commission at the end of epoch and then decreasing commission at the beginning of next epoch, disallowing decreases during the…
Stakeholder map
Who is affected
Builders & client teams Medium impact
A feature will be added which, when enabled, must cause all node implementations' vote program's set-commission instruction handling to first check whether the proposed commission change is a decrease or no change, and if so, do not invoke the "only allow commission change in first half of epoch" rule.
Action may be requiredValidators & operators Medium impact
When activated, breaks the ability of older Solana node software to verify ledgers with this feature.
Action requirement unknownUsers & stakers Impact unknown
No proposal-specific evidence was found for this group.
Action requirement unknownGovernance & ecosystem Impact unknown
No proposal-specific evidence was found for this group.
Action requirement unknownExact source revision
Full proposal document
f1f6c8b05dc2Summary
The commission_updates_only_allowed_in_first_half_of_epoch feature disallows commission decrease in the second half of epoch. Given that the purpose of this feature was to prevent 'rug pulls' which are accomplished by increasing commission at the end of epoch and then decreasing commission at the beginning of next epoch, disallowing decreases during the second half of epoch is unnecessary.
A feature gate must be added to support this SIMD as all validators' vote programs must treat commission change instructions the same or else consensus will diverge.
Motivation
Some validator operators may need to decrease commission in order to satisfy their own operational criteria.
As an example, a validator operator may have a policy whereby any error that results in reduced stake account rewards for the epoch, will result in the operator choosing to reduce commission to 0% for that epoch to ensure that stake accounts are not disadvantaged by that error. Not being allowed to do this in the second half of an epoch is a problem because it would prevent that commission change until the next epoch, which will not allow this policy to take effect for stake accounts which were de-activating during the epoch.
Alternatives Considered
No alternatives were considered.
New Terminology
None
Detailed Design
A feature will be added which, when enabled, must cause all node implementations' vote program's set-commission instruction handling to first check whether the proposed commission change is a decrease or no change, and if so, do not invoke the "only allow commission change in first half of epoch" rule.
Impact
Validators will now be able to decrease commission at any time in the epoch, but only increase commission in the first half of epochs (because of the commission_updates_only_allowed_in_first_half_of_epoch feature already implemented).
Security Considerations
None
Drawbacks
It may cause additional confusion to validators who might not understand why some types of commission changes succeed only in the first half of epochs while others succeed always.
Backwards Compatibility
This feature requires a feature gate because software which includes the implementation will allow certain set-commission transactions to succeed where software without the implementation would fail those transactions. Thus all validators must be updated to the new functionality at an epoch boundary so that all validators agree on the result of executing those transactions.
When activated, breaks the ability of older Solana node software to verify ledgers with this feature.
Evidence graph
Related proposals and rollout
One or more sources are unavailable.
Upstream review record
Upstream discussion & review
GitHub review is editorial context, not evidence of on-chain support, voting, or outcome.
PR #79 · merged SIMD-0079: Allow commission decrease at any time during an epoch 36 comments and reviews · Jan 19, 2026Well, the purpose of sections is documented for a reason in the template. Clearly stating the impact on each SIMD helps with prioritizing work on these features (which always involve a lot of testing, btw). Unless I'm mistaken, this seems like "nice to have" level of importance to the ecosystem.
GitHub ↗Impact How will the implemented proposal impacts dapp developers, validators, and core contributors? The text included states how the change will impact validators. There is no impact to the other categories outside of the truism that "any change could affect anyone".
GitHub ↗Do we know how many validators have the policy mentioned in the motivation section, or how common this problem is? Something like that would be nice to document as impact, because I agree with Richard that unless we understand that this change does seem "nice to have"
GitHub ↗Is one good reason not enough?
GitHub ↗I asked my colleagues to review and approve once I have a second opinion from my team. (It looks good to me). Thanks for submitting this.
GitHub ↗Is one good reason not enough? @bji Yes -- Long story short, we should to scrutinize feature activations more, especially by triaging them by usefulness. The impact section would be the place to make an argument why the feature is important. The text included states how the change will impact validators. If most validators didn't notice activation of this feature, is it really impactful? But your point is valid, the template should be clearer about the purpose of this section. Considering this doesn't improve performance or reliability and it's unclear whether anyone else will use this feature, I would say it's barely enough justification. The risk of any feature flag is that it halts the ne
GitHub ↗The original feature which prevented changes to the commission in the second half was an over-reach. It had a goal ("prevent rug pulls") and it created collateral damage by implementing a more restrictive than necessary policy. It doesn't seem like the best way to have technical discussions to have to provide justification for whether or not the reasons are "good enough". What you think is important, someone else might not. It's necessary to include importance in prioritization of effort, but when discussing technical merits of a proposal, I think justification just should be a minor factor, and having "one good reason" should be good enough. In this case, I've already given a justification
GitHub ↗Green light from Firedancer side, but considering this low priority. Thank you; the implementation has already been provided to Solana Labs as a PR so from their perspective it should be an easy thing to take. Once it's reached consensus within the cluster Firedancer would have to implement it; but I think it's a very easy implementation.
GitHub ↗Provenance
Evidence & technical details
Rollout or chain data, source revisions, freshness and integrity. 2
Provenance
Evidence & technical details
Rollout or chain data, source revisions, freshness and integrity.SIMD
Deployment Status
decoMktMcnmiq6t3u7g5BfgcQu91nKZr6RvMYf9z1JbExact source revision
Sources & integrity
- Proposal document pinned_commit_blob
f1f6c8b05dc205552d3c290a854a438392701107 - simd-document document · stale · Oct 16, 2026
f1f6c8b05dc205552d3c290a854a438392701107
One or more sources are unavailable.
simd.watch community discussion · SIMD-0079
Powered by Giscus · Sign in with GitHub to comment
Community comments load when this section approaches the viewport.