Index Vault behavior is very similar to Credit Vaults, with exceptions in the following areas:
Instead of loans, IVs utilize an instrument called Investment
to deploy funds.
Investments
are LP positions at non-IV vaults on TrueFi.
Because TrueFi vaults implement the ERC-4626 interface, interactions with all types of TrueFi vaults work the same way.
Instead of an array of loans, IVs hold an array of investments
.
When calculating IV valuations, the IV iterates through that array and calls ERC-4626 totalAssets()
on each of the underlying vaults to fetch the value of each investment
.
Capital allocation happens through proxying one of the following methods:
deposit(assets, receiver)
mint(shares, receiver)
Allocation is only possible if the target vault’s token is already registered on the vaultsRegistry
.
Adding a token as a potential investment
adds the token to the list of tracked asset balances and values.
In order to register
a token, the token must:
Be one of the allowlisted types of TrueFi products (i.e. Lines of Credit, Credit Vaults, or Flexible Portfolios)
Not be registered already
unregister
removes a token from the tracked assets list.
Redeeming and withdrawing happens through proxying one of the following methods:
withdraw(assets, receiver, owner)
redeem(shares, receiver, owner)
Index Vaults cannot be closed while holding any active investment
. Similar to how vaults cannot close before maturity unless all underlying loans are inactive, IVs cannot close unless all investments
have closed first.