Universal Lending Pool

Perpetual/Floating Rate

A universal lending pool is a vault<-> (isolated lending pool)s architecture that accepts any set of collateral/credit conditions, such as illiquid tokens or NFTs or a certain credit criterion(assuming a composable identity layer). See the diagram in the Borrowing from the pool below.

A RAMMLend's vault could host multiple lending pools where its collateral is either a singleton or a combination of collaterals. A lending pool will be supplied/withdrawn by the vault when managers issue or redeem longZCB.

Adding a new pool

A new lending pool can be added to the vault by anyone. The following information needs to a provided either through the UI or contract calls. More details in parameter details

// 1. CollateralInfo[], for each collateral. Includes params
// such as maxBorrowAble amount per unit collateral, collateral address, etc
struct CollateralInfo

// 2. Interest Rate Parameters
struct RateParams

// 3. Tranche Parameters applicable for all perpetual instruments, parametrizes the junior vs senior profit split 
struct PoolData

Supplying to the pool

Whenever a manager issues longZCB for the given pool, the collateral presented + capital from the vault will be allocated to the lending pool.

Drawing
High level of backend logic of supplying

Withdrawing from the pool

Whenever a manager redeems longZCB for the given pool, the protocol withdraws funds from the lendingPool back to the vault, and the manager will realize his profit.

Drawing
High level backend logic of withdrawing

Borrowing from the pool

Drawing
Dotted lines denotes capital is allocated from vault by the managers

Investing in the pool directly

An LP could also directly invest in the pool.

Drawing

Last updated