[Discussion] Staking V2 Parameters

Preamble

Staking V2 is coming closer to launch and we would like to take this opportunity to discuss parameters around the new staking mechanism. While the contracts for staking are already being finalised and the new governance UI application makes good progress, we still have a few open questions around the specific parameters. We would like to get the community, Governors and Metanauts involved in this discussion and find a solid consensus around these parameters.

The full proposal will be posted soon and contains a lot more details and explanations. However, the proposal is also quite lengthy, therefore it makes more sense to discuss the particularities in a separate thread.

Staking V2 overview

This is a very basic explanation of Staking V2 in order to give enough background to initiate this discussion around the parameters.

Staking procedure

At the very beginning, the user has the choice to stake MTA or 80/20 MTA/ETH Balancer Pool tokens. Additionally, the choice will be given to delegate the votes to a particular address or to self delegate. The delegation can be changed at any point. The UI will support the user to choose a delegatee. The staked amount is locked into the staking contract and is non-transferable. No lockup duration is chosen.

Withdrawal

Before a staker can withdraw all or a portion of the staked tokens, the user has to initiate a cooldown period. The suggested duration for the cooldown is currently 3 weeks. After the cooldown, the user has 2 weeks of a withdrawal window. If the staker does not withdraw during the withdrawal window, a new cooldown needs to be initiated.

Additionally, early withdrawals are subject to a withdrawal fee (see chart). The maximum fee is 10% during the first 2 weeks and after 48 weeks the fee is 0%.

Both mechanisms are to ensure, that during a period in which MTA experience a stressful event (such as losing peg of a mAsset), no staker can withdraw in order to avoid recollatorisation. The slashing percentage is set initially to 0%, hence is not active at launch. But can be activated with a future proposal.

A second reason is to avoid malicious vote manipulation. This is especially important with a future release of the reward gauges, in which stakers can choose the allocation of MTA rewards.

Multipliers

Stakers can earn 2 different sets of multipliers - time multipliers that reward long-term staking and quest multipliers that reward participation.

Time multipliers are earned in the following manner:

Staking length Multiplier
less than 13 Weeks 1
13-25 Weeks 1.2
26-51 Weeks 1.3
52-77 Weeks 1.4
78-103 Weeks 1.5
longer than 103 Weeks 1.6

Quest multipliers come in 2 different variants, permanent and seasonal. Seasonal multipliers are only valid for the duration of the season (9 Months). Quests with permanent multipliers are reserved for high-value actions. Seasonal multipliers are added to allow stakers to increase the scaled balance during the season while at the same time avoiding the accumulation of multipliers and hence give newer stakers a fairer chance to participate. An initial permanent multiplier could be given to stakers who migrate the staked amount from staking V1 to V2 in a specific amount of time. Quest multipliers can only be within the range of 1 to 1.5.

Multipliers scale the staked balance and result in the scaled balance. This scaled balance is used for rewards accrual and voting weights.

QuestMaster

A QuestMaster is a set address that can add new quests, expire quests and start a new season. It is not advisable to make this functionality public. It is proposed to initially form a Questing Committee that consists of mStable contributors and set the QuestMaster to an address that is controlled by this Committee. This would allow for enough control in the beginning to develop quests that are aligned with the goals of mStable and that are within the realm of possibilities, while also ensuring that the functionality is built into the application to complete and verify a quest. If questing establishes itself as a core feature of staking, a future proposal could decentralise this Committee further.

Any ideas for quests are welcomed. Join our discord and we can have a discussion around that there. But please refrain from discussing quest ideas in this thread, as we would like to focus the discussion around the mentioned parameters.

Wrapper Contracts

Staking from a contract would initially be by default not allowed. This is due to the possibility that a wrapper contract could circumvent the staking and unstaking procedure, hence making it obsolete and weaken the design for MTA acting as a backstop solution. Wrapper contracts that are beneficial to staking can be whitelisted via a proposal and governance vote.

Open Questions

What are your initial thoughts around these staking mechanics around delegation, withdrawal mechanics, questing, and wrapper contracts?

In particular, I would like to get feedback on these parameters.

  • 80/20 MTA/ETH Balancer Pool as a good second choice to earn swap fees and to deepen the MTA liquidity?
  • How long should be the cooldown period and withdrawal window? Currently suggested 3 weeks and 2 weeks. Is it too long, or too short?
  • Early withdrawal fee design, fair or too punishing?
  • Time multipliers are incentive enough to keep staking? Are those multipliers chosen fair?
2 Likes

Can we get one point if clarification on the multipliers, please? You mention “Multipliers scale the staked balance and result in the scaled balance. This scaled balance is used for rewards accrual and voting weights.” What about for boosts for MTA rewards in Save and Pool? I assume there’s still a degree of freedom there re the function mapping from (scaled stake balance, Save balance) to boost factor? It’s just that the input to that function will now be this scaled stake balance, rather than the old time-decaying vMTA?

