For the complete documentation index, see llms.txt. This page is also available as Markdown.

📚Stacks SRB

Learn how Stacks stacking rewards are calculated. STXSRB formula covers the PoX-5 BTC payout to STX stakers per distribution, net of Bitcoin-Bond tranches and the reserve fund, over the value of the S

STXSRB is a benchmark representing the mean, annualized staking rate across all active Stacks stacking methods.

STXSRB is calculated and published by Staking Rewards via the Stacks Profile and Data API.

TL;DR: Stacks stacking rewards are paid in BTC. Under PoX-5 the pox-5 boot contract splits the sBTC it receives each distribution: Bitcoin-Bond tranches are paid first, 15% of the remainder goes to a reserve fund, and the rest goes to STX stakers. STXSRB is that staker payout, annualized and divided by the value of the STX staked in the same cycle, both in USD.

STX Staking Rewards Rate: STXSRB

STXSRB=sr108⋅Δh⋅bd⋅ty⋅pBTCcs106⋅pSTXSTXSRB = \frac{\dfrac{sr}{10^8 \cdot \Delta h} \cdot b_d \cdot t_y \cdot p_{BTC}}{\dfrac{cs}{10^6} \cdot p_{STX}}
Formula key
Metric name
Description

sr

Staker Rewards

total-stx-staker-rewards (sats) returned by the latest successful pox-5 calculate-rewards call: the distribution's gross sBTC after Bitcoin-Bond tranches and the 15% reserve deposit.

Δh

Distribution Span

The calculation-height of the latest successful distribution minus that of the previous one, in Bitcoin blocks (1,050 per distribution, half a 2,100-block reward cycle).

cs

Cycle Staked

cycle-staked-ustx returned by the same call: the uSTX that distribution pays.

b_d

Bitcoin Blocks per Day

144 (600-second target)

t_y

Year Constant

365 days

p_BTC, p_STX

Prices

Current BTC and STX prices in USD.

  • How pox-5 splits a distribution. Once per distribution the permissionless calculate-rewards call takes the new sBTC received since the previous distribution (gross-accrued-rewards), pays each Bitcoin-Bond tranche its target yield (total-bond-rewards), deposits 15% of the remainder into the reserve fund (reserve-deposit), and credits the rest to STX stakers pro-rata per uSTX (total-stx-staker-rewards). Staking Rewards reads the contract's own result rather than modelling the split, so bond and reserve changes flow through directly.

  • The benchmark is non-compounded and uses the realized payout of the latest distribution. It changes once per distribution (about 7.3 days) and prices are current at each calculation.

  • Numerator and denominator come from the same on-chain result, so the rate is not affected by differences between staked-supply sources.

  • Validity checks. The rate is published only when at least two successful, canonical calculate-rewards results are available and parse completely; the span is at least 1,050 blocks; the latest distribution is no more than 2,100 Bitcoin blocks behind the chain tip; staker rewards and cycle-staked are both > 0; and the result is between 0% and 50%. Otherwise the reward rate is not published for that run. No placeholder value is written.


STX Staking Reward Rate: STXSRB(v)

pox-5 accrues a single rewards-per-uSTX value per cycle, with no per-signer term and no on-chain commission. Every signer and pool is therefore published at the network rate:

STXSRB(v)=STXSRBSTXSRB(v) = STXSRB

Any fee a pool operator charges off-chain is not reflected.


STX Real Reward Rate: STXSRB^R

The real reward rate calculates the STXSRB adjusted for inflation in the network.

STXSRBR=1+STXSRB/(1+ir)−1STXSRB^R=1 + STXSRB/(1+ir) -1
Formula key
Metric name
Description

ir

Inflation Rate

New STX entering the circulation supply.


Other Metrics

Metric
Description

Block Reward

STX coinbase per Bitcoin block (tenure), following the stacks-core mainnet coinbase schedule keyed on Bitcoin burn height: 1,000 STX before 945,000; 500 STX from 945,000 (SIP-029); 1,000 STX from 960,230 (SIP-045, epoch 4.0, open-ended).

Staked Tokens

Total STX stacked in the current PoX cycle across all signers.

Circulating Supply

Liquid STX supply reported by the Stacks node, including SIP-031 treasury mints.


Liquid Staking Tokens: LISA (lqSTX) Reward Rate

lqSTX is a rebasing token. Each holder's balance equals their shares multiplied by the reserve per share, so LISA's staking yield shows up as growth in the share ratio r=reserve/totalSharesr = reserve / totalShares. The LISA reward rate is the realized growth of that ratio, measured on-chain over about two PoX cycles and annualized without compounding.

LISArr=(rnowrpast−1)⋅ty⋅tdtnow−tpastLISA_{rr} = \left(\frac{r_{now}}{r_{past}} - 1\right) \cdot \frac{t_y \cdot t_d}{t_{now} - t_{past}}
Formula key
Metric name
Description

r_now

Share ratio (head)

get-reserve / get-total-shares of the token-lqstx contract at the current chain tip.

r_past

Share ratio (past)

The same two reads evaluated at a Stacks block about 203,000 blocks (about 2 PoX cycles, about 28.5 days) before the head.

t_now - t_past

Elapsed seconds

The difference between the two blocks' timestamps. The measured value is used, not a nominal window.

t_y

Year Constant

365 days

t_d

Day Constant

86400 seconds

  • The rebase is already net of LISA's fees, so no commission is deducted again.

  • Rewards arrive about once per PoX cycle. A window of one cycle or less can miss every credit, so the window spans two cycles.

  • Validity checks. The rate is published only when all of the following hold:

    • every contract read succeeded, and every reserve and share value is > 0;

    • the past block really is the past state: current-pox-reward-cycle evaluated at that block equals the cycle implied by the block's burn height, and is at least 2 cycles behind the head;

    • elapsed time is between 22 and 35 days;

    • rnowr_{now} is between 1.0 and 2.0;

    • window growth is between −0.5% and +2.0%;

    • the annualized result is between 0% and 25%.

  • A window growth in (−0.0001%, 0) is integer rounding in the contract's share math. It is recorded as a measured 0.

  • If any read or check fails, the LISA reward rate is not published for that run. No placeholder value is written, and no rate from another source is substituted. A measured 0% (LISA holding no stacked STX) is published as 0%.


Data Sources:

  • Stacks mainnet pox-5 boot contract (SP000000000000000000002Q6VF78.pox-5) - the calculate-rewards result of each distribution (staker rewards, cycle-staked uSTX, calculation height), read from indexed Stacks transactions

  • Hiro Stacks API - supply data and burn height (/v2/pox), block timestamps, PoX cycle and signer information

  • CoinGecko - price data

  • Stacks node read-only contract calls - LISA token-lqstx reserve and total shares at the head and at a past block, and the pox-4 reward-cycle echo used to confirm the past block


References:


📚 Learn more about Stacks Staking

⚙️ Access historic Stacks Staking Data via API

Last updated