StakeView.app is a service that ranks Solana validators by returns. It gives up-to-date information on current and historical financial performance of Solana validators. This information can be used in determining which Solana validator or validators to delegate stake to.
selects Validator View, which is a performance ranked list of all Solana validators.
selects Stake View, which is currently not implemented, but when implemented will allow a stake delegator to track their staking results.
shows the current epoch details in the validator list. The current epoch is in progress and until it is complete, the list is a prediction of the epoch results based on the current standings within the epoch.
shows the rankings from the most recently completed epoch (about 3 days).
shows the rankings from the three most recently completed epochs, as an average APY value for those epochs (about 8 days).
shows the rankings from the ten most recently completed epochs, as an average APY value for those epochs (about 25 days).
shows the rankings from the thirty most recently completed epochs, as an average APY value for those epochs (about 75 days).
The validators are then listed in order of achieved APY. Each row lists the validator ranking number, achieved APY, validator icon, and validator name. The text "copy vote account" may be clicked to copy the vote account id to the clipboard, which can then be pasted in any wallet's staking menu to stake to that validator. If the validator has a website, the text "website" will appear in the row and can be clicked on to visit the validator's website.
Hovering over or clicking on a validator row will display additional details for that validator.
The answer is a bit more complicated for the current epoch in progress. This is because the actual achieved APY will only be known after the epoch completes and all factors that go into computing APY, which require the full epoch's data to be accurate, are known. In the meantime, StakeView.app estimates the performance of validators by:
vote credits * (1 - commission)
is highest, and assumes that that validator will earn that same highest APY this epoch
vote credits * (1 - commission)
as a fraction of that of the best performing validator
This is not a perfect metric, but it has been found to be very close to the actual results achieved after the epoch completes, and what's more, the relative rankings of validators are 100% accurate given this technique, even if the absolute value of the APY achieved ends up being different. So in other words, you can trust the ranking order as being accurate, even if the actual APY values might be slightly different by the time the epoch ends.
Note that "APY" is different from "APR". "APR" is almost the same thing as APY, but does not include compounding. For this reason, it is generally a less useful term, but it is still used in some contexts (for example, the solana command line reports rewards as APR, as does solanabeach.io). APR is usually a fraction smaller than APY - an epoch with returns corresponding to 8.65% APY might represent 8.40% APR.
StakeView.app data is still useful though, because it allows relative comparisons between validators over varying time ranges. It is useful to know that a new validator, for example, performs relatively well compared to more established validator; or that a certain validator is often in the top rankings over every time range.
$ solana stakes
$ solana stake-account --with-rewards --num-rewards-epochs=10 <STAKE_ACCOUNT_PUBKEY>
solana stakesand find a stake account that has been staked to Shinobi Systems for many epochs. The stake account address is GBXaJi2oPuacrPa7CFRQUDEaLJw9a9LakEAbx6Ns5uC6.
solana stake-account --with-rewards --num-rewards-epochs=10 GBXaJi2oPuacrPa7CFRQUDEaLJw9a9LakEAbx6Ns5uC6
Balance: 235.626764421 SOL
Rent Exempt Reserve: 0.00228288 SOL
Delegated Stake: 235.624481541 SOL
Active Stake: 235.624481541 SOL
Delegated Vote Account Address: BLADE1qNA1uNjRgER6DtUFf7FU3c1TWLLdpPeEcKatZ2
Stake Authority: CMSY2WjRTKB2QhYFfq75U17bSSbMdtiWTW5EEP8cp7DE
Withdraw Authority: 3vgL1KJ3axRxWBMVxeJEChYEraMTZ52ivjr9b9ScX4qE
Lockup Timestamp: 2022-01-14T00:00:00Z
Lockup Custodian: Mc5XB47H3DKJHym5RLa9mPzWv5snERsF3KNv5AauXK8
Epoch Rewards:
Epoch Reward Slot Amount New Balance Percent Change APR
193 83808004 ◎0.151845524 ◎235.626764421 0.06% 7.74%
192 83376000 ◎0.151951865 ◎235.474918897 0.06% 7.77%
191 82944009 ◎0.151487392 ◎235.322967032 0.06% 7.75%
190 82512000 ◎0.151619529 ◎235.171479640 0.06% 7.83%
189 82080000 ◎0.151111958 ◎235.019860111 0.06% 7.85%
188 81648000 ◎0.153360975 ◎234.868748153 0.07% 7.87%
187 81216004 ◎0.150639269 ◎234.715387178 0.06% 7.83%
186 80784000 ◎0.151969355 ◎234.564747909 0.06% 7.65%
185 80352000 ◎0.162676492 ◎234.412778554 0.07% 8.25%
184 79920000 ◎0.151901189 ◎234.250102062 0.06% 7.47%
I can see that for epoch 193, the APR was 7.74%. StakeView.app lists the APY for epoch 193 as 8.06%. The difference is because one value is APR (no compounding) and the other is APY (with compounding).StakeView.app lists the duration of epoch 193 as 3 days 0 hours 56 minutes 33 seconds. I can verify this myself but it is more complicated because I need a way to look up the epoch duration, which can be done by knowing the number of the first and last slot of the epoch and running
solana block-timefor these slots and computing the duration. But assuming that StakeView.app is accurate (and it is!), epoch 193 was 262,593 seconds long. There are 31,557,600 seconds in a 365.25 day year (which is the average duration of a year, including leap days); therefore there are (31557600 / 262593) = 120.177 epochs in a year assuming all epochs are as long as epoch 193.
The actual rewards factor achieved in epoch 193 (with more precision than the solana command line provides) is (0.151845524 / 235.474918897) = 0.0006448479. So to calculate the APY for that:
((1 + 0.0006448479) ^ 120.177) - 1