Skip to main content
Reference · Isolated Pools

PoolRegistry.

The factory and registry for every isolated pool. One contract creates pools, deploys their Comptrollers, adds markets, and exposes them for discovery.

Overview

Every isolated pool is registered through PoolRegistry. The contract maintains a catalog of all pools and their metadata, enabling frontends, integrators, and other contracts to discover and interact with available pools. Pool creation is permissioned through governance — only vetted configurations get deployed.

When a new pool is created, PoolRegistry deploys a fresh Comptroller proxy, initializes it with the specified parameters, and records the pool in its internal registry.

Key functions

addPool

Creates a new isolated liquidity pool with the specified configuration.

function addPool(
string calldata name,
address comptroller,
uint256 closeFactor,
uint256 liquidationIncentive,
uint256 minLiquidatableCollateral
) external returns (uint256 index);

addMarket

Adds a new market (RToken) to an existing isolated pool.

function addMarket(AddMarketInput memory input) external;

getAllPools

Returns metadata for all registered isolated pools.

function getAllPools() external view returns (RheoFiProtocolPool[] memory);

getPoolByComptroller

Retrieves pool metadata by its associated Comptroller address.

function getPoolByComptroller(address comptroller) external view returns (RheoFiProtocolPool memory);

getPoolsSupportedByMarket

Returns all pools that support a given underlying asset.

function getPoolsSupportedByMarket(address market) external view returns (uint256[] memory);
Access control

Pool creation and market addition are restricted to governance and authorized callers via the AccessControlManager.