Analysis of Luna Staking Rewards

A solid grasp of staking rewards is essential for participation in the Terra ecosystem. In this paper we discuss the key factors that affect rewards, and analyze sensitivity to each factor. We also look at Luna rewards in terms of value capture on the Terra network, and argue that inflation-based “yield” offered by most PoS assets is not a measure of reward, but rather of punishment for not staking. We think that Luna’s reward system is significantly more sustainable. We look forward to a fruitful discussion!

staking-rewards-analysis.pdf (333.9 KB)


If I got it right the overall formula for annual rewards look like:
Reward per Luna, $ = Tx Volume * Tx fee / (Staked Luna * (1+Inflation))

Staking return = Reward per Luna, $ / Luna Price * 100%

How can we query Tx Volume, Tx fee, Current Inflation? Should we use for calculation basic parameter of expected Tx Volume = 5 Bln/year?

Your understanding is correct. You can use the table on page 3 for a likely range of values for each factor. Bold values are the default assumption.

Thank you for your answer! It is clearer now.

  1. Tx fee percentage and inflation rate parameters changing on a protocol level depending on a reward per Luna (to make it stable and project stable growth rate)?
  2. If actual values will be extremely different from expected ones, how can I calculate actual staking return? What data should I use and where to get it?
  3. Is the best way to calculate these parameters on an annual basis, and at the end of the year compare with expected values?
  1. Yes. Basic principle is that if revenues from fees in the short term window falls in comparison to the longer term moving average, fees are hiked. In the opposite case, visa versa. Seigniorage rewards examines rewards in totality (fees + seigniorage) works in a similar fashion, except by targeting a certain percentage growth rate in rewards.

Suggest you read this: for more detailed info on how exactly the treasury module functions.

  1. @nplatias can we opensource the code used for this?

  2. Likely you may want to use monthly returns to extrapolate run rates. Lots of validators will be setting up staking reward % (extrapolating returns per annum from monthly run rate), so you may want to take a look at some of their toolsets.

1 Like

Thank you @dokwon!

  1. Is there a certain targeted Annual Staking Reward Rate percentage or Reward value per Luna in USD terms, which protocol tries to achieve? May I consider 0,17$ per Luna as a targeted return based on expected parameters?
  2. Opensource would be great!
  3. I’ve got the idea, appreciate it.

Given the value of Luna is volatile, it doesn’t try to target a certain return rate, but it does try to optimize for MRL (marginal return for Luna). Given transactions will grow very quickly for the first year, the protocol attempts to raise MRL by 7% each 4 week period, but this will likely be adjusted as the network matures.

1 Like

The model is here.

In case of tx volume, I thought about some kind of a source where we can observe current state of transaction flow through Terra network, to understand existing state and project transaction gains.

Great suggestion, we actually plan on building a dashboard for macroeconomic variables like transaction volume, rewards etc.

In the research, I found that all rewards denominated in TerraSDR.
Does this mean that transactions in other stable currencies transforms in TerraSDR after initiating withdraw at current protocol exchange rates or how can I spend them or withdraw (or they are available automatically)?
@dokwon, to calculate total rewards and staking return in USD, if I have Luna, SDR, and KRW, I should sum these token’s value in USD and find the relation to my Luna(denominated in USD) I staked for the particular period. Is that correct? After that I can check same periods (like month) and calculate some kind of an average to project my annual returns?

The reward is denominated in the same currency as the transaction, so a KRT transaction will generate a KRT reward. You are correct about USD calculations, you would need to convert projections for volume and Luna price to USD first.

Discrepancy between rewards as listed in Terra Station and what can be withdrawn

Hello, I just had a likely elementary question for someone who is just exploring Terra for the first time, I notice that, for instance, my Terra Station lists rewards as a little over 1.7 currently as described graphically, a small amount, but when I try to “withdraw all rewards”, the amount available is about 0.003. There is also that part of Terra Station on the right hand of the screen on the “Staking” screen where I can hover my mouse over the number 1.7 and it will break it down into the various denominations that are actually available, including stating explicitly a little over 0.003 Luna. I am assuming both of these values, namely the one in the middle of the circle that can switched to “staking” and the number on the right, are denominated in Luna. I notice that the amount available for withdrawal (0.003) is trending upwards but so is the total “rewards” value (the 1.7).

Does this represent a kind of “purposeful delay” introduced by the “validating” process or some other aspect of the rewards calculation? I can see the advantages of interventions intended to prevent “overspeculation” so I respect any existing paradigms although I just wanted to make sure that the Terra Station listed rewards will eventually be available eventually, or is there other factor affecting staking rewards that is slowing it down, such as fees collected or other aspect of the “tokenomics”. I also was wondering if I “undelegate now”, will I ever see the “rest of the rewards”? Of course, I am interested in exploring further and will likely continue to stay involved although I just wanted to understand different aspects of how to approach it thoughtfully!

Thanks for any information!

@zat sorry for the delay here – please relay this question to our discord. Agora is intended for research discussions. Cheers