Skip to main content

Overview

AppRewardsDistributor distributes app-specific rewards to holders of that app’s token. Each app has its own distributor instance, funded by the app’s share of collected fees.

Key Functions

Read

FunctionReturnsDescription
earned(uint256 appId, address account)uint256Unclaimed app rewards
rewardRate(uint256 appId)uint256Reward emission rate for app
totalStaked(uint256 appId)uint256Total app tokens staked
stakedBalance(uint256 appId, address account)uint256User’s staked app tokens

Write

FunctionAccessDescription
stake(uint256 appId, uint256 amount)Token holderStake app tokens for rewards
unstake(uint256 appId, uint256 amount)Token holderUnstake app tokens
claim(uint256 appId)Token holderClaim accrued rewards
distribute(uint256 appId, uint256 amount)FeeManagerPush new rewards for an app

Reward Flow

App fees → FeeManager → AppFeeRouter
  → AppRewardsDistributor (app's share)
    → proportional to staked app tokens

Events

EventEmitted When
Staked(uint256 appId, address account, uint256 amount)Tokens staked
Unstaked(uint256 appId, address account, uint256 amount)Tokens unstaked
RewardClaimed(uint256 appId, address account, uint256 amount)Rewards claimed
RewardDistributed(uint256 appId, uint256 amount)New rewards pushed