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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cadmos.finance/dev-resources/smart-contracts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
