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:

  1. GovernanceRewardsManager base rewards

  2. SummerRewardsRedeemer bonus rewards for qualified governance actions

GovernanceRewardsManager.sol

Core Functions:

function stake(uint256 amount) external

Stakes 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 SummerToken

  • Smoothed decay factor

  • Staking period

  • Reward distribution rate

function getRewardFor(address account, address rewardToken) external

Claims accumulated rewards for specified token.

SummerRewardsRedeemer.sol

Core Functions:

function claim(address user, uint256 index, uint256 amount, bytes32[] calldata proof) external

Claims active participation rewards with Merkle verification.

function claimMultiple(address user, uint256[] calldata indices, uint256[] calldata amounts, bytes32[][] calldata proofs) external

Batches multiple reward claims.

Reward Calculation

The GovernanceRewardsManager uses:

  1. Decay smoothing (0.2):

uint256 public constant DECAY_SMOOTHING_FACTOR = DECAY_SMOOTHING_FACTOR_BASE / 5;
  1. 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?