2 Likes

Hey Javalasers, thanks for your comment.

This is something that I had to confirm first myself. But indeed, the functionality is such that the BoostedVaults gets the balance from the ERC20 function balanceOf, which was in staking v1 the decaying vMTA and which will be the scaled balance in staking V2. So fulfilling quests and staking long-term will have a positive effect on the boost that one receives.

Thanks for raising this question!

Thanks for posting.

First, some questions:

  • How will staking 80/20 MTA/ETH BAL Pool be weighed against staking MTA directly? In other words, is it only the MTA portion within the BAL pool that would be counted or the total value including ETH would count as if the entire amount was MTA staked?

  • Can you please comment on staking v2 and L2 support? Specifically, will staking only be on L1 or can stake and/or at least claim functionality be provided on L2? Likewise and touching upon Javalasers’ question, will staking v2 apply boost on L2 pools/save?

  • Is vote power = earning power in the staking v2 model? If I go to the staking UI and I look up the stats provided, my vote power is not the same as my earning power. My only thought here is if we can make it simple for users to adopt, and if there isn’t a reason for these to be different we can make them to be one and the same

  • Are we planning on any security audit for the staking v2 smart contract?

  • (##) Just to make sure I understand the early withdrawal, we are talking about a user that had MTA staked and lock ended. The user has initiated a request to unstake and is waiting for 2-3 weeks, and if that user wants to pull out immediately, there is a penalty applied?

  • What is done with the % slashed due to early withdrawal (if applicable), is it provided equally to MTA stakers?

Here is some specific feedback to the open questions asked in the post:

  • I like the thinking around providing another way to reward those providing MTA liquidity by allowing MTA from BAL pool to be included. The reason I say this is that I’ve seen often complains on other protocols that those who provided liquidity are often excluded from rewards.
    We should ask and answer the question, if 100% of stakers would be going with the BAL Pool option, is there any problem or disadvantage in that to mStable?

  • Cool down period does not seem unreasonable to me, but this assumes I understand the intent (see above question labeled ##).
    I have seen normally a week and some protocols have it set for a month even. What is a bit different with the proposal here is that there is a lock period (up to 2 years), and a cool down, and an early withdrawal fee. I have to think about it some more, but I am wondering if there should be a cool down only for stake lock period chosen under 52 weeks.

  • Re: amount of early withdrawal penalty: I would ask us to look at the scenario of depeg and re-collateralization of a particular asset like USDT, in this case, do we believe the 10% max penalty is the lesser of the two evils?

  • Re: multipliers. The current chosen multipliers will bias users to stake for less time for risk-adjusted returns, I believe. I am not advocating to change the values yet, just want to comment that if I had a chance between locking for 14 weeks and getting 20% more, or locking for 1 year and getting 10% on top of that (i.e. 30% total), I would choose to stake for less time. However, that does mean I am not encouraged to re-stake, it just means I value flexibility more than that 10%.

Looking forward to the continued discussion and thanks again for putting together this post.

Can you also clarify how boost multipliers will interact with adding to your existing stake? For example someone may collect a bunch of MTA rewards from Pool and consider whether to add to their governance stake. On the one hand, it would be great for any added MTA to inherit all existing boost multipliers for that governance stake. On the other, that seems to open up a potential abuse vector where someone stakes 1 MTA forever to have e.g. the max boost multiplier lying in reserve for whenever they pile a big MTA stack on top…

Thank you for your comments. I think your questions are pointing to the fact that some of the explanations might not be sufficient enough that I provided.

See my comments below:

They would be separate pools and rewards would be allocated dynamically. Let me look more into the contracts and I will figure this out.

Currently, no L2 staking support is planned. Staking on an L2 would essentially split the protocol into 2 governing bodies. Interoperability is something that we need to consider for the future. This is however not part of this release.

Yes, and no decay over time.

An audit is already in process.

Sorry but here seems to be a bit of a missunderstanding. There is no lock time. A user stakes without choosing how long. And the user can remain staked until they choose to withdraw. The cooldown time is applied if the user wishes to withdraw in any case. And the withdrawal fee is separate from that.

Do you mean the fee? It should count as protocol revenue and can be used for distribution or buyback and make.

There are pros and cons. You are more bullish on MTA, than you stake MTA. The BAL tokens would also have some impermanent loss but can potentially offset it with swap fees. It would be interesting to see what the users would choose.

There is no lock period, that’s why there needs to be a cooldown.

Yes there needs to be a cooldown if we ever want MTA to act as the backstop for the mAssets. If we don’t have that, a user would simply withdraw at the earliest sight of a stressful event.

The fee does not remove the need to cooldown. These are 2 separate mechanisms.

The multipliers get added over the duration of your staking. So you stake for 13 or more weeks, you balance scales up with 1.2. You simply continue to stake until you earn the next highest multiplier, ect.

Thanks for all the questions. I think I need to make more clear that with staking V2 the user DOES NOT choose a period to lock up. The user simply stakes until they choose to withdraw (initiating cooldown and wait until the withdraw window, similiar to stkAAVE)

Here we have to separate the multipliers.

If you choose to add to your stake, then that would increase the rawBalance. This raw balance is used to scale the balance. So all earned multipliers would apply.

At the same time, in order to avoid the problem that you mentioned, the weightedTimestamp is recalculated. This timestamp is used for the timeMultiplier. E.g. The staked duration of 1 MTA will be recalculated based on the new amount that you stake. If you stake another 1 MTA then the weightedTimestamp will be exactly between your first stake and your second stake. This avoids the problem of users just getting high timeMultipliers with a little stake and then increasing it substantially later.

Note that these multipliers are not going ever to increase to enormous amounts. The highest time multiplier will ever be 1.6. A quest can only be between 1.01 and 1.5. With the majority of quests being on the lower end. Additionally, quests expire every season and everyone gets a fresh start (apart from the rare permanent multipliers).

Hi Dimsome,

Thanks for the detailed informations.

  • About the 80/20 MTA/ETH Balancer pool. I personally won’t use it as i had bad experiences with impermanent losses during volatility periods. Unless you’re a whale or if there is Impermanent loss protection like Bancor, i just don’t see the interest (as a small fish). But having both staking options is interesting as there is different profiles of mta stakers + interest to deepen the MTA liquidity.

  • About the cooldown/withdrawal period. The current periods seems fine to me considering the risks the MTA token has to cover. Is it possible thought that MTA stakers forget to withdraw, considering that 3 weeks is a long time in crypto. In that case, would it be doable to implement a simple reminder to withdraw ? More broadly, it may be interesting to integrate a service like Ethereum Push Notification Service (EPNS) for governance.

  • About the staking fee. In the event of a de-peg, I guess the withdrawal fee will accelerate the recollateralisation process, right ? Can you give more details about the recollateralisation process ? Plus, can we have some stats about the ratio : number of MTA/Staking duration in staking v1 ? It will give us an idea of the volume of MTA tokens staked in regard to the staking duration. If i guess correctly, the largest MTA holders stake the longest, so 10% on the smaller stakers may be a bit tough => we may need to flatten the curve.
    I’d also guess that new MTA holders probably won’t stake for a long period in the beginning : they will “test the water temperature” first. We shouldn’t disincentivize the arrival of new contributors.

  • About multipliers and staking length. As i understand correctly, each staking period is roughly 6 months longer beyond 25 weeks, so why not just make a season of 6 months ? Is it because we want to avoid a massive de-staking both on time multipliers and seasonal multiplier ?
    I do not know if the multipliers chosen are fair; my guess is that is will greatly depend on the base staking return and should be adjusted after a test period.

Thanks for this, Dimsome. A couple clarifying questions:

How will initial boosting work for Save and Pools in this staking system? From the start, will it still be possible to get the maximum boost available today, or will it be necessary to complete quests and stake for a certain length of time?

Example: Let’s say I’m a mStable user who consistently stakes enough MTA to get the max boost on my Save / Pools deposits. I’m used to being able to acquire enough vMTA to get a 3x boost at any time. Will I still be able to do this, with the added bonus of getting a “boosted boost” from quests and staking length multipliers over time? Or will I need need to earn my way back to 3x with quests and time?

That is a fair point. Personally, I believe MTA staking is the best option for the majority and bigger stakers might consider it more benefitial to stake the balancer pool tokens.

I think that is interesting to cosider. I am sure the UI will show when something is in cooldown, but integrating EPNS for notifications in the future sounds interesting.

The withdrawal fee is not for recollateralisation. The max 10% would only apply for less than 2 weeks staking, the cooldown itself would be 3 weeks, so that would rarely apply. Some statistics about MTA staking can be found in this dashboard: Dune Analytics
I think for stakers who want to test the waters, should stake a smaller amount first?

We needed to make the season not too long and not too short. 9 Months sounds like a reasonable length since stakers would earn the next highest time multiplier and only then lose the seasonal multipliers. That way, even though the season is over, they have not long until they get the next highest time multiplier and can earn the new season multipliers as well. And yes, we need to model around a bit with the multipliers to make them fair for everyone, while still compelling enough.

1 Like

Thank you for your question!

Yes, it is possible. The boost is derived from the scaled balance, which itself is derived from the raw staked balance and the multipliers. So, if you stake enough, you can earn the highest multiplier from the getgo. The time multipliers and quests will help.