# 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:

```solidity
function stake(uint256 amount) external
```

Stakes `SummerToken` for governance. Updates decay factors and tracks reward accrual.

```solidity
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

```solidity
function getRewardFor(address account, address rewardToken) external
```

Claims accumulated rewards for specified token.

### `SummerRewardsRedeemer.sol`

Core Functions:

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

Claims active participation rewards with Merkle verification.

```solidity
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):

```solidity
uint256 public constant DECAY_SMOOTHING_FACTOR = DECAY_SMOOTHING_FACTOR_BASE / 5;
```

2. EMA calculation:

```solidity
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.

\
\
\ <br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.summer.fi/lazy-summer-protocol/governance/rewards.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
