There will be corresponding tTokens for all deposits in M0. The minting number of all debt s/vTokens will not exceed the total number of tTokens. In M0, s/vTokens will be generated with users' interaction. Similarly, in M1, users can also use their Yield Bearing Tokens as collaterals to borrow. The total borrow amount will not exceed the amount of tToken. There are certain restrictions on the allocation of M1 in order to preserve the liquidity in M0.
- Each collateral category of M1 is regarded as a separate pool. The pool here refers to the pool of collateral itself as a third-party protocol (for example, the management contract address 0x of Uniswap-V3-POS USDC/USDT 500... is a pool, all Token IDs in its directory are in the same Category, and similarly, the contract address of UNI-V2-LP USDC/USDT is also a Category)
- The collateral of each pool can be collateralized in M0 for tToken, and s/vToken will be minted for debt.
- There will be a maxBorrowLimitInBaseCurrency parameter to limit the maximum borrow amount from M0 in the pool (for example, the maxBorrowLimitInBaseCurrency of BPT-BAL80/WETH20 is $1M, then any new collateral BPT-BAL80/WETH20, which will lead the total debt amount exceeding $1M, will be terminated.)
When the collateral of M1 generates debt, the corresponding debt Token of s/vToken will also be generated, and the borrower needs to repay enough Tokens to destroy the debt Tokens. When all debt tokens are destroyed, the collateral assets will be fully redeemed. Before that, the assets will be collateralized in the corresponding tToken.
In order to prevent M1 collateral from occupying too much M0 liquidity, there will be a MaxBorrowLimit for each collateral asset, that is, the total value of the assets can be lent. If a new borrow will cause the total debt of the collateral to exceed the MaxBorrowLimit, then that borrow will be rejected.