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:
GovernanceRewardsManager
base rewardsSummerRewardsRedeemer
bonus rewards for qualified governance actions
GovernanceRewardsManager.sol
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
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:
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?