Skip to main content

Rewards Distributor

The RewardsDistributor contract manages the distribution of incentive tokens to suppliers and borrowers within an isolated liquidity pool. Each pool can have multiple RewardsDistributor instances, each distributing a different reward token.

Overview

Isolated pools support multiple reward tokens through independent RewardsDistributor contracts. Each distributor is configured with per-market emission speeds for both supply-side and borrow-side rewards, enabling fine-grained incentive alignment for each market within a pool.

Rewards accrue automatically as users interact with the pool. Users can claim accumulated rewards at any time.

Key Functions

setRewardTokenSpeeds

Configures the emission rate of the reward token for specified markets. Separate speeds can be set for supply and borrow sides.

function setRewardTokenSpeeds(
IRToken[] calldata rTokens,
uint256[] calldata supplySpeeds,
uint256[] calldata borrowSpeeds
) external;

claimRewardToken

Claims all accumulated reward tokens for the caller across specified markets.

function claimRewardToken(address holder, IRToken[] calldata rTokens) external;

setLastRewardingBlock

Sets the block number after which rewards will no longer accrue for a market.

function setLastRewardingBlock(
IRToken[] calldata rTokens,
uint32[] calldata supplyLastRewardingBlocks,
uint32[] calldata borrowLastRewardingBlocks
) external;

Access Control

Emission speed configuration and administrative functions are restricted to governance via the AccessControlManager.

See Also