RETRACTED: Migrating to a new YOU Staking Pool contract and a new DAO contract

Please note: This is a draft of an upcoming Youves Improvement Proposal (YIP) created by youves core contributors. The YIP would introduce a new YOU Staking Pool, the YOU Staking Pool V3, and a adapted DAO contract.

Contract development, audits and testing will soon be concluded.

The deployed contracts and necessary lambdas will be published later in this same post. This preliminary draft intends to inform the community about the proposal and to invite everyone to comment.

YOU Staking Pool V3 - Governance and Bailout pool for the youves Token

The YOU Staking Pool V3 supersedes the YOU Staking Pool V2, previously known as the Unified Staking Pool. The new V3 Staking Pool introduces new features that are crucial for the advancement of the youves platform as laid out in the Strategic Vision blog post.

The proposed V3 pool comes the following changes:

The Commitment

When users opt to stake their YOU tokens using the V3 contract, they will have to choose a cooldown period. The Cooldown Period represents the duration during which their tokens remain locked after initiating a transaction to unstake them from the V3 pool. The maximum selectable lenght of the cooldown period is 32 epochs of 28 days each, in total 896 days. Users have the flexibility to select a cooldown period anywhere between 0 and a maximum 77’414’400 seconds (896 days).

The cooldown period starts when the entrypoint enter_cooldownis called on the YOU Staking Contract V3.

By staking YOU, users commit their long term support to the platform. Consequently, depending of the chosen cooldown period, they will receive more rewards and bigger vote weights than other stakers, who selected shorter cooldown periods.

Factors influenced by the chosen Cooldown Period lenght

Since the cooldown period serves as a means to express the staker’s long term commitment to the platform, the selected length of this the cooldown period significantly influences three crucial factors or weights:

1. The Reward Weight (expressed as reward_weight)

The reward_weight expresses a percentage of rewards to which a user is entitled, relative to the rewards they would receive if they selected the maximum length of the cooldown period.

When commiting a stake, the initial reward_weight of the stake is set as the following:

image


Here’s an example:

image

This user staked 1000 YOU tokens and selected half of the maximum cooldown period (38’707’200 seconds or 448 days) as commitment. Consequently, this stake’s reward_weight is set to 500, which is 50% of the maximum possible reward weight for this fresh stake of 1000 YOUs. Same applies to this stake’s bailout_weight, it’s also set to 500.

In order to decide how much of the incoming rewards a stake is entitled to, the V3 contract compares the stake size of a single stake to the sum of all stakes and then applies the reward_weight to it in order to calculate the percentage of rewards that given stake in the pool is entitled to.

Depending on the size of the stake and the chosen cooldown period, the reward_weight will vary. The allocation follows a linear pattern: If a user selects the maximum cooldown period, their Reward Weight will encompass 100% of their pro rata rewards for the duration of their active stake. If the user opts for only 50% of the maximum cooldown period (roughly 448d), their Reward Weight will constitute 50% of the possible maximum of rewards for this stahe. The rewards accumulated by a stake is directly proportional to the selected cooldown duration. The allocation of rewards per number of chosen epochs is linear.

On the new contract a stake’s Reward Weight is tracked as the reward_weight.

2. The Governance Vote Weight (expressed as stake_weight)

Similar to the Reward Weight, the user’s Governance Vote Weight will be determined. But instead of a linear distribution, it uses a logaritmic curve to determine the the vote weight, expressed as stake_weight, dependent of the chosen commitment lenght (the chosen cooldown period). The longer the selected cooldown period, the bigger a user’s vote weight. The bigger a users vote weight, the more his votes count in a youves governance vote.

The allocation of vote weight follows a binary logaritmic curve (log2 n) which is segmented in 32 epochs of 28 days each. Each epoch has a certain vote weight assigned, derived from the logarithmic curve.

cooldown period selected assigned stake_weight factor stake_weight percentage
1 epoch (28 days) 0 0%
2 epochs (56 days) 1 20%
4 epochs (112 days) 2 40%
8 epochs (224 days) 3 60%
16 epochs (448 days) 4 80%
32 epochs (896 days) 5 100%

This results in the following stake_weight and reward_weight percentages per epoch, depending on the selected cooldown period:


(click to enlarge)

