τTaosis

Learn·Markets

APR (simple) vs APY (compounded) on Bittensor

Two ways to annualize the same staking return: APR multiplies one period's return by the periods in a year, APY compounds it. Taosis shows both, labelled, from one rule.

Published 2026-09-25

One rate, annualized two ways

A validator's yield starts as one period's return, r. On a subnet the period is an epoch: r = D ÷ (A − D), the α dividends the chain paid the validator's nominators (D, AlphaDividendsPerSubnet, net of take) against the α they held when it paid (A − D, from TotalHotkeyAlphaLastEpoch). A year holds E epochs: E = 7,200 blocks a day × 365 ÷ tempo, which is 7,300 at the usual tempo of 360 blocks.

APR (simple) = r × E. It multiplies the period's return by the number of periods and stops there: no return is earned on earlier returns.

APY (compounded) = (1 + r)^E − 1. It assumes each period's return is added to the stake and earns in the next period, for a whole year, at the same rate.

Why compounding is real on a subnet

On a subnet the chain adds the dividends to the nominators' stake at every epoch. Nobody has to claim or restake anything: the next epoch's dividend is paid on the larger stake. A nominator who never withdraws therefore earns the compounded rate — if the rate holds.

That is why Taosis shows APY (compounded) beside APR (simple) rather than instead of it. The APR is what one epoch measured, stated per year; the APY is what that measurement becomes if it repeats. Neither is more true than the other; they answer different questions.

How far apart they are

The APY is always at least the APR, and the gap widens as the rate rises. At tempo 360, 5% APR is 5.13% APY; 34.5% APR is 41.2% APY; 100% APR is about 171.8% APY, because (1 + 1/7,300)^7,300 is almost e.

A verified 0% APR is a 0% APY. An unknown APR is an unknown APY: Taosis shows — for both, never a 0 standing in.

Root is compounded daily, not per epoch

Root (SN0) pays differently. A validator's root dividends, net of its take, go into its basket fund, and reach root stakers when they claim. The chain keeps one return series per fund, BasketTwr: it starts at 1 and grows by every dividend at its value when paid.

Taosis reads BasketTwr every hour and compares the latest reading with the one nearest 24 hours earlier. With g = BasketTwr(end) ÷ BasketTwr(start) − 1 over a window of about 7,200 blocks, Root APR (simple) = g × 7,200·365 ÷ the window's exact length in blocks, and Root APY (compounded) = (1 + g)^(7,200·365 ÷ length) − 1: the daily return compounded once a day, as if you claimed and restaked every day. 5.12% root APR is 5.25% root APY.

Root yields are in τ: root stake is one-to-one with τ. Subnet yields are in α: your return in τ also depends on the α price, which can fall faster than the stake grows, or rise on top of it.

What neither number is

Both hold today's measured rate constant for a year. Dividends change with every epoch — with the subnet's emission, the stake around the validator, its take and the α price — so neither is a forecast, a promise or a track record. Taosis's validators directory uses a 24-hour median to keep one lucky epoch from setting the headline; the screener and subnet pages show the latest epoch.

When two sites disagree, check which figure and which window each one shows. A compounded yield over seven days is not comparable with a simple yield over one epoch.

How Taosis shows them

Everywhere a yield appears, the two figures sit side by side, labelled exactly APR (simple) and APY (compounded). The APY is always computed from the APR with one shared rule — the same in the API and on the site — and never measured separately, so the two can never disagree about the rate underneath.

The staking simulator projects a stake at both: α₀ × (1 + APR × t) at the simple rate and α₀ × (1 + APY)^t at the compounded one, with the α price held at today's value.