π°High-Level Architecture
"Live, Laugh, Audit"
Last updated
"Live, Laugh, Audit"
Last updated
The Itos Core is built on three core interfaces: The Portfolio Manager, Producers, and Assets.
The PM is what holds positions for users in collections called portfolios. A user can have multiple portfolios and each calculates solvency separately. This means only positions within one portfolio are cross-margined together.
The PM's primary purpose is to monitor portfolio solvency and properly reward liquidators for closing insolvent portfolios. It tracks newly created assets, values them, and uninstalls assets when a User or Liquidator closes the position.
Producers DeFi Primitives that are plugged into the PM system. They create a variety of assets and pass them to the PM to store in a portfolio. They also report the asset's value and those assets can only be destroyed by a call from the PM.
Familiar Producers are AMMs and Money Markets. Some special producers are Bundlers and Integrators. Bundlers combine positions from other producers in specific ways to give tighter risk bounds and Integrators are wrappers for external protocols whose assets we accept as positions on Itos.
Assets are the actual investment vehicles. Producers report the asset's positive token balances as credits to the PM and their negative balances are debts. Assets can be tokens, LP positions, borrows, lends, perps and more.
Each asset also reports a delta which is a measure of its idiosyncratic risk. For example a simple token would have a small delta where as a perp would have a large delta.
While we often use the word asset and position interchangeably, within the code an asset is specifically the investment vehicle within the scope of the Producer. The producer knows the inner details of the asset and modifies it according to the primitive's behavior. The PM has no idea how an asset behaves which is why we call the investment vehicle a position once we're in the scope of the PM. There we obfuscate the underlying details and only care about the accounting balances.