For the example user from above, who selected half of the maximum cooldown period as his commitment lenght, the stake_weight would be 4. This equals 80% of the maximum vote weight had he chosen the maximum commitment time of 32 epochs.

Users will be able to chose any cooldown period, but the smart contract will assign it to the number of epochs this cooldown period falls in.

In order to determine the the voting power of a stake, this stake_weight is applied to the users stake. So the stakes voting power (it’s votes) are calculated like this:

3. The Bailout Weight (expressed as bailout_weight)

As the governance participants are also responsible to choose a strategy by voting for contract developments and contract parameter changes, they are also the ones who will be held accountable for decisions wich could lead to a bad debt situation. With great power comes great responsibility.

This responsibility comes in the form of the Bailout Weight (bailout_weight) which defines the relative size of a users share to cover a bailout of a bad debt position. The longer the selected Cooldown Period, the bigger the Bailout Weight od that stake. Or in other words, the more influence a stake has on a vote, the bigger the stake’s commitment to contribute to a bailout of bad debt.

The Bailout Weight is stored in the bailout_weight value of a stake.

Why Bailout? Possible Bad Debt Scenarios

Let’s have a brief look at a possible bad debt scenario in order to understand what could lead to a necessary bailout:

Let’s assume the governance participants decide to set very low collateralization parameters for minters on a certain engine or smart contract. In an event, where the collateral of a vault would rapidly and massively devalue against the minted synthetic asset, it might become unprofitable for liquidators to liquidate a undercollaterlized vault: they could get less collateral value out, than they need to provide synthetic asset value to reduce the minter’s outstanding debt. A vault which is undercollateralized, but won’t be liquidated, can be characterized as bad debt. If bad debt stays unresolved on the platform, it will have direct consequences on the peg of the synthetic asset in which bad debt exists. The synthetic asset will devalue against the asset it tracks, essentially impacting the platforms stability in a negative way.

Since it’s existence, the youves platform has never seen a bad debt situation, mainly due to the currently set safe minimum collateralization ratios, especially for more volatile assets. Nevertheless, in order to make the platform more attractive for traders/minters, it might be necessary to lower the collateralization ratio in the future. The community of YOU stakers, which is the governing body of the youves platform, has to decide to what extent this should be done. And because stakers decide about this risk factor, they should also be the ones paying for a bailout, if the platform ever accrues bad debt.

The bailout mechanism itself will be covered seperately, further down in this article.

During the Cooldown period

When a user calls enter_cooldown for a stake, the selected cooldown period starts for that stake. During the cooldown period, two of the above parameters will change:

Reward Weight is halved

When the cooldown period starts, the Reward Weight (reward_weight) associated with a user’s stake is set to 50% of its preceding value. This adjustment persists until the cooldown period ends, at which point the user becomes eligible to claim their rewards. These rewards encompass the gains accumulated by their stake during both the initial staking period and the subsequent cooldown period.

Governance Vote Weight remains the same

A user who triggered the cooldown period on a stake, will still be able to vote with that stake at the same stake_weight as before. Note, that a user cannot trigger cooldown while his stake is locked in the governance contract (eg. during the voting phase of a YIP).

Bailout Weight remains the same

In contrast to the Reward Weight, the Bailout Weight stays the same during the cooldown period. This is mainly to ensure that stakers won’t just trigger the cooldown period due to an upcoming bailout.

Recommitting during a cooldown

Once a cooldown period on a stake has started and is running, a user can always recommit the stake and reenter the pool. The previously selected cooldown period of this stake will be resetted. Consequently, the reward_weight will be set back to it’s previous value.

After the Cooldown period

Withdrawing the stake

Once the cooldown period ended, the stake continues to earn rewards as if it still was in the cooldown, but a user can and should withdraw his stake now. By withdrawing, the user will recover the amount of YOU he is currently entitled to. In order to calculate a users stake, the contract calculates the following:

Users should be aware that accumulated bailouts will lower the withdrawal amount, while accumulated rewards will increase the withdrawal amount.

Users need to withdraw their stake within the timespan defined in max_withdraw_delay, otherwise the risk to loose a part of their stake and rewards:

Kickout

