---
# System prepended metadata

title: 88mph v3 specifications

---

# 88mph v3 specifications
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  https://snapshot.org/#/88mph.eth/proposal/QmSZ2M4QXEBBwF16NQpTZWLNrDD1VpAYvJTequskvsz9AW
* 8IP#3 - Distribute MPH staking rewards in MPH https://snapshot.org/#/88mph.eth/proposal/QmepfUBUnxnQcK427APjofUWN8HoyxbpWf1L9u2uY6Nce6
* 8IP#4 - Remove MPH payback during withdrawal https://snapshot.org/#/88mph.eth/proposal/QmVMJzyWVM8nRfV8A1n6z2mpbyFjvzFAYi7BV415aXzYRe

## No lockups & simpler accounting

### Time-proportional & partial withdrawal

Currently, if a user withdraws a deposit 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 88mph 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 deposit's maturation time now denotes the end date of the fixed-rate interest terms that it enjoys. If a deposit 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 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 deposits & roll over mature deposits

Currently, if a user has an existing deposit and wants to deposit more funds into 88mph, they would need to make a new deposit, with a new deposit ID. This makes accounting difficult for vaults, since they need to keep track of an unbounded number of non-fungible deposits.

88mph v3 allows users to add funds to an existing deposit. 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 deposit. Mature deposits can also be rolled over into a new deposit. These changes make it possible to build 88mph-based vault strategies that only need to keep track of a single deposit 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 deposits 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 overhaul

### Per-deposit floating rate bond

Currently, 88mph uses what is essentially a constrained order book model to sell off its debts in the form of floating rate bonds. Deposits are put into a queue, and users can fund the debt of either all unfunded deposits or a number of consecutive deposits starting from the head of the queue. The constraint of only allowing users to buy the debt of consecutive deposits means that users are often forced to purchase debt from unattractive deposits 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 deposit, 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 deposit" feature. The downside is losing the ability to buy the debt of bundles of deposits 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 deposit  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)

## Miscellaneous

### 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 deposit 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 deposits. This means that when a user wants to withdraw a deposit before maturation, instead of asking the user to pay back the entirety of the MPH reward given to the deposit, the pool will simply stop the remaining vesting stream. This removes any unnecessary transactions in the withdrawal process.

### Allow owner to attach metadata to deposit NFTs

Currently, only the governance treasury multisig has the authorization to attach metadata to the deposit NFTs. 88mph v3 will allow the owner of a deposit NFT to update the NFT's metadata.

### Fix interest fee at deposit time

Currently, the fee charged on the fixed-rate interest of a deposit 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 deposits, 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.

### Single-transaction zaps

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.

