Core Contracts

The following contracts are the main contracts for INIT:

InitCore

InitCore is the main entry point to interact with INIT. Users can lend and withdraw from lending pools, create positions, collateralize and de-collateralize, and borrow and repay on their positions. InitCore allows liquidity hooks to call external contracts via callback function.

PosManager

PosManager stores positions created by InitCore. When users adjust their positions through InitCore, their actions update the position storages in PosManager.

LendingPool

Lending pools, like other lending protocols, serve as the liquidity market for lenders and borrowers. Borrowers pay borrow interests while lenders earn lending interests configured by the pool's interest rate model.

Lending pools only accept ERC-20 tokens as their underlying tokens. Hence, native and rebase tokens must be wrapped into ERC-20 tokens before being transferred into the pools.

Config

Config stores parameters on all INIT contracts including lending pools, modes, token collateral and borrow factors, etc. The parameters can only be set by access controllers which are governed by INIT's guardian and governor roles.

RiskManager

RiskManager oversees the risk on different modes of INIT. It disallows positions in a mode to borrow tokens more than the allowed debt ceiling from the lending pools.

Miscellaneous

Other contracts that build up INIT such as a liquidation incentive calculator, lending pools' interest rate models, and oracles.

Last updated