3 variable AMM
Timeswap works on a unique 3 variable constant product equation where interest rates & collateral factors are all market-driven and there is no dependency on oracles & liquidators. This makes us a complete self-sufficient protocol that is fully permissionless & oracle-less. Anybody can create a pool with any ERC20 token as collateral & any other ERC20 token as an asset being lent/borrowed.
Inspired from Uniswap's constant product equation, Timeswap works on a 3 variable constant product formula-
Principal Pool is a virtual pool and is equal to the amount of assets in the pool that can be borrowed. It's equal to the sum of the assets deposited by the lenders
Interest Rate Pool is a virtual pool that determines the interest amount per second of the pool, such that ratio
is the per second average interest rate for the duration of the transaction to the maturity of the pool.
Collateral Factor Pool is a virtual pool that determines the collateral to be locked by the borrowers such that ratio
is the average collateral factor. It's used to calculate the expected average loan to value at the time of the transaction
Invariance Constant product
Additionally, there are two other pools :
Collateral Locked Pool and is equal to the amount of ERC20 collateral tokens locked in the pool by borrowers
Asset Pool and is equal to the amount of ERC20 asset tokens locked in the pool. It is the sum of assets lent by lenders & the debt paid by the borrowers
While interacting with the pools, Lenders & Borrowers change the variables such that constant product is always maintained. Lending more assets into the asset pool decreases the interest & Collateral value to be locked, whereas, borrowing more assets from the asset pool increases the interest & Collateral value to be locked.