Managed Portfolio [legacy]
ManagedPortfolio
is in the process of being sunset.
New TrueFi Capital Markets portfolios deployed after June 2022 use contractFlexiblePortfolio
ManagedPortfolio
represents a portfolio of BulletLoans. Lenders put funds into the portfolio, the manager uses funds to issue loans to borrowers, and borrowers repay principal and interest back into the portfolio. ManagedPortfolio
issues ERC-20 Liquidity Provider tokens to lenders in proportion to the amount they lend. These tokens represent a lender's share of the funds in the pool, including the interest accumulated from loans repaid by borrowers.
All of the portfolio operations are up to the manager's discretion. The Portfolio Manager makes decisions about issuing new loans, marking them as defaulted, altering portfolio params and so on. Manager also specifies an ILenderVerifier
contract that is responsible for handling the permissions to join the portfolio (portfolios might be permissionless, but typically are not and only offer entrance to a defined group of lenders).
Portfolio tokens represent lenders' share in the pooled funds. Lenders put funds into the portfolio if they trust the manager is going to abide by a reasonable policy. Funds from the portfolio are only available for withdrawal after the portfolio's close date.
Methods
View Methods
Typical Flows 🌊
Below are examples of typical flows in TrueFi Capital Markets pools:
Manager
createsManagedPortfolio
usingManagedPortfolioFactory
.Lender
lends funds into theManagedPortfolio
.Manager
issues aBulletLoans
token to theManagedPortfolio
(portfolio sends funds to theBorrower
).Borrower
repaysBulletLoans
an owed amount (BulletLoans
will send funds to the debt owner - in this case theManagedPortfolio
).Lender
withdraws funds from theManagedPortfolio
.
Additional actions that might happen:
Manager
can change loan parameters (with aBorrower
's approval if necessary).Manager
can set loan status toDefaulted
ifBorrower
does not return funds on time (and eventually set loan status toResolved
once the debt is settled).Manager
can change variousManagedPortfolio
properties.
BulletLoans is an ERC-721 contract. Each of the tokens represents a single loan. All the loan parameters can be read from LoanMetadata struct. BulletLoans contract enables loan creation, facilitates loan repayment and allows managing the loan's state and parameters.
ManagedPortfolio is an ERC-20 token facilitates funds management and allows loan issuance. Portfolio tokens represent lenders' share in the pooled funds. All of the portfolio operations are up to the managers discretion. Manager makes the decisions about issuing new loans, marking them as defaulted, altering portfolios params and so on. Lenders only lend funds into the portfolio if they trust the manager is going to abide by a reasonable policy. Manager also specifies an ILenderVerifier contract that is responsible for handling the permissions to join the portfolio (portfolios might be permissionless, but typically are not and only offer entrance to a defined group of lenders). Funds from the portfolio are only available for the withdrawal after the final closing date.
ManagedPortfolioFactory
Contract that allows easy portfolio configuration and creation. A particular instance of the factory can only be accessed by whitelisted addresses.
ProtocolConfig
Contract holding key system params.
BorrowerSignatureVerifier
A contract that verifies borrower's consent to change the loan parameters. Manager can freely change the loan parameters in borrower's favour (reduce owned amount, increase time), but needs an explicit, borrower's approval to do the opposite.
ILenderVerifier
Whitelist
A contract that implements simple, universal whitelist.
WhitelistLenderVerifier
A contract that implements a unique whitelist for each of the portfolios, which are using this verifier. Managers of particular portfolios have the authority to manage respective whitelists.
SignatureOnlyLenderVerifier
A contract that requires lender to provide a signature of a predefined message.
Last updated