> For the complete documentation index, see [llms.txt](/llms.txt)

# Claiming prover rewards

Prover rewards accrue per epoch on the Rollup contract and are claimed with a different function than sequencer rewards. This page covers how to find what you are owed and how to claim it.

## How prover rewards accrue

When your prover submits the epoch proof, your `PROVER_ID` address is recorded as having a share of that epoch's prover reward pool. Your reward for an epoch is your share of that pool: `yourShares × epochRewards / totalShares`. Rewards become claimable only **after the epoch's proof submission deadline has passed**.

`PROVER_ID` is the address you set in your prover node config (by default, the address derived from `PROVER_PUBLISHER_PRIVATE_KEY`). Rewards for an epoch are always paid **to that address**.

## Find your claimable epochs

Enter your RPC, Rollup address, and `PROVER_ID` below. This runs read-only calls against the Rollup to find every recent epoch where you have an unclaimed reward, and assembles the exact claim command with the epoch list filled in. Nothing is signed here and no keys are entered; you run the generated command yourself.

<!-- -->

`claimProverRewards` takes an **array of epochs**, so one transaction claims them all. It skips epochs you already claimed, and reverts if any listed epoch has not yet passed its proof deadline.

### You do not need your prover key to claim

The address that submits the claim (and pays the gas) does **not** have to be your `PROVER_ID`. The contract reads your rewards by the `PROVER_ID` argument and pays them to that address regardless of who sent the transaction. So you can claim from any funded wallet (for example a separate gas-paying account) and the rewards still land at your `PROVER_ID` address. Your prover key only needs to sign later, if and when you move the claimed funds.

### Claiming manually

The helper above generates the claim command for you. To run the calls by hand, or to check epochs older than the helper's scan window, the functions on the Rollup contract are (set `$RPC_URL`, `$ROLLUP`, and `$PROVER_ID` to your RPC, the [Rollup address](#rollup-contract-addresses), and your prover address):

```bash
# Read-only: pending reward for one epoch (0 if nothing, or already claimed)
cast call $ROLLUP "getSpecificProverRewardsForEpoch(uint256,address)(uint256)" [EPOCH] $PROVER_ID --rpc-url $RPC_URL

# Claim one or more epochs (pays your PROVER_ID address)
cast send $ROLLUP "claimProverRewards(address,uint256[])" $PROVER_ID "[EPOCH_1,EPOCH_2]" --rpc-url $RPC_URL --private-key [GAS_PAYER_PRIVATE_KEY]
```

## Rewards after a rollup upgrade

Rewards you earned before a rollup upgrade stay on the prior Rollup contract. To claim them, call `claimProverRewards` against that contract's address as well as the current one.

### Rollup contract addresses

**Mainnet:**

| Rollup                 | Address                                      |
| ---------------------- | -------------------------------------------- |
| Current canonical (v6) | `0xE37A2663Cc9c119BA41572C40fAb0bbb23a5402f` |
| Previous (v5)          | `0x91fF8bbD8Ebb07893010D50A48A1609e5EBd8E34` |
| Previous (v4)          | `0xAe2001f7e21d5EcABf6234E9FDd1E76F50F74962` |

**Testnet (Sepolia):**

| Rollup                          | Address                                      |
| ------------------------------- | -------------------------------------------- |
| Current canonical (v6)          | `0x1f435a7F2dA358caF887A470FAeEE7d5D5f4eFBA` |
| Previous (v6 release candidate) | `0xEd1eB2eB670b42E2fB5A478c076A264b9604089d` |
| Previous (v6 release candidate) | `0x8c2fb2A68A3d362ab1DE99E06F83f8903160BbD9` |
| Previous (v5)                   | `0xD73A91bdcF6891C7642F3e460036e1ef2CC23178` |
| Previous (v4)                   | `0xE4394F118B115De2bDad88Ee1abd599cf5d25c70` |

The current canonical address is always whatever `getCanonicalRollup()` returns on the Aztec Registry: `0x35b22e09ee0390539439e24f06da43d83f90e298` on mainnet, `0xa0bfb1b494fb49041e5c6e8c2c1be09cd171c6ba` on testnet. A testnet relaunch deploys a new Rollup, so confirm against the Registry if you are unsure which is current.

Reward claiming is enabled on both mainnet and testnet, so accrued rewards can be claimed.

## See also

* [Prover setup](/operate/operators/prover/setup.md): generating the prover key and setting `PROVER_ID`
* [Claiming rewards](/operate/operators/concepts/claiming-rewards.md): the sequencer and provider reward paths
