# Smart Contracts

The  [Cadmos ](https://www.cadmos.finance/)**InvestmentPool** is composed of one core smart contract:

* **InvestmentPoolCore**: which is the main contract of the Cadmos Investment Pool solution. It contains all the logic relative to the Investment Pool Liability Management.

as well as of six satellites:

* **InflowPool**: which is used to pool investor deposits while waiting for the next **Batch-Settlement**.
* **OutflowPool**: which is used to pool investor withdrawals while waiting for the next **Batch-Settlement**.
* **SimpleAdministrator**: an Investment Pool Administration contract which includes an Administrator right restriction system.
* **Distributor**: which is used to store and distribute rewards to the Investment Pool tokenholders.
* **RewardManager**: which handles the logic of reward computation and payment.
* **Whitelist**: which is used to store a list of whitelisted agents.

Global protocol variables are defined within the **ProtocolRegistry**.

\--> InvestmentPool **Deployment** is handled via the **InvestmentPoolFactory** smart contract.

**Hint**: Take a look at our [Github repo](https://github.com/Cadmos-finance/Vault).

The **InvestmentPool** is designed to be highly modulable and functionalities such as oracle-based **NAV** evaluation or trustless strategies may be incorporated by setting up **Investment Pool Administration** or the **Treasury** as purpose-built smart contracts.
