Performance-based Rewards to mStable Vaults and Feeder Pools

Onur Solmaz
mStable
Published in
3 min readApr 15, 2021

Summary

Following the implementation of MCCP-4, rewards are going to be distributed dynamically to imAsset vaults and feeder pools, based on their performance in the previous week. With this blog post, we aim to explain the proposal in simpler language and diagrams.

MTA rewards calculation today and going forward

In mStable, the top level emission amount is predetermined for every week. This can be seen in MCCP-4 for the next 16 weeks. A fixed portion of the top level emission is reserved for external pools — 40,000 MTA for MTA stakers and 5,000 MTA for the WETH/MTA pool (currently being ramped down from 28,750 MTA over the next 8 weeks). The remaining portion is then allocated to native imAsset vaults (imUSD & imBTC) and feeder pools (GUSD/mUSD, bUSD/mUSD, hBTC/mBTC & tBTC/mBTC). Let us denote this remaining portion by X.

20% of X is reserved for all imAsset vaults, and 80% of X is reserved for feeder pools. However, these aren’t simply distributed equally or pro rata.

  • 10% of X is distributed equally to imAsset vaults.
  • The other 10% is distributed imAsset vaults proportional to their bonus factors (which is derived from the total mAsset volume and liquidity in the previous week — we’ll come back to this in a minute)
  • 16% of X is distributed equally to all feeder pools.
  • The remaining 64% is distributed to feeder pools proportional to their bonus factors.

We can visualise this in the diagram below:

Breakdown of the emission to imAsset vaults and feeder pools

This means that all imAsset vaults and feeder pools receive a baseline amount of rewards, regardless of their performance.

Bonus factor

The bonus factor captures the performance of the pool in the previous week. It is defined as:

bonus_factor = (weekly volume) / (average weekly liquidity)^(1/4)

Here, we came up with a quantity that is similar to volume per liquidity, also known as liquidity utilisation ratio. However, LUR doesn’t take the size of the pool into account. For that reason, we introduced a nonlinear term in the denominator. This way, we prevent small pools from dwarfing large pools in terms of rewards in case they become very volatile (which they can).

Bonus factors are computed for each mAsset and feeder pool. mAssets share the bonus amount (10%) among themselves and feeder pools (64%) vice versa, proportional to their bonus factors.

Finally, note that the percentages given above are valid for MCCP-4, and may be subject to changes in the future if mStable Governance votes in favour of a change.

Transparent MTA reward emissions

The calculation of emission amounts is transparent, and can be viewed on our GitHub repo. The scripts run automatically every week and produce the reward amounts. For more details, you can check out MCCP-4.

Conclusion

With this new dynamic reward distribution model, we aim to accelerate the growth of high-performing pools through automatic incentives, and remove ourselves from the decision-making process.

Join the mStable community

App | Discord | Twitter | Website | Docs | Telegram | Governance | Meta token

--

--