by Tristan, on June 21, 2021

Foreword

The goal of this post is to inform clients of Stake.Green staking service or of any other staking service on how staking rewards are calculated and distributed on the Cardano (ADA) blockchain.

First of all, it is worth mentioning that reward computation and distribution is fully automatised by the Cardano blockchain. It means that by delegating your ADA to a pool you are 100% assured to receive you share of the mining rewards that the pool is entitled to.

However, maximising the amount of rewards that the pool is entitled to is subject to state-of-the-art pool management and monitoring. At Stake.Green we make our mission to provide this high standard of mining pool management in order to deliver the best possible APY to our clients.

In the rest of this article you will find complete and transparent information on Cardano rewards and on how the quality of pool management affects those rewards (follow the ⚠️).

Total amount of reward

At the end of each epoch (currently 5 days) Cardano allocates a total reward amount RtotR_\text{tot} of ADA that will be split between all mining pools and treasury. The value of this total reward is computed as follows:

Rtot=min(η,1)ρreserve+feesR_\text{tot} = \text{min}(\eta,1) \cdot \rho \cdot \text{reserve} + \text{fees}

Where:

  • reserve\text{reserve}: the amount of ADA that have not been issued yet. The Cardano blockchain sets a maximum attainable supply of 45 billion ADA. Hence, at any time the following equation holds: reserve+total ADA supply=maximum ADA supply\text{reserve}+\text{total ADA supply} = \text{maximum ADA supply}. The current value of the ADA reserve is given on our ADA Live Data page.

  • ρ\rho: a Protocol Parameter indicating how much of the reserve should be allocated to rewards at each epoch. Hence, due to reward distribution, the ADA reserve\text{reserve} diminishes with time and the total ADA supply increases.

  • η\eta: the ratio between the number of blocks that were actually minted in the epoch over the ideal number of blocks that should have been minted during the epoch. The ideal number of blocks that should have been minted during the epoch is given by the following formula: activeSlotsCoeff×epochLength\text{activeSlotsCoeff}\times\text{epochLength} where activeSlotsCoeff\text{activeSlotsCoeff} and epochLength\text{epochLength} are Protocol Parameters. The current ideal number of blocks per epoch is 2160021 600 which represents one block every 20s.

  • fees\text{fees}: the sum of all the transaction fees of the epoch. ADA imposes a minimum transaction fee per transaction of: minFeeA×size(tx)+minFeeB\text{minFeeA}\times\text{size(tx)}+\text{minFeeB} with size(tx)\text{size(tx)} the size of the transaction in bytes where minFeeA\text{minFeeA} and minFeeB\text{minFeeB} are Protocol Parameters.

Treasury tax

The first thing to come off the total reward is the treasury tax. A fraction τ\tau of RtotR_{\text{tot}} is directly distributed to the Treasury whose goal is to:

Provision funds to develop Cardano activities through a voting process.

Hence, you can think of it as a traditional state tax. Fraction τ\tau is a Protocol Parameter.

After the treasury tax, the epoch’s reward amount RR which remains for mining pools is:

R=(min(η,1)ρreserve+fees)(1τ)R = (\text{min}(\eta,1) \cdot \rho \cdot \text{reserve} + \text{fees}) \cdot (1-\tau)

The fraction of RR that each mining pool will receive depends on two factors: the stake pledged my the managing entity of the pool and the total stake delegated stake to the pool (including the pledge).

Stake pledged. The pool’s pledge is an amount of ADA that is owned and pledged by the pool managing entity. Stake Green’s current pledge can be found on our ADA Pool Specification page.

⚠️ If a pool does not provide proof of its declared pledge rewards for the epoch will automatically be set to 00. Hence the pool’s clients wont receive any reward for that epoch.

Stake delegated. The pool’s total amount of delegated ADA (including the pledge). This total is the sum of all the ADA that the pool’s clients delegate to the pool plus the pool’s pledge. Stake Green’s current delegated stake can be found on our ADA Pool Specification page.

Pool reward in theory

The pool’s theoretical reward for the epoch is given by the following formula which we are going to understand step by step:

