[Proposal] Launch new yLockers Staking

[Proposal] Launch new yLockers Staking

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 choice to earn yield in stablecoins and enhance their earning potential within the system the longer they stake, all without imposing lock-ups or penalties.

Abstract

If adopted, this proposal will trigger Yearn to complete development on contracts, a custom-built UI for yLockers users, and begin the deployment of the new staking system described below. As such, the following steps will be taken:

  1. Establish a new staking system based on the novel YearnBoostedStaker contract and an accompanying yield distribution contract.
  2. Submit the contracts for a final audit.
  3. Launch new staking setup for yPRISMA immediately.
  4. Enable staking-time weighted rewards distribution to users. This mechanism is described in more detail below.
  5. Enable users’ ability to self-elect their reward allocations. Specifically, users will have an ability to select between any mix of the two available rewards tokens: the respective yLocker token, and its ecosystem’s primary stablecoin, wrapped in a Yearn auto-compounding vault.
  6. After 5 weeks of production operation, launch same new staking setup for yCRV.

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:

  • For users who prefer to continue passively auto-compounding yLocker tokens, no action is required.
  • Users who wish to take advantage of the new staking features should plan to withdraw and stake their yCRV or yPRISMA directly.

Background

Yearns 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 a similar model employed with great success by Convex Finance. At time of writing, the market on Convex is currently pricing in a >20% premium for receiving yield as stablecoins vs governance tokens.

  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 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.
  • Each staking uses may also set an election. This value can be anywhere between 0% - 100% to express their preference for yLocker token yield vs. stablecoin yield (where 0% indicates all yield as yLocker tokens, 100% as all yield as stablecoins, and 50% as a relative split between the two).
  • The contract produces the following data:
    • user election: user’s yield preference
    • 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 exactly two tokens:

  1. Target yLocker token
  2. Target vault-wrapped stablecoin.

It is important to note that raw yield (captured from protocol fees, bribes, etc.) will still arrive in an assortment of different tokens. These tokens are classified and converted into their respective target tokens.

Determining the yield classifications, and therefore weekly amounts is simple:

  • All yield collected during the week from core protocol fee revenue (i.e. core fee distributor contracts) will go into the stablecoin bucket.
  • All yield that arrives from bribes or other outside sources will go into the yLocker token bucket to be converted to the yLocker token.

As yield arives throughout the week, it will be converted to target tokens and deposited directly into the Yearn yield distributor contract according to its classification.

If, for example, a user elects for 100% of their yield in stablecoins, and the stablecoin bucket had $50,000 deposited for the week, that user will earn their entire weekly distribution as a portion of that $50,000. The exact portion depends on that user’s weight relative to the election-adjusted weight of all other users in the system.

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.
  • Stablecoin yield will be claimed directly to a user’s wallet.
  • Optionally, users may elect to have their governance tokens “auto-staked” to the staking contract.
  • At launch, claimaints who choose to “auto-stake” will have that claimed amount allocated directly into the maximum boosted position. This serves as a way to build upon one’s weight in the system while also being gas efficient.

Specification

Configuration

  • Deploy YearnBoostedStaker with a MAX_STAKE_GROWTH_WEEKS of 4.
  • Deploy Yield Distributor contract with auto-staking configured to deposit claimed yTokens back into the staker at max boost.
  • 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
0 voters
1 Like

First of all I want to say wavey is gentleman and scholar- I’m appreciative of his work as a productive DAO member, how he endeavors to answer community questions as well as his exceptional attitude and positive vibe. Regarding the topic at hand:

The proposal seeks “a new staking experience” for yLocker users by utilizing a one size fits all approach. Features to be added include allowing users to opt for earnings to be denominated in a given yLocker product’s yToken as well as or instead of yearn vaulted (yv) stablecoins. Bonus reward weights for long term deposits are also introduced- excellent features and optionality however my concern is sub optimal implementation will be detrimental to both users and the DAO. The proposal fails to identify and account for how different the yLocker products are in their stages of development, does not adequately describe implications of proposed design change, the realities of competitor offerings and weaknesses in Yearn’s position that are overlooked and potentially exacerbated with this change.

