[Proposal] Launch new yLockers Staking (Update)
March 6th, 2024: The following proposal has been updated following feedback from users and community members.
Overview
This proposal aims to implement a new staking experience for Yearn liquid locker users - including yCRV, yPRISMA, and any future Yearn liquid locker tokens (hereinafter collectively referred to as “yLocker tokens”).
The design offers users the ability to earn staking yield in stablecoins and enhance their earning potential within the system the longer they stake, all without imposing lock-ups or penalties. Users wanting to autocompound their yLocker tokens can continue to do so via the current st-yVault(s).
Abstract
If adopted, this proposal will trigger Yearn to complete development on contracts, a custom-built UI for yLocker users, and begin the deployment of the new staking system described below. As such, the following steps will be taken:
- Establish a new staking system based on the novel
YearnBoostedStaker
contract and an accompanying yield distribution contract. - Launch new staking setup for yPRISMA immediately, distributing yield in mkUSD yVault tokens.
- Enable staking-time weighted rewards distribution to users. This mechanism is described in more detail below.
- After 5 weeks of production operation, launch same new staking setup for yCRV, distributing yield in crvUSD yVault tokens.
These changes will not deprecate st-yCRV nor (future) st-yPRISMA products. They will continue operating as autocompounding vaults, but with new strategies designed to farm the new staking contracts. Users should consider the following actions depending on their personal goals:
- Users wanting to passively auto-compound yLocker tokens can do so via st-yCRV (no need to migrate) and st-yPRISMA (coming soon), with no claiming required.
- Users wanting to earn in stables and take advantage of the new staking features should stake their yCRV or yPRISMA into the
YearnBoosterStaker
directly.
Background
Yearn’s liquid locker products (a.k.a. “yLockers”) serve as a convenient means by which users may choose to gain exposure to various veToken governance systems while keeping their position entirely liquid.
Today, Yearn has two main yLocker products: yCRV and yPRISMA. Both allow users to earn any protocol-generated revenue by depositing their yLocker tokens into a vault contract which receives yield from Yearn’s overall position.
yLockers are designed with a goal of being easy to understand, and enforce no lock-ups nor penalties.
Given the competitive landscape for similar locker products, it is important that yLockers evolve to meet new market demands.
Motivation
The motivation for this change is to address a number of popular use cases that the current yCRV product cannot serve. Specifically:
1. Allow users to claim yield as stablecoins
Though Yearn has seen significant adoption of the st-yCRV autocompounding product (current TVL ~47M yCRV), there is clear market demand for preserving user optionality to earn their veToken yield in the form of stablecoins. We’ve seen Convex Finance add this feature with great success.
2. Introduce mechanism for enhanced incentives based on staking time
The mechanic for staking-time weights allows the yLocker protocol to allocate higher yield, and other incentives to users who commit to longer staking times. This has the effect of incentivizing longer-term stakers by giving them a larger share of total weekly rewards.
Design
YearnBoostedStaker
- Users can deposit and withdraw full balance at any time with no lock-ups and no penalties.
- Each depositor maintains a weight which is a function of their staking amount and duration.
- A user’s weight increases on a once-weekly schedule. Once on initial deposit, and again each week until the maximum amount of growth weeks is reached.
- Users may make partial withdrawals. If user has amounts actively growing in different weeks, the withdrawal is made from the least-weighted amounts first.
- Staking yield is distributed in the form of the primary ecosystem stablecoin (crvUSD for Curve, mkUSD for Prisma) yVault tokens.
- The contract produces the following data:
- user weight: user’s time-weighted score
- user balance: sum of user deposited tokens
- global weight: total time-weighted score of all users
- total supply: sum of deposited tokens
Each of these values can be consumed by any other contract within the system (yield distributors, voting, etc.) and even by integrators to generate weight-based reward distributions.
Let’s demonstrate an example of how weights work. In this example…
- YearnBoostedStaker is deployed with maxGrowthWeeks = 4
- A user deposits 100 yLocker tokens
week | balance | weight | boost multiplier |
---|---|---|---|
0 (deposit week) | 100 | 50 | 0.5x boost |
1 | 100 | 100 | 1x boost |
2 | 100 | 150 | 1.5x boost |
3 | 100 | 200 | 2x boost |
4 (final growth week) | 100 | 250 | 2.5x boost |
5 …n | 100 | 250 | 2.5x boost |
To keep it simple, the example above does not address what happens when a user makes a deposit or withdraw while weight growth is still in progress. If a user deposits 100 tokens every week for 4 weeks, they will then have 4 independent weight groups traveling through the system.
A withdraw will always retrieve tokens from the most recent (least weighted) deposit, leaving the higher weight tokens to continue along.
A user’s total weight is equal to the sum of each of their deposit’s weight. And the total system weight is the sum of all user weight.
Yield Processing and Distribution
Yield will be distributed on a weekly basis in the form of the primary ecosystem stablecoin yVault tokens:
- yvcrvUSD (yield bearing crvUSD)
- yvmkUSD (yield-bearing mkUSD)
It is important to note that raw yield (captured from protocol fees, bribes, etc.) will still arrive in an assortment of different tokens.
As yield arrives throughout the week, it will be converted to the primary ecosystem stablecoin yVault token and deposited directly into the Yearn yield distributor contract. This allows a user’s yield to start earning its own yield immediately.
Yield Claiming
A custom yield distribution contract is required to govern distribution according to the weights and weekly rhythms as YearnBoostedStaker
(week transitions occur every Thursday morning at 00:00 UTC).
- A user’s yield accrues week over week, and is never lost if unclaimed.
- Yield tokens received by Yearn’s position will be deposited over the course of the week.
- Deposited yield tokens are not claimable in the current week but become claimable as soon as the week flips.
- Yield will be claimed directly to a user’s wallet.
- The st-yVault is whitelisted allowing it to push all yield earned into the max boost position in
YearnBoostedStaker
. This serves as a way to incentivize users choosing to reinvest their yield into the yLocker ecosystem.
Specification
Configuration
- Deploy YearnBoostedStaker with a MAX_STAKE_GROWTH_WEEKS of 4.
- Deploy Yield Distributor.
- Migrate the current st-yCRV strategy to a new strategy to farm rewards from the new staking system. Vault token remains the same.
- Deploy st-yPRISMA vault and strategy to auto-compound the new staker.
Fees
- A 10% performance fee will be charged at the time of weekly yield deposits.
Next Steps and Cut-over details
- Acquire consensus for this proposal.
- Following deployments, an announcement will be made to cue users to migrate.
- As users (optionally) migrate from st-yCRV to direct staking, there will be no weight-earning advantage won by any individual depositors as long as they migrate on the first week. I.e. Every staker’s weight (including st-yCRV strategy) begins at 0.5x boost, and therefore their relative system weight is still maximized.
Vote
Non-binding signaling poll.
Proceed with this proposal in its current form?
- Yes
- No