Implement veSTRDY

As of now, $STRDY has no utility but pure governance voting.
In order to sustain mechanics such as the current lending incentives, I propose implementing a ve-model (similar to curve and prisma)

  • Allocate 15% (15 million) of the tokens for emission for the next 3 years linearly


  • Users receive lock weight by locking STRDY tokens for a number of weeks. “Weeks” refers to the number of weeks that must pass before the tokens can be withdrawn.
  • The maximum duration for a lock is 52 weeks.
  • It is possible to extend the duration of an existing lock.
  • Every Thursday, the number of weeks for a lock decreases by 1. When the lock duration reaches 0 weeks, the tokens may be withdrawn at any time.
  • User lock weight calculation:
LOCK_WEIGHT = sum(weeks * balance for (weeks, balance) in USER_LOCKS)
  • Unlock with an exit fee:
    A user can choose to exit a lock prematurely but will pay a fee when doing so:
fee_amount = (total_amount * weeks_to_unlock) // 52

meaning if a user exits prematurely at week 26, the user pays 50% of the locked STRDY tokens to a treasury wallet, which redistributes 100% of those fees to the remaining lockers.

Emission Voting
veSTRDY holders allocate their weekly lock weight towards one or more emission receivers. Emission receivers are silos, aggregators and the veSTRDY gauge but can be extended to new products deployed on sturdy. 100% of total weekly emissions are allocated for receivers with the constraint that emissions for veSTRDY are capped at a maximum of 25% of weekly emissions. The ratio of lock weight votes between all emission receivers determine the weekly STRDY emissions the receivers accrue. Voters receive unlocked STRDY. As voting involves gas consumption, the vote a user signed for the current week shall be set also for the following week(s) until overwritten by a new vote. Emissions for receivers are distributed as locked STRDY with 8 week lock. Projects can assign rewards to voters in order to incentivize deeper liquidity on their silos or aggregators.

Organizations or individuals, which aim to onboard a new silo or aggregator can define emission receivers in their whitelisting proposal.
Depending on the specification of the whitelisting proposal, users who deposit into aggregators (if defined as emission receiver) can boost emissions based on their veSTRDY lock weight.
The boost mechanism calculates the earning weight of the liquidity provided. If users have enough voting weight (veSTRDY) they will be able to boost their earning weight of the liquidity they lend via aggregator by up to 2.5x. This means if a user has a boost of 2.5x and provided $10,000 of value to the aggregator, the rewards are for $25,000 of value in the aggregator. The formula for calculating your boost is given below. has a maximum of 2.5 so if the formula gives a value greater than 2.5 then your boost is 2.5.

B = 1.5 * ( D_1 * V_1) / ( V_2 * D_2) + 1
  • B is your rewards boost (if it’s more than 2.5 it just equals 2.5)
  • D_2 is the value you provided (e.g. 10,000 if you deposit 4 ETH worth $2500 each)
  • D_1 is the total value provided
  • V_1 is the amount of veSTRDY you have (vote weight)
  • V_2 is the total veSTRDY in the system (total vote weight)

fee mechanism
sturdy implements a fee mechanism on the yield users of the silos and aggregators gain, initially with 0% but depending on market conditions can be increased by governance. veSTRDY holders receive the fees pro rata to their lock weight.

1 Like

I don’t know about planed tokenomics for STRDY, so these comments are more on the tech/economic side:

A few things to consider, as I did study some locker contract in the past.

Each user can have multiple locks of different durations.

I think this adds a lot of complexity to the contract. I did not see any implementation yet. You need to use two wallet for this, but then ofc you have to vote twice, if not delegation possible.

Unlock with an exit fee

Exit fee is a good thing, as I think it can reduce governance capture from liquid lockers and depending on the fee percentage, create a floor price for a liquid locker token.

100% is bit steep. veYFI has 75% exit fee, others I don’t know.

Some time back, I made a sheet about this with some examples: vlTOKEN with 75% exit fee - Google Sheets

Giving Fee to existing holders

I did study veYFI code. This is somehow complex and creates dust. In veYFI users have to withdraw their share, if I remember correctly. Its not just added to the veToken they have. To reduce this complexity, the fee cold be send to a multisig, which then is used for community things around the protocol. A while ago, I hacked this into the veYFI contract: GitHub - cryptonative-ch/vlToken: Voting Locked Token


I consider this a very good idea on the veBAL token, it creates POL, which is needed anyway. But locking up is hard, if you have to bring your valuable eth into it. Depending on the unlock and token price, this generates divergence loss on top of the risk of the long time lock. For an establish protocol this may work, but for a new protocol this will reduce the number of people who lock.

Decentralization of distribution

I did lock for exit fee in real project. Prisma unlock with fee are here. Fee is sent to the general fee collector, not to locking holders. As price go down, more unlock are happening (End of last year, there have been only few unlocks on prisma)

On price go up, exit is not used often. But in a price decline people will exit. This leads to a centralization of ownership, as the governance token then moves from weak to strong hands. I consider this fair, but some may argue it’s not desired.

1 Like

Can you offer some additional info about this part of the proposal. What are voters receiving unlocked STURDY for?


I will vote for it. Thanks for the write up!

I changed veSTRDY from STRDY/WETH 80/20 to just locking STRDY as liquidity is established which was my main concern to introduce this.

1 Like

Sounds good! This should enable more hodlers to contribute.