Currently yPrisma and yCRV locker products are very different. The older yLocker product yCRV evolved from consolidating deprecated products, has seen a script hiccup to the detriment of POL and a redemption arc buy most (all?) of it back. Wavey’s proposal seeks to polish yCRV offering as the motivation section mentions (1) stable coin claims and (2) additional weight for long term deposits. The yCRV product benefits as current offering does not grant option to claim in yvstablecoin at all. However this is entirely moot in yPrisma as yield is already delivered in a yvstablecoin. yCRV yield is abstracted away into a capital gain a user must swap to realize. The structural reality of more than $25m USD worth of yCRV and only $4.5m USD worth of lopsided liquidity - the need for a yvstablecoin reward option is obvious. Although outside proposal scope it should be noted the front end (ycrv.yearn.fi) does not do justice to the base/activated token model employed. Furthermore the UI shows breakdown for st-yCRV yield on mouse over but not for lp-yCRV, data on harvests lack actionable depth; for example a given harvest’s source of yield (emissions, protocol fees, lobby market incentive, etc) is absent and it is up to the user to collate.

Although younger and smaller, yPrisma offers a straightforward experience providing a blended return sourced from protocol fees and lobby market incentives in the form of a yvstablecoin, yvmkUSD. Users only have one token to enter with and have a simple reward claim process (only friction is a yvmkUSD vault with no strategy). Furthermore users benefit from an industry leading stablecoin APR (with no YFI token inflation!) due to the blended return. The proposed design introduces the option for users to choose between receiving rewards in yPrisma or yvmkUSD, which adds flexibility but shouldn’t come at the cost of the simplicity and effectiveness of a blended APR. The design choice to split Prisma yield into buckets is detrimental to Prisma yLocker UX and serves to add complexity, lower shown APR and confer little other benefit. The proposal fails to consider happy yPrisma users (I am one of them, >10% of yPrisma staked). The significant change for yPrisma users seems to be nonsensical: give up an industry leading blended APR and gain complexity. It should be noted that yPrisma UX lacks data on harvests at all, let alone delineating between yield sources - and while nice to have, not needed as product provides blended return of all revenues.

Matching bucket style revenue distributions of competitor locker products is tricky as they are not really apples to apples. Consider that cvxCRV/cvxPrisma are seeded with CVX rewards both for staking with protocol and providing liquidity - don’t even get me started on sdCRV - simply competitor protocols pay for the luxury of bucketing yield by adding inflationary emissions. The proposal does not include YFI/veYFI emissions but perhaps they will be necessary to remain competitive if choosing to emulate dividing yield into buckets. It is my belief Yearn offerings should provide superior UX and sustainably generate yield for the DAO, creating subsidized complexity seems a step in the wrong direction.

Consider an offering to accommodate users who want to claim yvstablecoin, users who want yLocker token all while creating positive feed back loop for the DAO. In Prisma’s case one approach may be leaving yvstablecoin claims as is and adding option for one click zap that would claim (all, some) user earnings and (deposit, deliver to wallet) position - it could even advertise the swap bonus for exchanging the Prisma/yPrisma pool. One could further imagine Yearn offering “auto zap” in which a user allows Yearn to periodically swap earned yvmkusd for prisma, max lock prisma and dispense freshly minted yprisma to staker.

I propose that yCRV be updated in accordance with proposal. I propose that yPrisma only be updated in a way that does not break delivery of a blended APY in yvmkusd.

Additional Attention:
typo on the yPrisma front end- “permanant” should be permanent
ycrv about page “win the curve wars with yearn” link to docs is dead.
YFI should add 10% performance fee
YFI should approve yvmkusd strat - ideally giving users choice for vanilla ‘up only’ or juiced
add voting power to prisma users
include yPrisma in #deposits bot
publish clearer documentation- a simple flow chart of contract calls and value flows would be nice
yPrisma UI should offer 1:1 prisma->yprisma mint, should also show live swap in rate or even offer the swap itself