# FeesVotingReward



## Overview [#overview]

`FeesVotingReward` distributes funded pool fee rewards according to the voting weights recorded for veNFTs. It inherits the accounting and claim methods described in [VotingReward](/docs/technical-reference/contract-functions/votingreward).

<Callout type="info">
  [SGP-19](https://snapshot.box/#/s:spectradao.eth/proposal/0xd1a081c2783ba428627fbafa2a65d9d26571eae45647917d45bd7571d18a493b) routes the pool swap-fee share allocated through the ve(3,3) path to the DAO treasury. Gauge voting is paused under [SGP-20](https://paragraph.com/@spectra/sgp-20-is-now-in-effect-spectra-emissions-reduced-to-zero). These methods describe the reward contract's API; they do not establish a current fee payment to lockers.
</Callout>

## FeesVotingReward Methods [#feesvotingreward-methods]

### notifyRewardAmount [#notifyrewardamount]

Transfer an ERC-20 reward token from the caller to the reward contract and assign it to the current weekly epoch.

```solidity
function notifyRewardAmount(address token, uint256 amount) external
```

| Input Parameter | Type    | Description                                                              |
| --------------- | ------- | ------------------------------------------------------------------------ |
| `token`         | address | The ERC-20 reward token.                                                 |
| `amount`        | uint256 | The nonzero amount to transfer and record, in the token's smallest unit. |

This method is restricted by the contract's [AccessManager](/docs/technical-reference/contract-functions/access-manager) authority. The caller must approve this reward contract to transfer `amount` tokens. A token not already present is added to the reward token list without a bribe-token whitelist check.

At least one voting escrow must be registered at the epoch's start. Funding is split between registered escrows using their weighted voting power at that timestamp when more than one escrow is registered. Rewards for the epoch become claimable after it ends, using `getReward(ve, tokenId, tokens)` or [`Voter.claimFees`](/docs/technical-reference/contract-functions/voter#claimfees).
