# Protocol Parameters

The protocol contains various types of parameters required for stabilized lending markets. These parameters can be grouped into three categories:

1. **Validator Parameters**: These are not easily changed. They are hardcoded values, and changing them would result in a new smart contract address.
2. **Fixed Pool Parameters**: These are applied to every pool at the time of its creation. The values cannot be changed for an existing pool, although every new pool can have different values.
3. **Adjustable Pool Parameters**: These values can be changed at any time by the DAO.

{% hint style="info" %}
Upon mainnet launch, the pool parameters will be controlled by the developer team. At a later stage, control will be transferred to direct DAO governance.
{% endhint %}

#### Validator Parameters

* Interest rate calculation
* Price feed expiration time and maturity
* Token swap fee

#### Fixed Pool Parameters

These are fixed for every new pool created and cannot be changed.

```rust
pub type Constants {
  collateral_address: Address,
  loan_cs: AssetClass,
  collateral_cs: AssetClass,
  oracle_collateral_nft: AssetClass,
  oracle_loan_nft: AssetClass,
  lp_token: AssetClass,
  pool_nft_name: AssetName,
  pool_config_assetname: AssetName,
}

```

#### Adjustable Pool Parameters

Each created pool has its Config NFT, which can be adjusted at any time. Mostly it's a fee you can find details about in [here](/docs/liquidity-pools/protocol-fees.md). Simply put, this allows for:

* Changing the Liquidation Threshold/Initial Collateral Ratio for every new loan
* Setting the pool fee amount required to interact with the pool (default is 0)
* Specifying the loan fee, which is paid to the wallet address when the loan is being repaid or liquidated

```rust
pub type Config {
  liquidation_threshold: Int,
  initial_collateral_ratio: Int,
  pool_fee: Int,
  loan_fee_details: PlatformFeeDetails,
}

pub type PlatformFeeDetails {
  tier_1_fee: Int,
  tier_1_threshold: Int,
  tier_2_fee: Int,
  tier_2_threshold: Int,
  tier_3_fee: Int,
  tier_3_threshold: Int,
  liquidation_fee: Int,
  platform_fee_collector_address: Address,
}
```


---

# 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://lenfi.gitbook.io/docs/liquidity-pools/protocol-parameters.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.
