# 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](https://lenfi.gitbook.io/docs/liquidity-pools/protocol-fees). 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,
}
```