f(s,σ):=R1+a0(σ+sa0σsz0σz0z0)f(s,\sigma) := \frac{R}{{1+a_0}} \left ( \sigma' + s' \cdot a_0 \cdot \frac{\sigma' - s' \frac{z_0-\sigma'}{z_0}}{z_0} \right )

With:

  • ss: the relative pledged stake. The value of ss is the stake pledged by the pool relative to the total amount of ADA supply (i.e. the amount of ADA that were supplied to date). In other words: s=Total amount of ADA pledged by the poolTotal ADA supplys = \frac{\text{Total amount of ADA pledged by the pool}}{\text{Total ADA supply}} and we have 0s10 \leq s \leq 1.

  • σ\sigma: the relative delegated stake (including the pledge). The value of σ\sigma is the stake delegated to the pool relative to the total amount of ADA supply. In other words: σ=Total amount of ADA delegated to the poolTotal ADA supply\sigma = \frac{\text{Total amount of ADA delegated to the pool}}{\text{Total ADA supply}} and we have 0σ10 \leq \sigma \leq 1.

Current values of ss and σ\sigma for Stake.Green are given on our ADA Pool Specification page.

  • RR: the after tax total amount of rewards available for mining pools (see above), which is: R=(min(η,1)ρreserve+fees)(1τ)R = (\text{min}(\eta,1) \cdot \rho \cdot \text{reserve} + \text{fees}) * (1-\tau)

  • z0z_0: the pool saturation threshold, between 00 and 11. In the interest of decentralization, Cardano does not want a pool to have a delegated stake of more than z0=1/kz_0 = 1/k of the current total amount of ADA supply with kk a Protocol Parameter also referred to as nOpt\text{nOpt}. In practice, the way of enforcing this is to disallow ss and σ\sigma to be bigger than z0z_0 in reward calculation, which motivates the introduction of ss' and σ\sigma' below. That way a mining pool will not get extra rewards once it has reached saturation (i.e. σ=z0\sigma = z_0) and so, it is not in the pool interest to be saturated.

  • s=min(s,z0)s' = \text{min}(s,z_0): ss' caps the value of the relative pledge to the saturation threshold z0z_0.

  • σ=min(σ,z0)\sigma' = \text{min}(\sigma,z_0): σ\sigma' caps the relative pool’s delegated stake to the saturation threshold z0z_0.

  • a0a_0: the pledge influence factor, between 00 and ++\infty. This parameters controls how important is the influence of the pledge on the total reward. As described below if a0=0a_0 = 0 pools with equal stake are not favorised by how big their pledge is while if a0=+a_0 = +\infty only the pool’s pledge has an influence on the reward of the pool (and not the pool’s delegated stake!).

Ignoring pledge influence

Most of the complexity of the above formula for f(s,σ)f(s,\sigma) comes from the fact that the Cardano blockchain wishes to give some importance to the pledge that a mining pool is providing during the mining process. Having a high pledge gives more credit to a mining pool entity who is willing to temporarily freeze that pledge before the epoch to ensure optimal mining.

Let say for now that we ignore the pledge influence factor and set a0=0a_0 = 0. Then the formula of f(s,σ)f(s,\sigma) simply becomes:

f(s,σ):=Rσf(s,\sigma) := R \sigma'

This formula makes perfect sense! The pool will get a proportion of the total available reward RR equal to its relative delegated stake in the blockchain (capped by the saturation threshold).

Pledge influence in a saturated pool

Now, if we wish to add some weight to the pledge we have to consider the full formula of f. However, we can note that the factor σsz0σz0z0\frac{\sigma' - s' \frac{z_0-\sigma'}{z_0}}{z_0} is always between 00 and 11 (this is because 0sσz00 \leq s' \leq \sigma' \leq z_0) and that it is equal to 11 when σ=z0\sigma' = z_0, i.e. when the pool is saturated. Hence, if the pool is saturated, i.e. its relative delegated stake represents more than 1/k1/k of the current total ADA supply, we have:

f(s,σ):=Rσ+sa01+a0f(s,\sigma) := R \frac{ \sigma' + s' \cdot a_0}{{1+a_0}}

In this case, we have that lima0=+f(s,σ)=Rs\text{lim}_{a_0 = +\infty} f(s, \sigma) = Rs'. Meaning that the only thing that matters when a0=+a_0 = +\infty is the pledge and that someone looking for delegating her coins would always go to the non-saturated pool with the highest pledge in order to maximise staking rewards. This would be bad news for miners as organic growth of the delegated stake would be useless: only initial wealth, materialised in the pool’s pledged would matter.

Hence, we understand how the value of 0a00 \leq a_0 \leq \infty allows to compromise between “only delegated stake matters” and “only pledged stake matters” scenarios.

Pledge influence in a non-saturated pool

The last thing that we need to understand in the expression of f(s,σ):=R1+a0(σ+sa0σsz0σz0z0)f(s,\sigma) := \frac{R}{{1+a_0}} \left ( \sigma' + s' \cdot a_0 \cdot \frac{\sigma' - s' \frac{z_0-\sigma'}{z_0}}{z_0} \right ) is this factor:

0σsz0σz0z010 \leq \frac{\sigma' - s' \frac{z_0-\sigma'}{z_0}}{z_0} \leq 1

Let’s rewrite things a bit, we have:

σsz0σz0z0=σs(1σ/z0)z0\frac{\sigma' - s' \frac{z_0-\sigma'}{z_0}}{z_0} = \frac{\sigma' - s' (1-\sigma'/z_0)}{z_0}

Note that 0(1σ/z0)10 \leq (1-\sigma'/z_0) \leq 1 represents how far from saturation the pool is. In the hypothesis of a pool far from saturation, we’ll approximate (1σ/z0)1(1-\sigma'/z_0) \simeq 1.

In that case the factor becomes:

σsz0σz0z0=σsz0\frac{\sigma' - s' \frac{z_0-\sigma'}{z_0}}{z_0} = \frac{\sigma' - s'}{z_0}

And the expression of f(s,σ)f(s,\sigma):

f(s,σ):=R1+a0(σ+sa0σsz0)f(s,\sigma) := \frac{R}{{1+a_0}} \left ( \sigma' + s' \cdot a_0 \cdot \frac{\sigma' - s'}{z_0} \right )

We understand that σsz0\frac{\sigma' - s'}{z_0} plays the role of an incentive to get delegated stake. Indeed, if the pool has no delegated stake we have σ=s\sigma' = s' hence σsz0=0\frac{\sigma' - s'}{z_0} = 0 and no matter how high the pool’s pledge is, the multiplicative effect of a0a_0 is set to 00: f(s,σ):=R1+a0σ=R1+a0sf(s,\sigma) := \frac{R}{{1+a_0}} \sigma' = \frac{R}{{1+a_0}} s'.

Hence this factor makes it more beneficial for a pool with high pledge to actually get delegated stake instead of closing the door and only capitilising on their pledge, as delegated stake will activate the influence of a0a_0 on the reward and make high pledges be more beneficial.

Finally, this influence of delegated stake on the reward diminishes as the pool gets closer to saturation because of the factor (1σ/z0)(1-\sigma'/z_0).

We now hopefully have a more complete understanding of the theoretical reward formula f(s,σ)f(s,\sigma) and it is now time to talk about the actual pool’s reward.

Pool reward in practice

The formula of f(s,σ)f(s,\sigma) gives the theoretical maximum amount of reward that the pool is entitled to for the epoch. However, in practice, this amount is ponderated by the pool performance factor.

Pool performance factor. The probability for a mining pool to be chosen to mint a block is σ~\tilde{\sigma} where σ~\tilde{\sigma} is the delegated staking of the pool relative to the total of staked ADA. Note this subtlety, σ\sigma was defined by σ=Total amount of ADA delegated to the poolTotal ADA supply\sigma = \frac{\text{Total amount of ADA delegated to the pool}}{\text{Total ADA supply}} but σ~=Total amount of ADA delegated to the poolTotal delegated ADA supply\tilde{\sigma} = \frac{\text{Total amount of ADA delegated to the pool}}{\text{Total delegated ADA supply}}. At the date of this article, approximatively 70% of the total ADA supply was delegated.

However, the realised fraction of block minted during the period is β=Number of blocks minted by the poolNumber of blocks minted during the epoch\beta = \frac{\text{Number of blocks minted by the pool}}{\text{Number of blocks minted during the epoch}}.

The pool’s perfomance factor is the ratio β/σ~\beta/\tilde{\sigma} which gives a metric of how ideally the pool performed during the epoch.

Due to the randomness of the pool selection process, the ratio β/σ~\beta/\tilde{\sigma} will fluctuate from epochs to epochs: sometimes it will be greater than 1 as the pool was lucky and minted more blocks than expected, and sometimes it will be lower than 11, the pool was unlucky and minted less blocks than expected. But, in average, the ratio β/σ~\beta/\tilde{\sigma} should be equal to 1 (in practice, extremely close to 1).

⚠️ If a pool does not operate correctly and has downtime during a mining period, the performance indicator β/σ~\beta/\tilde{\sigma} will be biased negatively and will be lower than 1 in average. At Stake.Green we commit to the best standards of pool management and to having an average performance indicator the closest to 1. You can check our current average performance indicator on our ADA Pool Specification page.

The influence of non-delegated stake

As mentionned above, roughly 30% of the total ADA supply is not currently being delegated. This imply that: mining poolsf(s,σ)<R\sum_{\text{mining pools}} f(s,\sigma) < R, meaning that not all the available reward is distributed at each epoch. The remaning rewards go back to the reserve. Hence, it is in the best collective interest to delegate one’s ADA as it increases the amount of reward received by all. If you have not delegated your ADA yet, we would be happy to welcome you on Stake.Green ADA delegation service!

Customer reward

We can finally characterise the actual reward that the pool’s customers will receive for the epoch!

As we established, the total reward for the pool is Rpool=β/σ~f(s,σ)R_\text{pool} = \beta/\tilde{\sigma} \cdot f(s,\sigma). Before RpoolR_\text{pool} being redistributed to customers, the following are substracted from it:

  1. The declared operating costs of the pool, find ours here
  2. The declared margin of the pool, find our margin here

Finally, the remaining amount of reward is redistributed to customers proportionally to their stake in the pool.

Stake.Green reward calculator

Use our Reward Calculator to get a prediction of the rewards and APY that you will be getting by delegating to us!

Conclusion

Hopefully, in this article, we will have convinced you that the Cardano blockchain provides a very transparent staking rewards system.

However, although that system attributes rewards automatically, the technical quality of the pool management is key in delivering the highest possible return for the pool’s customers.

This is why, at Stake.Green we focus all our efforts in maintaining a state-of-the-art Cardano mining pool and we would be more than happy to welcome you aboard!