Solana Staking Rewards & Validator Economics — how does it work?
Disclaimer: We run a Solana validator ourselves. If you find this article helpful and would like to support us by staking our validator you can find the details at the bottom of this page.
Jump to section:
- Who participates in Proof of Stake?
- What kind of rewards & income exist?
- Where do staking rewards comes from?
- How are staking rewards calculated?
- Where does commission come from?
- Where do block rewards come from?
- Conclusion
Solana has been a hot topic for the past year, posting incredible gains, releasing new web3 apps and pushing the envelope of what’s possible in the blockchain space, as well as occasional hiccups and performance impairments.
Looking beyond the glitz & glamour of Defi, NFTs and fast transaction speeds however, is the seemingly more mundane world of Proof of Stake.
Ever since Ethereum began its long walk to freedom with it’s transition to Proof of Stake this blockchain mechanism has become more and more popular and essentially the de facto gold standard for all the top blockchain projects.
The concept is simple, users “lock in” their native tokens as a way to secure the blockchain, by putting their assets and returns at risk, aligning incentives for good behaviour.
Solana combines Proof of Stake with Proof of History, which is unique, however for this article we’ll be looking at the economics of validators and staking for which Proof of History isn’t that important.
Who participates in Proof of Stake?
Primarily we have two participants in Solana’s native proof of stake system:
- Delegators (i.e. the regular users who stake their SOL)
- Validators (node operators that run voting nodes and have stake delegated to them)
What kind of rewards & income exist?
For delegators:
- staking rewards
For validators:
- commission
- block rewards
So now we see there are basically three types of “income” being generated on the blockchain, although two of those are very closely linked. Let’s have a look at where these actually come from.
Where do staking rewards comes from?
Solana operates in epochs. An epoch is a period of time defined as 432,000 slots. A slot is an opportunity for a validator to produce a block (not every slot contains a block as sometimes validators miss their slot for various reasons).
In human terms an epoch is 2.5–3 days.
Solana uses inflation to pay staking rewards, this means new SOL is created every epoch. Inflation was first activated on mainnet-beta at the start of 2021 at a rate of 8%, decreasing at a rate of 15% per year (that’s 15% of 8%) until it will eventually settle at a terminal rate of 1.5%.
It’s important to note that in theory a slot should take 400ms, which means there should be 180 epochs per year. Inflation is calculated on this basis, i.e. 8% per 180 epochs, not per 1 calendar year. In reality we currently see slot times of 600ms and about 130 epochs per year, this leads to slightly lower returns.
The current inflation rate as of writing this article (14 March 2022) is 7.06%. It changes every epoch and you can verify it using Solana’s JSON RPC API or the command line tool by typing solana inflation
This means if we have a total active stake on Solana of 385m SOL (currently accurate) we’d expect to see these figures for the current epoch:
385,651,552 SOL * 0.0706/180
= 385,651,552 SOL * 0.000392%
= 151,261 SOL
We’d see 151,261 new SOL being created from inflation. These would then be added to all the active stakes in all the stake accounts (minus commission, see commission section).
Of course you might now worry that inflation will erode the value of SOL, however note that 50% of all transaction fees on Solana are burned (destroyed), so there is a constant stream of SOL being burned and removed from circulation. Right now inflation exceeds the deflation from burning, in the long term as inflation reduces and transaction volume increases we expect to see a convergence and eventual inversion where Solana becomes deflationary.
How are staking rewards calculated?
Well, now we know the total SOL from inflation that’s available, but how is this actually distributed and why do some validators have higher APY than others?
This comes down to voting. A validator performs the work of validating transactions and producing blocks. I.e. for each of the 432,000 slots in an epoch there is one validator assigned to produce a block, and every other validator (1,500+ total) will validate that block (including re-processing every single transaction in that block). Validators vote on blocks they consider to be valid.
Whenever a validator submits a vote (which is a transaction itself and for which the validator pays a transaction fee) which is correct and successful they earn a credit.
Over the course of an epoch validators accrue these credits which they can then “cash in” for a share of inflation at the end of the epoch.
The best performing validators are able to vote successfully on ~90% of slots (source: Stakewiz). Keep in mind that about 6% of slots don’t have blocks, so those can’t be voted on. The average validator votes successfully on about 80% of slots. This means in an epoch of 432,000 slots the average validator earns 345,600 credits.
In the chart above we can see that the vast majority of validators (1317 out of 1598) have a vote success rate of ~84%, in fact this skews the chart so much we can barely see other columns.
So then, how is the conversion from credits to rewards handled? It’s a simple stake weighted calculation. Total credits of all validators will earn the total pot of inflation. So a validators percentage of total credits (sum of credits of all validators) will earn a proportionate amount. This is however further weighted by stake.
Thus a validator with 1% of total stake should earn more or less 1% of the total inflation, if they have an average amount of credits. If they have above or below average number of credits the rewards would fluctuate above or below that 1% figure.
This is how validators achieve different APYs, by voting better or worse, as well as through their commission (more commission = less APY). Delinquency (being offline or out of sync with the blochchain) has a big impact on APY.
We built a tool where delegators can receive an alert should their chosen validators be delinquent for more than a specified amount of time: stakewiz.com
Where does commission come from?
Ok, so you got your staking rewards, but you’ve had a commission deducted. Or you operate a validator and want to know where that commission you earn comes from… let’s look into that.
Validators can set a commission between 0–100%. It must always be a whole number, i.e. can’t be 3.5% and can’t be outside that range. It can be changed at any point in time and is immediately effective for the entire current epoch. If a validator changes their commission during an epoch from 0% to 5% then to 3% and the epoch then ends, the 3% rate will be applied to the rewards for that epoch. There is no pro-rata calculation and the inflation is not locked at the start of the epoch.
This can create an issue where unscrupulous validators can perform “commission rug pulls”, changing their commission just before the epoch ends to a higher value, then changing it back at the start of the next epoch, hoping that delegators wouldn’t notice.
We built a tool where delegators can receive an alert should their chosen validators change commission: stakewiz.com
When the staking rewards are calculated, the commission is deducted and paid into the validator’s vote account. So if a stake account earns 100 SOL in rewards and the validator has a 5% commission, the validator vote account would receive 5 SOL and the stake account’s active stake would increase by 95 SOL.
Where do block rewards come from?
And now, finally, to block rewards. These aren’t relevant to delegators, as they don’t receive them. Block rewards go exclusively to the validator who produced the block.
You may be familiar with Bitcoin’s block rewards system, where a block has a static amount of Bitcoin that is paid out as a mining reward, in addition to the fees of the included transactions.
On Solana there is no “mining reward” or other type of block reward that is paid from newly created SOL. Block rewards consist instead of only fees from transactions that are included in the block.
However, it is important to note that only 50% of the fees go to the validator as a block reward, the other 50% (of every transaction fee of every Solana transaction) is burned (destroyed), as we mentioned previously in the section on inflation.
Currently the fee system is very simple, users pay 5,000 lamports (0.000005 SOL) per signature on their transaction. In future the fees will be “smarter” to factor in the compute expense the transaction is expected to consume.
Block rewards are relatively small compared to staking rewards and commission, and validators can only break even from block rewards alone if they have about 500,000 SOL staked. If a block contains 1,000 transactions with an average of 1.5 signatures each that would be
1,000 x 1.5 x 5,000 lamports = 7,500,000 lamports = 0.0075 SOL
in transaction fees. Remember, half are burned (0.00375 SOL) and the other half are the block reward for the validator.
Block rewards are immediately added to the validator’s identity account when the block is produced, they are not paid once per epoch like staking rewards.
Conclusion
Solana’s economics can be a bit complicated, and understanding where all the fees and rewards come from or flow to might cause your head to spin. It’s an elegant system once broken down, and we hope this article has helped outline how things work and helped you understand things a little clearer.
Rewards directly correlate to performance, so it is important to select validators that have solid operations, are available and use the best hardware. We have multiple 24/7 monitoring solutions on our validator and have partnered with Maxihost to ensure we have the best hardware and network with hot failovers in multiple data centres.
Please support our validator if you’re looking to stake somewhere
If you liked this article and would like to support our validator please consider staking with us, we’re committed to the Solana ecosystem and are trying to bring value to others through our website Stakewiz, these articles on Medium as well as active participation on Discord, Twitter and Reddit. We’re in a low-concentration data centre, have 2% commission and are one of the highest performing validators in terms of APY.
Our vote key is GE6atKoWiQ2pt3zL7N13pjNHjdLVys8LinG8qeJLcAiL or you can search for “Laine” in the validator list in your wallet, or see more info on https://laine.co.za/solana