You’ll find below the complementary specifications regarding what we plan to release in 88mph v3, alongside the 8IPs, currently up and ready for a vote here:
- 8IP#2 - Make depositor reward vest period equal deposit period Snapshot
- 8IP#3 - Distribute MPH staking rewards in MPH Snapshot
- 8IP#4 - Remove MPH payback during withdrawal Snapshot
We recall our commitment to a community-driven approach that these v3 specs aren’t cast in stone. They represent the core team’s vision and we share it to gather your feedback and insights. So feel free to comment on this post and share your thoughts on Twitter, mentioning @88mphapp. We hope that this approach will be the preliminary step to ensure long terms organic growth in an antifragile way for 88mph.
No lockups & simpler accounting
Time-proportional & partial withdrawal of a Fixed-Interest Rate Bond (FIRB)
Currently, if a user withdraws a Fixed-Interest Rate Bond (FIRB) before its maturation date, they need to forfeit all of the promised fixed-rate interest as well as the MPH rewards. In addition, all of the deposited funds will need to be withdrawn, and there is no option to only withdraw part of it. This is bad because:
- Vaults (yearn, Harvest, Badger etc.) cannot easily integrate with 88mph: Vaults need liquidity of its funds in order to fulfill users who wish to exit. Because funds deposited into a 88mph FIRB are locked up, vaults either need to impose lockups on their end users or implement a complex strategy that simulates liquidity by splitting its funds into many small deposits.
- Regular depositors suffer opportunity cost: Fund lockup makes depositing into 88mph unappealing. If a user chooses to deposit, their funds will be locked up until the maturation date, which could be up to a year. As many of us know, the DeFi space is constantly changing, and having funds locked up is a huge opportunity cost. Forcing users to take up this cost in order to use 88mph disincentivizes deposits.
In 88mph v3, there is no fund lockup at all. Instead of the end of the lockup period, a FIRB’s maturation time now denotes the end date of the fixed-rate interest terms that it enjoys. If a FIRB is withdrawn before the maturation time, the user would receive the fixed-rate interest and MPH rewards earned so far. Users can also only withdraw part of a FIRB’s deposit, receiving the interest & rewards earned so far by the withdrawn funds.
This change resolves the two issues mentioned above. The deposited funds are effectively as liquid as funds on floating-rate interest protocols such as Compound and Aave.
Add funds to existing FIRBs & roll over mature FIRBs
Currently, if a user has an existing FIRB and wants to deposit more funds into 88mph, they would need to make a new deposit, with a new FIRB ID. This makes accounting difficult for vaults, since they need to keep track of an unbounded number of non-fungible FIRBs.
88mph v3 allows users to add funds to an existing FIRB. The newly deposited funds would earn interest at the latest fixed interest rate, and can earn interest up to the maturation date of the original FIRB. Mature FIRBs can also be rolled over into a new FIRB. These changes make it possible to build 88mph-based vault strategies that only need to keep track of a single FIRB object at all times, which makes the accounting work super easy.
Transferrable vesting & permissioned redemption
Currently, vested MPH rewards are tied to the depositor address, and it is not possible to transfer them to other addresses. This makes it difficult for smart contracts to integrate with 88mph, because the vested rewards from FIRBs are directed to the contract, rather than to the end users interacting with the contract. Contracts need to do its own accounting work to distribute the vested MPH reward to the end users correctly.
In addition, redeeming vested MPH rewards is currently permissionless, meaning anyone can redeem rewards for anyone else. This makes it possible for people to mess up the accounting of a smart contract.
88mph v3 makes vested MPH rewards transferrable NFTs, which makes accounting easier for contracts that integrate with 88mph. Redeeming vested MPH rewards is also now permissioned, meaning only the owner and the operator of the NFT are allowed to redeem for themselves.
Floating-Rate Bonds (FRB) overhaul
Currently, 88mph uses what is essentially a constrained order book model to sell off its debts in the form of floating rate bonds. FIRBs are put into a queue, and users can fund the debt of either all unfunded FIRBs or a number of consecutive FIRBs starting from the head of the queue. The constraint of only allowing users to buy the debt of consecutive FIRBs means that users are often forced to purchase debt from unattractive FIRBs that receive a high fixed interest rate.
88mph v3 will use a new per-deposit floating rate bond system, where a user can choose to buy the debt of any individual FIRB, regardless of order. This makes the floating rate bond market more efficient, and makes it possible for us to introduce the “add funds to existing FIRB” feature. The downside is losing the ability to buy the debt of bundles of FIRBs or the entire pool.
Fungible floating rate bonds
Since floating rate bonds are now issued on a per-deposit basis, it is now possible to represent them in fungible ERC-20/ERC-1155 tokens instead of the current ERC-721 NFTs, which makes floating rate bonds much easier to trade.
Perpetual yield futures
With the introduction of per-deposit fungible floating rate bonds in 88mph v3, it is now possible to build aggregated floating rate bond ERC-20 tokens on a per-pool basis, which we call perpetual yield futures. The owner of a FRB can use it to mint the perpetual yield futures token of the corresponding 88mph pool based on the remaining profit potential of the FRB. The interest payments received by the FRBs are distributed pro-rata to the perpetual yield futures token holders. The rate at which FRB holders can mint perpetual yield futures increases with time, so that the yield earned by a certain amount of tokens decreases as time passes, simulating the halt of the interest stream directed to an FRB after the underlying FIRB is withdrawn.
The value of a perpetual yield futures token is highly correlated with the health of the underlying 88mph pool and the yield of the underlying floating-rate yield protocol. 88mph perpetual yield futures will be the first perpetual yield-derivative product on Ethereum, making it magnitudes easier to speculate on the yield of protocols like Compound, Aave, Harvest, and yearn.
(Note: some important details of perpetual yield futures have yet to be honed down, so it might not be part of 88mph v3 at launch, and aspects of it may differ from what is described here)
Proxy upgrade pattern
The usage of the proxy pattern allows the team to make upgrades much more easily, as well as allow for bug fixes.
Tightly coupled vesting contract
Currently, if a user wants to withdraw a FIRB and has no MPH in their wallet, they need to first withdraw their vested MPH, or even buy MPH from the market if they are withdrawing before maturation. This makes for bad user experience and requires more transactions than necessary.
88mph v3 will use a new vesting contract where vested MPH is tightly-couple with FIRB. This means that when a user wants to withdraw a FIRB before maturation, instead of asking the user to pay back the entirety of the MPH reward given to the FIRB, the pool will simply stop the remaining vesting stream. This removes any unnecessary transactions in the withdrawal process.
Allow owner to attach metadata to FIRB NFTs
Currently, only the governance treasury multisig has the authorization to attach metadata to the FIRB NFTs. 88mph v3 will allow the owner of a FIRB NFT to update the NFT’s metadata.
Fix interest fee at deposit time
Currently, the fee charged on the fixed-rate interest of a FIRB is determined at the time of withdrawal, rather than the time of deposit. This means that if 88mph makes a change to the fee rate, the change will affect existing FIRBs, making fee model updates unpopular and damages 88mph’s reputation as a fixed-rate interest protocol. 88mph v3 will fix the fee amount at the time of deposit, solving this issue.
Currently, zapping into a 88mph pool that uses a Curve LP token as the deposit token requires at least 2 transactions and at most 4 transactions (the extra transactions are ERC-20 approvals). This is better than simply directing users to Zapper/Curve, but still has bad user experience. The introduction of transferrable vesting in 88mph v3 makes it possible to zap into a pool using at least 1 transactions and at most 2 transactions.