YIP: Voting Power for Farmers

Basic Summary

We propose to modify the Yam protocol so that LPs staking in the Incentivizer (i.e. farmers) will be able to vote in the onchain governance process.


An individual’s voting power for governance is currently based on the pre-rebase number of YAM the account holds when the vote begins. This means individuals farming YAM on the incentivized pool are unable to vote. In order to allow farmers to vote, modifications to the protocol will need to be made.


Due to the fact that voting weight is based only on an account’s YAM balance/delegates at the time a proposal is created, individuals in the incentivized LP pool are unable to vote. This causes a lot of difficulty for those individuals since they need to exit the pool, wait for the proposal to be created, and rejoin. It would be ideal to let these individuals vote without putting in the extra work or need to choose between voting and farming.


The following technical changes will be required to accomplish this:

  1. Make Uniswap pool delegate to itself

  2. Make Incentivizer have checkpointing/delegation like YAM has

  3. Have YAM.delegate update delegation on the Incentivizer as well

  4. Add governance function to allow governance to make a contract delegate to self

  5. Incentivizer.getPriorVotes would do YAM.getPriorVotes(uniswapPool, proposalCreationBlock - 1) * getUserStakedLPBalanceAtBlock(user, proposalCreationBlock - 1) / getTotalStakedLPAtBlock(proposalCreationBlock - 1)

  6. Update governance module to use YAM.getPriorVotes(user, proposalCreationBlock - 1) + Incentivizer.getPriorVotes(user, proposalCreationBlock - 1) as voting weight

An audit will also be required, which the team is currently in the process of arranging.


  • For
  • Against

0 voters