Rewards
The Summer Protocol rewards users who participate in governance through SummerToken delegation. Earn $SUMR tokens through two main mechanisms:
Passive Participation
Delegate your voting power through SummerToken to trusted representatives. The GovernanceRewardsManager tracks and distributes rewards based on delegation amount, duration, and decay factors.
Active Participation
Active participants who receive delegated voting power earn rewards from:
GovernanceRewardsManagerbase rewardsSummerRewardsRedeemerbonus rewards for qualified governance actions
GovernanceRewardsManager.sol
GovernanceRewardsManager.solCore Functions:
function stake(uint256 amount) externalStakes SummerToken for governance. Updates decay factors and tracks reward accrual.
function earned(address account, IERC20 rewardToken) public view returns (uint256)Calculates earned rewards considering:
Delegation via
SummerTokenSmoothed decay factor
Staking period
Reward distribution rate
function getRewardFor(address account, address rewardToken) externalClaims accumulated rewards for specified token.
SummerRewardsRedeemer.sol
SummerRewardsRedeemer.solCore Functions:
function claim(address user, uint256 index, uint256 amount, bytes32[] calldata proof) externalClaims active participation rewards with Merkle verification.
function claimMultiple(address user, uint256[] calldata indices, uint256[] calldata amounts, bytes32[][] calldata proofs) externalBatches multiple reward claims.
Reward Calculation
The GovernanceRewardsManager uses:
Decay smoothing (0.2):
uint256 public constant DECAY_SMOOTHING_FACTOR = DECAY_SMOOTHING_FACTOR_BASE / 5;EMA calculation:
function _calculateSmoothedDecayFactor(address account) internal view returns (uint256)Reward Issuances
Governance will periodically issue rewards to this contract on our Hub chain (Base) Rewards accrue on the basis of an amount that can be earned per token staked. The more people stake the more the available rewards are distributed among them.
Last updated
Was this helpful?
