Deploys and initializes the Library, DAO and Registry contracts in the system.
Interacts only with the ProtocolDAO to initialize the contracts.
Governor
Conveys system-wide settings such as Expiry support, Currency support, Price Oracle support, etc.
Interacts only with the ProtocolDAO to convey the settings.
Escape Hatch Manager
Initiates escape hatch mechanism in case something goes wrong in the system.
Interacts only with the ProtocolDAO.
Escape Hatch Token Holder
Wallet to which tokens are transferred during the escape hatch process.
Has no interaction with any of the contracts.
External Players
Player
Role
Lender
Motivated to derive profits from the system without taking any risk.
Chooses Interest Pools to contribute to, based on their performance.
Contributes LTokens to Interest Pools, in exchange for their Poolshare Tokens.
Expects the value of the Poolshare Tokens to increase.
Interacts with the Interest Pools when contributing Ltokens to and redeeming Poolshare Tokens from the pools.
Interacts with the CurrencyDAO to wrap / unwrap Tokens to LTokens and vice-versa.
Underwriter
Motivated to contribute to the system by taking a risk.
Chooses Underwriter Pools to contribute to, based on their performance.
Contributes LTokens to Underwriter Pools, in exchange for their Poolshare Tokens.
Expects the value of the Poolshare Tokens to increase.
Interacts with the Underwriter Pools when contributing Ltokens to and redeeming Poolshare Tokens from the pools.
Interacts with the CurrencyDAO to wrap / unwrap Tokens to LTokens and vice-versa.
Borrower
Chooses Underwriter Pools to buy STokens from, based on the price (set by the corresponding pool operator) and the Strike Price of the STokens.
Chooses Underwriter Pools or Interest Pools to buy ITokens from, based on the price (set by the corresponding pool operator).
Interacts with the CurrencyDAO to wrap / unwrap Tokens to LTokens and vice-versa.
Interacts with the InterestPoolDAO to split / fuse LTokens to ITokens + FTokens and vice-versa.
Interacts with the PositionRegistry to borrow a loan of X amounts of Currency when she has sufficient amounts of X ICurrencyTokens and X SCurrencyUnderlyingTokens for that expiry, and X/strike_price of S amounts of FUnderlyingTokens
Interacts with the PositionRegistry to partially or wholly close an active loan.
Interacts with the PositionRegistry to withdraw any remaining FUnderlyingTokens from a liquidated loan.
Pool Operator
Interacts with PoolNameRegistry to register a pool name by staking LST.
Interacts with InterestPoolDao to create an Interest Pool or with UnderwriterPoolDao to create an Underwriter Pool.
Is the owner of the Pool contract.
Interacts with the CurrencyDAO to wrap / unwrap Tokens to LTokens and vice-versa.
Can accept contributions in LTokens to their Pools from anyone, or choose to self-contribute.
li>Can accept contributions in LTokens to their Pools from anyone, or choose to self-contribute.
Interacts with Pool contract to:
Register / deregister MFT support, aka, MFTs that the Pool will sell.
Increase / decrease MFTs offered.
Set MFT prices.
Any / All Players
Any address can:
Optionally interact with the CurrencyDAO to wrap / unwrap Tokens to LTokens and vice-versa.
Optionally interact with the InterestPool DAO to split / fuse LTokens to ITokens + FTokens and vice-versa.
Optionally interact with the UnderwriterPool DAO to split / fuse LTokens to ITokens + STokens + UTokens and vice-versa.