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


---

# 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.affluent.org/factorial-legacy/concept.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.
