🔎 How it works?

⭐ Validator APY

The APY calculations consist of two core steps:

1. Gathering of the Metagraph data

At the top of every hour, the Metagraph is queried to obtain validator data such as:

  • - current total stake
  • - total hourly yield

The most important data here is the total hourly yield, the sum of hourly yields calculated per subnet basis. The total hourly yield assumes a new block is mined every 12 seconds and is calculated as follows:

blocks per hour=300=60s60s/12sblocks\ per\ hour = 300 = 60s * 60s / 12s
hourly yield=validator subnet emissionblocks per hour/tempohourly\ yield = validator\ subnet\ emission * blocks\ per\ hour / tempo
total hourly yield=THY=1subnetsi=1subnetshourly yielditotal\ hourly\ yield = THY = \frac{1}{subnets} \sum_{i=1}^{subnets} {hourly\ yield}_i

To learn more about tempotempo clickhere


2. APY calculation

The APY for the selected time period (1h, 24h, 7d, 30d) is calculated by averaging APYs for hourly intervals that comprise the period, i.e.:

  • - 1 hour=11\ hour = 1 hourly interval
  • - 24 hours=2424\ hours = 24 hourly intervals
  • - 7 days24 hours=1687\ days * 24\ hours = 168 hourly intervals
  • - 30 days24 hours=72030\ days * 24\ hours = 720 hourly intervals

The exact formula for APY calculation is as follows:

annual compounding periods=ACP=8760=365 days24 hoursannual\ compounding\ periods = ACP = 8760 = 365\ days * 24\ hours
Validator APYper interval=[(1+THY/total stake)ACP]1Validator\ APY_{per\ interval} = \Bigl[(1 + THY / total\ stake)^{ACP}\Bigr] - 1
Staking APYper interval=Validator APYper interval18% taxStaking\ APY_{per\ interval} = Validator\ APY_{per\ interval} - 18\%\ tax
Staking APY=1intervalsi=1intervalsStaking APYiStaking\ APY = \frac{1}{intervals} \sum_{i=1}^{intervals} {Staking\ APY}_i

Note that the APY is calculated as compounded annual yield, assuming that hourly yield is being compounded every hour.

⭐ Wallet staking yield

The wallet yield feature showcases how much Tao a given wallet would earn in a selected period if the validator APY stayed the same throughout the period.

This is calculated by the following formula:

yield=wallet stake[[(Staking APY+1)selected period length in hours/(36524)]1]yield = wallet\ stake * \Biggl[\Bigl[(Staking\ APY + 1) ^ {selected\ period\ length\ in\ hours / (365 * 24)}\Bigr] - 1\Biggr]