Skip to main content
Reference · Isolated Pools

Comptroller.

The risk-management layer for an isolated pool. Each pool deploys its own instance — fully customizable parameters, complete isolation from every other pool.

Overview

The isolated-pool Comptroller governs all market interactions within its pool: supply, borrow, liquidation, reward distribution. Pool creators and governance configure collateral factors, liquidation incentives, supply/borrow caps, and other risk parameters independently of other pools.

Each Comptroller maintains its own listed markets, user memberships, and risk configurations.

Key functions

enterMarkets

Allows a user to enable specific assets as collateral within the pool.

function enterMarkets(address[] calldata rTokens) external returns (uint256[] memory);
  • rTokens: Array of RToken addresses to enable as collateral.
  • Returns an array of error codes (0 = success).

exitMarket

Removes an asset from the caller's collateral set, provided the removal does not create a shortfall.

function exitMarket(address rTokenAddress) external returns (uint256);

supportMarket

Lists a new RToken market within the pool. Restricted to governance or authorized callers.

function supportMarket(IRToken rToken) external;

setCollateralFactor

Configures the collateral factor for a given market, determining how much borrowing power each unit of collateral provides.

function setCollateralFactor(
IRToken rToken,
uint256 newCollateralFactorMantissa,
uint256 newLiquidationThresholdMantissa
) external;

setMarketBorrowCaps / setMarketSupplyCaps

Sets borrow and supply caps for markets, restricting the maximum amount that can be borrowed or supplied.

function setMarketBorrowCaps(IRToken[] calldata rTokens, uint256[] calldata newBorrowCaps) external;
function setMarketSupplyCaps(IRToken[] calldata rTokens, uint256[] calldata newSupplyCaps) external;

liquidateAccount

Liquidates an account that has fallen below the required collateral threshold.

function liquidateAccount(
address borrower,
LiquidationOrder[] calldata orders
) external;
Access control

All administrative functions are gated through the AccessControlManager. Only authorized governance actions can modify pool parameters — every privileged operation validates permissions before execution.