8RC-2: Make depositor reward vest period equal deposit period

Author: Zefram Lou (zefram@88mph.app)


Currently, depositors are rewarded with MPH, which is vested over a fixed period of time regardless of how long the deposit period is. Most pools have a 270-day vest period, the Compound UNI pool has a 14-day vest period, and the Aave DAI pool has a 30-day vest period.

We propose that the vest period should equal the deposit period.

Argument for

88mph pools have been using 7-day reward vesting for most of their existence. During this time, it has been fairly easy for users to dump MPH on the market in the following way:

  1. Deposit a large sum of money into an 88mph pool for the maximum period (1 year). Because the deposit MPH reward is proportional to the deposit period, and is vested after 7 days regardless of the deposit period, this achieves the highest possible rate of receiving rewards.
  2. Keep enough of the MPH received to cover the MPH payback, and dump the rest on the market. This is what we expect a regular user (who intends to withdraw the deposit after it matures) would do in most cases.
  3. Alternatively, just dump all of the MPH received and wait until the price drops to buy back and withdraw the deposit early. This would effectively be shorting MPH.

This is clearly problematic for the long term growth of MPH. There are two potential ways to resolve this:

  1. Make the vest period a reasonably long time, such as 1 year
    • This would be the easier option to implement, not needing any smart contract upgrades.
  2. Make the vest period equal the deposit period
    • This option requires a smart contract upgrade, detailed in the required actions section.

While the first option is easier to implement, it also makes it more difficult for other protocols to integrate 88mph. For instance, Mushroom Finance is currently using the Compound UNI pool to earn interest, and their smart contract is making 14-day deposits to ensure the liquidity of their funds. If we made the vest period 1 year, smart contracts integrated with us would need to track vested MPH from a long time ago, rather than just assume that all MPH has been vested when a deposit is withdrawn. This makes things much more difficult for them. Therefore, the second option seems better in the long run.

Moreover, with the need to pay back part of the MPH received when a user withdraws their deposit, users who deposit for a short period of time will need to buy MPH from the market to withdraw their funds, which makes for a terrible user experience.

In addition, making the vest period equal the deposit period means the rate of reward is the same regardless of how long a deposit is locked for, removing the incentive for users to make deposits with maximum periods.

Argument against

Having a short vest period makes it more attractive for users to deposit, which would lead to more TVL and more revenue generated for MPH holders. Prolonging the vest period would hurt the TVL growth.

Required actions

The MPHMinter and MPHIssuanceModel01 contracts currently used for minting MPH rewards only support a fixed vest period for each pool. Therefore, they need to be upgraded, which involves:

  • Deploying the modified contracts.
  • Calling MPHMinter::setMPHTokenOwner() on the current MPHMinter to set the owner of the MPH token contract to the new MPHMinter.
  • Calling DInterest::setMPHMinter() on each pool with the new MPHMinter.

The modified MPHMinter and MPHIssuanceModel02 contracts are available here:

1 Like

I think the value gained from boosting TVL at expense of MPH price w/ 1 week vesting is not worth it on balance as MPH holders are more valuable to the ecosystem.


I support upgrading contracts to reflect a vest period equal to the deposit period, even if it’s more difficult in the short term. A fixed vest period (i.e. 270 days) naturally harms short-term depositors and benefits long-term depositors; this proposal would level the playing field.


Vesting period equal to deposit length just seems to be the most intuitive. It makes sense to new users, and makes integration with other projects easier.


Seems like a good idea to make vesting time equal to deposit, it feels “normal”
I myself deposited BTC, received MPH and dumped them for more BTC so it feels like “time machine”:slight_smile: MPH is the only protocol that gives ability to get APR upfront pretty much which is amazing for user but not for a MPH price…
Other thing is TVL must grow for success…for example Badger gives you not the best APR in the world but has 1.5B TVL…why?..I don’t know! MPH is better in my view but some deposit/tokenomics adjustment has to be made.
To boost TVL some crazy APR or upfront APR should be offered.
Some penalty for early withdrawal in form of like half(or more) gains already earned distributed to the protocol(kinda what HEX does) would help.
And finally APR can depend on amount of user MPH holdings(stakes) it will make APR crazy for those who hold/stake MPH instead of dumping straight.

I feel like I disagree with this proposal, but I would definitely like to hear other opinions. It seems like this would benefit MPH in the short term, but have no real long term affect on the price and would damage the value proposition of the protocol.

  1. I don’t see how this proposal would change the amount of MPH being dumped, besides delaying it a bit for each deposit.

  2. Due to the time value of money (and the risk of holding MPH), I would be willing to accept a lower payout up front vs one a year from now. I think this applies to most people, so overall you will have to provide higher MPH rates (inflation) to achieve the same TVL if it can’t be withdrawn up front.

  3. As a depositor, I am interested in fixed rates, and by delaying when MPH is paid out, you turn a fixed rate product into a variable rate with a base. This just seems like a fixed rate product + ponzinomics.

Maybe there are other ways to incentivize people to keep their MPH?

Another idea:

MPH rewards can be withdrawn immediately, but MPH rewards are auto-staked when earned and not withdrawn. For a similar effect, provide MPH high rewards up to the point where rewards are withdrawn. (The longer you keep it deposited, the longer you keep the higher rate)

1 Like

Hey, thanks for sharing your thoughts. Correct me if I’m wrong, your assumption is based on the idea that the vested MPH are claimable only after the vesting period is over, but it’s actually not the case, the MPH are continuously vested. If 52 MPH are vested over a year, it means you can claim one after 1 week.

Hello all,

It appears that the extra cost for minting ZCB hasn’t been brought up up. afaik, to mint A ZCB, you need to deposit the entire MPH rewards for the deposit. If the vesting period equals the deposit length, then anyone wanting to mint A ZCB will have to market buy MPH to do this.

ZCB minted earlier is more appealing to me. Instead of minting late, it would just be better to wait for the deposit right? But minting early will cost a lot of MPH, that only a small amount of your vested rewards will cover.

I just don’t really see the benefit of minting ZCB in this scenario.

1 Like

The reason that users need to deposit MPH to mint ZCBs is the need to pay back MPH when withdrawing deposits. If 8IP-4 passes, the payback will be removed, meaning we can deploy new ZCBs that don’t require MPH deposits.