After the cooldown period ran out, a user needs to withdraw his stake within the timespan specified in max_withdraw_delay. If the user doesn’t withdraw his stake within that timeframe, other users can kick the stake out, by calling the kickout entrypoint and providing the stake’s ID. Upon kickout the user’s tokens from the stake, including the accumulated rewards minus the acumulated bailouts, will be transferred back to the original stake owner, as if it was withdrawn, but the user initiating the kickout will receive a reward that consists of a percetage of the affected stake’s accumulated rewards, as defined in kicker_reward_ratio.

This means users need to observe the cooldown period and withdraw actively in order to retain the full balance of the stake and it’s rewards. Otherwise the kicker will receive the defined percentage of the accumulated rewards of the kicked out stake.

The Bailout process

In the case the platform accrues bad debt, as outlined above, anyone can propose a bailout via a youves governance vote. Therefore, the new V3 pool comes with a bailout entrypoint that accepts a lambda. This way, the pool allows for several ways a bailout could happen.

Let’s dive into a possible bailout scenario to illustrate how the bailout could be used: A vault in the uUSD with tez collateral has accrued bad debt and is in a state where liquidation is not profitable anymore. We assume that no liquidator would liquidate this vault under the current circumstances. Youves contributors can now create a governance proposal with a lambda that would call the bailout entrypoint submitting a lambda which would:

  1. claim some of the YOU tokens in the unified staking pool
  2. swap them to uUSD
  3. liquidates the undercollaterlized vault
  4. swaps the received tez to YOU tokens
  5. returns the remaining you tokens to the YOU staking pool

As the V3 Staking Pool allows to have multiple administrators, the youves keyholders could retain administrative rights at the beginning. This would allow the keyholders to enforce a bailout at any time, even if the YOU stakers voted against it. Of course, such an overruling of a governance vote would essentially turn governance itself into a farce, but it is important to know that the possibility exists. The community could still decide to remove the keyholders from the list of admins.

DAO Contract V2

The YOU Staking Contract V3 will also need an adpated DAO contract to be deployed in order to process the new vote weights. This mainly because the current DAO contract has no entrypoint to change the The migration to this new DAO contract will be an integral part of this YIP. The general functionality of the DAO will not be changed.

Next Steps

The youves core contributors invite you to comment on this upcoming proposal. It it expected that an on-chain proposal will be submitted in the next days.

2 Likes

1、Is it possible to set up a treasury for DAOs and send some of the revenue from the agreement to the treasury, minting fee for example, so that when a bad debt occurs, the treasury funds can be prioritized to be used for bailouts, and when there are too much funds in the treasury they can also initiate a proposal through the DAOs to use the excess treasury funds to purchase YOU for distribution to the DAO.
2、Is it possible for YOU holders to have a preferential right to participate in liquidation based on voting weight. This would increase the attractiveness of HOLDing YOU.

1 Like

Its a little unclear to me what the enter_cooldown entrypoint does. Is this a way for the staker to retrieve their stake before their pre-determined commitment they chose when they initiated their stake?

1 Like

@Hardbark Thank you for your feedback. I might need to improve the text.

Let’s do an example. You create a stake and you decide to choose a cooldown period of 30 days. Then you stake, for days, for weeks, even months. But at some point you want to withdraw your stake. Now you will call the enter_cooldown entrypoint (you’ll just click a button on the youves frontend). Now this stake’s cooldown period starts, which means that you will be able to really withdraw your YOU tokens 30 days later - because your selected cooldown period was 30 days. During the cooldown period some of the rules change, pls see above in the section “During the Cooldown period”.

@bitxia thank you for your contribution.

  1. This could be introduced with a later YIP. Technically it’s definitely possible and ideally it would all be set up through the DAO. But is there much difference if minting fee is sent to the YOU Staking Pool and then used that as bailout money or the minting fees are separated into a treasury for future bailouts?

  2. That is an interesting thought. Personally I understand the reasoning. On the other hand it might be tricky to implement. Also, liquidations are crucial for the platform and there should be as little hurdles for liquidators to become active. An alternative to this would be to send some of the liquidation premium to the YOU staking pool by default.

Okay, so the cooldown period is essentially your unlock period that also sets your reward proportion? So if an unlock of 2 years is used the timer wont trigger until you trigger the enter_cooldown entrypoint and the rewards weight will be halved during these two years too?

