Skip to main content
Governance

Why abstaining works against SGPs

@ValigatorTech
August 24, 2026
5 min read
Why abstaining works against SGPs

Originally published on X.

We encountered a nuance deep in the details of SGP-0001 that we were not able to get fixed before the vote opened. It affects all three of the current proposals, and it will matter most if any of them lands close.

TLDR: Abstaining is not neutral. It counts against a proposal exactly as much as a No vote does. If you want to participate without pushing the outcome either way, split your vote 2/3 FOR and 1/3 to either of the others. We intend to propose a future SGP to fix this.

SGP-0001 counts abstain stake in the supermajority denominator. That means an abstention raises the yes stake required to pass by exactly as much as a no vote does, so the neutral option on the ballot is not neutral.

Passage requires two-thirds of For + Against + Abstain to vote For. Abstain sits in the denominator but never the numerator, which is also true of Against. Every unit of stake behaves the same way whether it abstains or opposes. The only difference is the label on-chain.

Abstaining is not the cautious middle between voting and not voting. It is the most adverse thing a validator can do short of voting no, and in one respect it is worse than voting no: silence leaves a proposal Inconclusive, which Article IV.7 treats as network indifference rather than rejection. Abstaining drags turnout past quorum and converts that same indifference into a formal rejection.

To illustrate, say the network has 300M stake, 90M For and 30M Against are already in, and a validator holding 30M is deciding what to do:

That 30M doesForAgainstAbstainParticipatingQuorum (100M)For needed (⅔)For actualOutcome
Nothing90M30M0120Mmet80M90MAccepted
Abstains90M30M30M150Mmet100M90MRejected
Votes against90M60M0150Mmet100M90MRejected

Note the first row. Staying home is better for this proposal than abstaining is. And the result is strange: under SGP-0001, the only way to cast a vote that does not affect the outcome is to put two-thirds of your stake in the FOR column. A validator who wants to signal neutrality has to look like a supporter to do it.

The currently written proposal says:

For ≥ ⅔ × (For + Against + Abstain)

Which rearranged looks like:

For − 2 × (Against + Abstain) ≥ 0

Call the left side the margin. A proposal passes when the margin is at or above zero, and every allocation moves it. A unit of FOR adds one. A unit of AGAINST or ABSTAIN subtracts two. That 2:1 asymmetry is the supermajority requirement, expressed as arithmetic instead of a ratio.

So the question for any validator is not which option to pick, but what your allocation does to the margin. Two-thirds FOR is the split where it does nothing.

Your splitMargin contribution per 30M SOLPushes toward
100% ABSTAIN-60Mno
100% AGAINST-60Mno
50/50 FOR/AGAINST-15Mno weakly
2/3 FOR, 1/3 other0nothing
100% FOR+30Myes

The figures scale with your stake. The formula is S × (3f - 2), where S is your stake and f is the fraction you allocate FOR.

Splitting 50/50 is not neutral. It lands at -15M because half is below the two-thirds bar the proposal has to clear, so a split that looks balanced still drags the ratio down.

Whether that remaining third goes to AGAINST or ABSTAIN makes no difference. They appear only as a sum in the inequality, so the arithmetic cannot tell them apart. The only thing you are choosing is what the on-chain record says you did.

Voting 2/3 FOR contributes to quorum without weighting either side of the question. That is neutral on the substance, and deliberately not neutral on whether the network reaches a decision. We think Inconclusive is the worst available outcome, so we would rather help the vote count than sit it out.

You cannot be neutral on quorum. Every allocation counts fully toward participation regardless of how it splits, so any vote at all pushes turnout toward the one-third quorum line. Only not voting is quorum-neutral. If quorum is already comfortably met, the 2/3 split is genuinely neutral. If the vote is near the quorum line, casting it at all is a decision.

Validators have to vote for a staker to override. A staker cannot make their voice heard unless their validator casts a vote first. That is another reason we think validators should vote rather than sit out.

Correction: A staker does not have to wait for their validator — they can submit an override at any time. If the validator hasn't voted yet, the override is stored in a VoteOverrideCache and applied automatically once the validator casts its vote. So a validator's vote is required for a cached override to take effect, not for a staker to submit one. See How to Vote on Solana Governance for the full flow.

AI DISCLOSURE: We did use a clanker to help with this article more than we usually like to. We are happy to accept corrections and make edits for completeness where needed if errors are pointed out to us in the comments.