> For the complete documentation index, see [llms.txt](https://docs.affluent.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.affluent.org/factorial-legacy/concept.md).

# Concept

### Liquidity Pool

The **Liquidity Pool** is a core component of the lending protocol, enabling users to supply assets as collateral, borrow against them, repay debts, and liquidate under-collateralized accounts. The pool manages liquidity, interacts with the oracle for real-time price data, and ensures secure and consistent transactions through the use of an account-locking mechanism.

**Key Functions of the Pool:**

* **Collateral Management**: Users can supply fungible tokens (e.g., stablecoins or other assets) as collateral, which are then locked in the pool to secure loans.
* **Borrowing Mechanism**: Users can borrow assets based on the value of their supplied collateral. The pool calculates each user’s Risk ratio, ensuring that they do not borrow more than allowed.
* **Interest Rate Management**: The pool interacts with the Interest Rate Manager (IRM) to adjust interest rates based on the liquidity status of the pool and overall market demand.
* **Oracle Integration**: The pool requests real-time price data from the **oracle** during borrowing and liquidation operations, ensuring accurate calculations of collateral values and liquidation thresholds.
* **Liquidation Process**: The pool allows users to liquidate underwater accounts by seizing collateral in exchange for settling the borrower's debt.

### Factory

The **Factory** contract is designed to enable permissionless creation of new lending pool contracts. This allows anyone to create a pool without needing special permissions, fostering an open and decentralized environment for lending operations.

{% hint style="info" %}
Once the code is sufficiently tested and proven, it will be opened permissionlessly.
{% endhint %}

**Key Functions of the Factory:**

* **Permissionless Pool Deployment**: The factory allows anyone to deploy and initialize a new **Pool** contract, enabling the protocol to scale in a decentralized manner. This permissionless functionality ensures that no centralized authority controls the creation of pools, making the system truly open.
* **Standardized Pool Initialization**: The factory ensures that all newly created pools follow a consistent and standardized process for setup, ensuring operational integrity across the network.

### Vault

The **Vault** is designed to manage users' assets across multiple pools on their behalf. Since it can be challenging for users to actively monitor and manage their assets across multiple pools in real-time, the vault serves as a middle layer, ensuring efficient asset management via a manager or smart contract. The vault simplifies the interaction for users while maintaining consistent and secure asset management across the system.
