> For the complete documentation index, see [llms.txt](https://docs.moonwell.fi/moonwell/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.moonwell.fi/moonwell/developers/protocol/comptroller/risk-parameters.md).

# Risk Parameters

The following risk parameters control collateral requirements, liquidation behavior, and market caps within the Moonwell Comptroller. All mantissa values are scaled by `1e18`.

### Collateral Factor

The percentage of a supplied asset's value that counts as borrowing power. Set **per market**.

If `collateralFactor = 0.75e18` for USDC, then every $1 of USDC supplied provides $0.75 of borrowing power.

```solidity
// Query
function markets(address mToken) external view returns (bool isListed, uint collateralFactorMantissa)

// Admin setter
function _setCollateralFactor(MToken mToken, uint newCollateralFactorMantissa) external returns (uint)
```

Maximum: `0.9e18` (90%). Stored in the `Market.collateralFactorMantissa` field.

***

### Close Factor

The maximum percentage of a borrower's debt that can be repaid in a single liquidation transaction.

```solidity
// Query
function closeFactorMantissa() public view returns (uint)

// Admin setter
function _setCloseFactor(uint newCloseFactorMantissa) external returns (uint)
```

Typical range: `0.05e18` (5%) to `0.9e18` (90%). Note: the setter performs an admin check only - range validation is **not enforced on-chain**.

***

### Liquidation Incentive

The bonus that liquidators receive on seized collateral, expressed as a multiplier. A value of `1.1e18` means liquidators receive a 10% discount on the collateral they seize.

```solidity
// Query
function liquidationIncentiveMantissa() public view returns (uint)

// Admin setter
function _setLiquidationIncentive(uint newLiquidationIncentiveMantissa) external returns (uint)
```

***

### Price Oracle

The oracle contract used to determine asset prices for collateral calculations. The Comptroller queries the oracle when calculating account liquidity.

```solidity
// Query
function oracle() public view returns (PriceOracle)

// Admin setter
function _setPriceOracle(PriceOracle newOracle) public returns (uint)
```

***

### Borrow Cap

The maximum amount of underlying tokens that can be borrowed from a specific market. A value of `0` means there is no cap.

```solidity
// Query
function borrowCaps(address mToken) public view returns (uint)

// Admin setter (batch)
function _setMarketBorrowCaps(MToken[] calldata mTokens, uint[] calldata newBorrowCaps) external
```

Can be set by the admin or the **Borrow Cap Guardian**.

***

### Supply Cap

The maximum amount of underlying tokens that can be supplied to a specific market. A value of `0` means there is no cap.

```solidity
// Query
function supplyCaps(address mToken) public view returns (uint)

// Admin setter (batch)
function _setMarketSupplyCaps(MToken[] calldata mTokens, uint[] calldata newSupplyCaps) external
```

Can be set by the admin or the **Supply Cap Guardian**.

***

### Reward Distribution

Rewards are distributed via the `MultiRewardDistributor` contract, which supports multiple reward tokens with independent supply-side and borrow-side emission rates per market.

```solidity
// Query the reward distributor
function rewardDistributor() public view returns (MultiRewardDistributor)

// Admin setter
function _setRewardDistributor(MultiRewardDistributor newRewardDistributor) public
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.moonwell.fi/moonwell/developers/protocol/comptroller/risk-parameters.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
