# Index Vault technical details

## Technical considerations

Index Vault behavior is very similar to [Credit Vaults](https://docs.brila.finance/brila-protocol/credit-vaults), with exceptions in the following areas:

### Capital Deployment

Instead of loans, IVs utilize an instrument called `Investment` to deploy funds.

`Investments` are LP positions at non-IV vaults on TrueFi.&#x20;

Because TrueFi vaults implement the ERC-4626 interface, interactions with all types of TrueFi vaults work the same way.

### Valuation

Instead of an array of loans, IVs hold an array of `investments`.&#x20;

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`.

### Investment Flow

#### Allocating Capital

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`.&#x20;

#### Adding tokens to the vaultsRegistry

Adding a token as a potential `investment` adds the token to the list of tracked asset balances and values.&#x20;

In order to `register` a token, the token must:

* Be one of the allowlisted types of TrueFi products (i.e. [Lines of Credit](https://docs.brila.finance/brila-protocol/automated-lines-of-credit), [Credit Vaults](https://docs.brila.finance/brila-protocol/credit-vaults), or [Flexible Portfolios](https://docs.brila.finance/brila-protocol/other-concepts/other-legacy-contracts/flexible-portfolios-legacy/flexible-portfolio-contracts))
* Not be registered already

#### Removing tokens from the vaultsRegistry

`unregister` removes a token from the tracked assets list.

#### Redeeming / withdrawing

Redeeming and withdrawing happens through proxying one of the following methods:

* `withdraw(assets, receiver, owner)`
* `redeem(shares, receiver, owner)`

## Closing Vaults

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.