All rewards allocated to that stake will also be tied to the cooldown of the stake as well?

1 Like

@Hardbark

Yes, the timer will start once you call the entrypoint enter_cooldown (which you will be able to do with a button on the frontend ofc).

Yes, during that cooldown period, rewards will be halved. But vote weight and bailout weight stays the same.

Yes, there is no way to claim your rewards before the cooldown period ends. At the end of the cooldown period, the contract calculates your rewards and the total withdrawal amount.

I know the cooldown concept from Aave and Moonwell staking. Periods are respectively 20 and 10 days. Reusing the same term make the mechanism easier to understand for those who know it and make it clearly different from a veToken for instance. It feels however quite different in terms of usage. For Aave, you initiate a cooldown if you want

  • to use you token elsewhere (probably swap them)
  • to avoid being involved in a bailout that you anticipe one in a relatively short term (and hope to exit early enough)
    For these 2 cases, 20 days or so make sens. In the proposed mechanism, as soon as you want to have some impact the duration is more than 100 days or even more than a year. It’s long in normal world, even more in crypto world. For most users, the feeling of initiating the cooldown is then completely different from Aave.

I would expect some users to select 1 or 2 epochs as their period for security and other users to select the maximum. Those selecting the maximum would probably expect to have a way out due to a future YOU v4 or somehow stake “for infinity”.

I don’t have yet a strong opinion on the mechanism but I doubt the “exit” phase should be presented like that.

3 Likes

A second question liked to the first one: would there be a NFT associated with the locked position as in Plenty v2 for instance? That would give a way out other than the cooldown and create an economy around the staked YOU.

1 Like

Hey @Clement!

Thank you for your thoughts. We know that the cooldown period may be perceived as being long, but having long term commitments where YOU is locked seems essential to us. Two things mitigate this:

  1. A user can have as many stakes as he wants, all with different cooldown periods. So you could decide to use 20% over the full duration and 80% over a shorter period, whatever makes sense.

  2. yes. stakes are transferrable without losing their properties. This already happens when voting, because then the stake is transferred to the DAO and back (after the vote. So yes, a stake economy would be possible (and that is a very good idea).

2 Likes

No one is going to be able to predict how this plays out if launched. One thing is for sure though, for the new vision, we are pushing for more activity and more capital efficiency (leverage of up to 50+x). This means that having a bailout pool is required to cover unforeseeable situations that led to bad debt. Instead of just sharing rewards with a staking pool, the capital in the staking pool is used for a meaningful purpose. This meaningful purpose of course is rewarded with the fees generated by said activity.

It makes sense to not mandate a lock period and just have the users choose freely if they want to lock for 0, 1 or 32 epochs. As everything is relative, if everyone only locks for the minimum amount, everyone gets the maximum reward. But it also makes sense to say “ok, if you are willing to commit your stake to the bailout pool for a longer amount of time, you should definitely be rewarded more”.

Having the stake transferrable as an FA2 NFT similar to plenty is a design decision that will allow the position to be exchanged with someone else on a NFT marketplace or as an OTC deal or who knows even be used as collateral. Also practical things like key rotation/wallet change are enabled by this. But it does not change the fact that those YOUs related to the NFT are in the bailout pool securing the protocol.

1 Like

Thank you @m.laeng and @dcale for your answers.

If a user can have different stakes, it will indeed be more confortable to handle the long duration. Something that lacks in the Plenty system is the ability to split or merge NFTs. I think this is needed to have an efficient stake economy (in Youves, operation would only be possible on stake with similar status and locking period).

Having a clear bailout mechanism will increase the confidence in the system and help generate more real yield.

I hope we will be able to use this new Youves soon!

Hey guys, I personally prefer to apply the 60-days cooldown period mechanism which is used in the uUSD Savings pool before, rather than using such a complex new staking mechanism.

Hey @bitxia,
we appreciate your feedback. Nevertheless, we really aim for longterm staking longer than 60 days. Nevertheless, we will change the above proposal. During testing we discovered issues with the new proposal. So we are currently reworking it fundamentally. I will post the new version as soon as it’s ready.

I know your intentions are good and I appreciate your efforts.
I still don’t think it’s a good idea. But my opinion is for informational purposes only.