What are Vote Credits
Think of vote credits as the bonus points a Solana validator gains when they vote for blocks that end up being rooted. "Rooted" simply means the network has confirmed that the block is permanent and will never be reverted. Every two-ish days (an epoch), staking rewards are awarded in proportion to the credits you have earned for the current epoch.
In short, vote credits are the only thing that determines the exact amount of staking APY (which averages 6-8%) you get from your validator. If you run your validator on weak hardware, you're going to get a lower score.
It's like running a Trivia night at your local bar. Everyone gets a point for a correct answer, but to differentiate people, you also award extra points for being faster. If you buzz in before the question is finished, you get the maximum bonus, but if you wait until the very last second, your bonus drops dramatically. You'll see in Trivia tournaments that people who can give 100 correct answers, but are slow will often come out mid-table. Solana Validators have to answer the question 216,000 times a day (1 every 400 ms) and their score determines how much prize money they get each epoch.
How Vote Credits Work Under the hood
Basically, Validators listen to what blocks the network is processing and submit vote transactions that name which ones the Validator thinks are the "right" ones to add to the ledger. When a block they vote on gets rooted (locked in), that validator gets rewarded with vote credits for their efforts.
Under the old ruleset, any vote that gets rooted was worth the same- a vote cast in the first second of a slot was worth exactly 1 credit, but a vote cast 3 slots later would still be worth 1 credit. The implication here is that this was allowing slower hardware or distant locations to earn the same credit as faster ones because all votes count the same regardless of speed.
With the new Timely Vote Credits ruleset (implemented via the SIMD-0033 governance proposal), a slot can have up to 16 vote credits, the more quickly a validator submits their vote, the more votes they earn. The window is only a couple slots, and for each additional slot, you lose more credit. As long as they voted on the correct block, fast honest voting now pays better than slow or dishonest voting, incentivizing faster hardware and smarter locations for these validators.
This then trickles down to what you earn. If rewards are split up according to the proportion of credits, then a validator earning 95% of possible votes for their epoch is going to earn significantly less than one earning 99%. That is before the commission is even taken into account. A validator earning just 5% fewer credits than the rest of the network is worth less than $80,000 for every 1,000 SOL delegated- and over the course of a year, they could be worth tens of thousands less, so these are real consequences.
Comparing Vote credits to Ethereum Attestation Rewards
Ethereum Stakeholders are familiar with this concept. Ethereum validators earn attestation rewards every epoch. Attacking a block is what Ethereum validators do to participate in the network. They also are timed, but to be eligible for full head-vote rewards, it must be received within the block (slot). Late attestations do not lose all of the rewards, however. Both chains ultimately rely on the principle of rewarding correct and timely participation.
However, the scale is different. While Ethereum validators only cast an attestation once every ~6.4 minutes per 32 eth, Solana validators cast a vote in every block (approximately 400ms). This means Solana rewards ~1000 voting events per hour, whereas Ethereum rewards 10. Another result of this is that each vote is also a transaction. Validators must pay Solana transaction fees to vote, costing roughly 1-1.5 SOL per day in just the costs to vote. This sets a real floor for the operation cost of running a validator. There is very little to keep people away from this, and it will likely contribute to the natural consolidation of stake in this market. Ethereum avoids this because each attestation costs almost nothing to send.
Why do vote credits matter to the user?
This is one of the most useful pieces of public data for choosing a validator to stake your stake on. Consider you're moving $5,000 into SOL. Two validators both list their commission as 5%. On Solana Compass, one validator has earned 99.5% of the possible vote credits in the recent epochs, but another is only hitting around 91% with large drops. This is real. The second operator is running inferior hardware, or poor networking, or making poor updates, and every delegator on that validator is suffering every epoch. Vote credits give a quantifiable number to describe validator quality.
Even staking protocols do this at scale. Marinade and Jito's stake pools weight the vote of their stake pools based on vote performance. They will only put up your stake pool with a better performing operator and will automatically shift stake away from an underperformer, so JitoSOL holders and mSOL holders won't even need to think about it.
Vote credits are not without flaws. They only measure the quality of the votes cast. They don't tell you if an operator is changing their commission, sharing MEV, or are otherwise contributing to the decentralization of the network- a good operator with high votes but low performance will still contribute to centralization. It's important to consider other metrics when staking your SOL.
Will vote credits impact my original stake I delegated with a validator?
No! The vote credits only influence the yield on your stake, so if you delegate with a low performing validator, you are still getting your initial SOL back and can redelegate it for another epoch.