How APR, rewards, validator states and the shards are connected

Sometimes there is some confusion around the rewards, when and for what they are paid and how this all results in the APR. We want to give you some guidance and information around so that you are well informed and can make educated decisions as a delegator:

APR is an annualized representation

Let us start with the data point which is shown everywhere but needs some explanation: APR. APR is the annualized percentage rate and is an ANNUALIZED representation of your estimated rewards in relation to your stake. The most important thing here is that it is not something that will be the same for every single day or week or even month. Due to the mechanisms of the network, we will only reach this rate over a longer term (in our case we expect to see that within one year but most probably earlier – so X% APR does not mean you get X% every single day, but X% per year which includes the longer term). So, looking at every single day or even week doesn’t help if you want to check the APR as it is comparing apples with oranges.

Rewards for validating transactions

Now to the even more important term: Rewards. The network pays rewards for the work the validators are doing and you as a delegator can put some amount of stake with us to get a share of these rewards. We see the relation between staking providers and delegators as a partnership. We need you and you need us to be able to help, invest and thus grow the Elrond network which we all believe will be a great success in the future! Every single validator currently needs a minimum stake of 2500 EGLD to be able to be part of the secure proof of stake method. While we as a staking provider also have our own stake on our validators you as a delegator can “invest” stake onto our validator nodes so that we are able to get more validators running and thus we together get a bigger amount of the overall “reward cake” the network is distributing.

Rewards distribution

To understand when and how rewards are distributed it is important to know that there is a fixed amount of EGLD that is distributed on every epoch change. Epoch change is every day around 14:30 UTC and the daily rewards are distributed by the network shortly after that time automatically every single day. To be able to get rewards a validator needs to be “eligible” in the epoch which the network is doing the accounting for. So, the pure existence of a validator does not mean there are rewards!

The Staking Providers Fee

The next important part is obviously our validators. The validators are servers that process transactions and are called nodes in the Elrond language. They secure the network by participating in the consensus mechanism, while earning rewards from the protocol and transaction fees. Our staking provider fee (which is 10% of rewards earned at ProCrypto) is there to ensure we can build and run the necessary infrastructure to maintain the stability, security and growth of the network. So please be careful in the selection of your staking provider as a very low fee might seem like a good deal for you as a delegator but on the other hand your EGLD is always part of an infrastructure that needs to be maintained and, in the end, also paid – so in the long-term a very low fee might result in no rewards at all or the fee might get increased in the future.

Rewards distribution within a Staking Provider

All staking pools run on a smart contract setup by the Elrond team, so the Staking Provider can only change some parameters but the main functions are the same for all staking providers. For a staking pool the overall rewards that the pool earns with its eligible validators in an epoch are then distributed to all delegators for that contract in rate with their stake of that pool.

Validator states and the influence on rewards

Finally, it’s important to understand the different “states” a validator can be in: queued, waiting, eligible and “active”. Queued means that a validator is in a FIFO (first-in first-out) queue ready to take a seat in the “active” validators pool (currently 3200) as soon as an “active” validator drops out. An “active” validator is a validator that is either waiting or eligible. All the time half of the 3200 “active” validators are eligible and the other half is waiting. A validator will be selected to be part of the consensus aka eligible in a specific algorithm – the important part regarding rewards here is: Only eligible validators will earn rewards in the epoch when they are eligible!

Daily fluctuation in rewards due to validator states

The algorithm on how the eligible validators are selected is based on a lot of considerations around security and stability of the network itself. That is why there needs to be some randomness in it which causes the daily rewards fluctuation from one day to another (which will even out over a longer time period due to statistical probability). Over a longer period of time the randomness levels out so that every active validator is 50% of the time eligible and waiting in the other 50% – in the calculated APR this fact is already included!

Days were a validator doesn’t receive rewards

An eligible validator is doing the actual work in one of the multiple shards (one shard is a part of the overall network and all shards together form the network) as part of the consensus. Right now, 400 validators per shard are eligible and 400 are in the shard waiting FIFO queue (not to be confused with the validator queue above!) – on every epoch change 80 eligible nodes will be randomly selected from each shard to go to the waiting queue of a random selected shard and the first 80 nodes of each shards queue will become eligible in the respective shard. That results in the situation that a node is sent to waiting for 5 epochs (400 / 80 = 5 epochs) but can be eligible for an unspecified number of epochs (as the selection of validators going from eligible to waiting is random). While a node is waiting, it doesn’t receive rewards, this effect will average out over time for each node. The more active nodes a staking pool has the shorter the time period is to average out this effect.

Influence of total network stake on rewards and APR

You might already know that the overall APR is influenced by total stake in the network. The more stake is in the network the lower the APR will get, since the amount of EGLD distributed  as rewards is fixed. The larger part of that fixed EGLD amount goes to the so called base stake, that is currently 2500 egld per node, the smaller part will be distributed towards topup stake. In consequence the APR for base stake is higher than for topup stake, but both go down with more topup stake in the network.

Influence of the different shards on daily rewards

The next difference influencing your daily rewards is the difference in the shards. Each shard gets a share of the distributed rewards, based on the work the shard has done. And since the amount of topup vs. base stake can be different in each shard the APR in each shard can be different to another shards APR on a daily basis. Over time this effect should average out over a longer time period as nodes are switching between the different shards.

Conclusion

Calculated APR and rewards received on a daily basis will never exactly match up. A simple calculation like: (rewards received today * 365) / your staked egld = your APR for that day; can give you a direction of where your APR is today, but it probably will not match the displayed APR most of the days, since the displayed APR is taking into account many more of the above factors that influence your daily rewards. Over a longer time period (like a year) your received rewards will converge to the calculated APR.

Latest blog articles