> ## Documentation Index
> Fetch the complete documentation index at: https://docs.berachain.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Reward Allocations

> Direct PoL incentives to applications via BeraChef: queue and activate reward allocation changes for your validator.

This guide walks you through managing your validator's reward allocations using BeraChef via Foundry `cast` and the BeraHub UI.

## Requirements

* Active Validator Node
* Validator Operator Wallet Address & Private Key
* Validator PubKey
* [Foundry](https://book.getfoundry.sh/getting-started/installation) using `cast`

## Understanding reward allocations

Each validator can customize how their rewards are distributed across different reward vaults. If no custom allocation is set, a default allocation is used.

**Key concepts:**

* Reward allocations must total 100% (10000 basis points)
* Only whitelisted vaults can receive allocations
* Changes require queuing and a delay period before activation
* Current delay: **500 blocks**

## Option A - Using Foundry CLI

### Step 1 - Check active allocation

Start by checking your validator's current reward allocation:

```bash theme={null}
cast call 0xdf960E8F3F19C481dDE769edEDD439ea1a63426a \
"getActiveRewardAllocation(bytes)" \
"<YOUR_VALIDATOR_PUBKEY>" \
--rpc-url https://rpc.berachain.com/;
```

The output is your validator's `RewardAllocation` struct, a tuple containing:

1. The allocation start block
2. An array of tuples, each containing the vault address and the percentage numerator (adding up to `10000`)

### Step 2 - Queue new allocation

An example command to queue a new allocation resembles the following:

```bash theme={null}
cast send 0xdf960E8F3F19C481dDE769edEDD439ea1a63426a \
"queueNewRewardAllocation(bytes,uint64,tuple(address,uint96)[])" \
"<YOUR_VALIDATOR_PUBKEY>" \
"$START_BLOCK" \
"[(0x12345...,5000),(0x56789...,5000)]" \
--private-key <YOUR_VALIDATOR_OPERATOR_ADDRESS_PRIVATE_KEY> \
--rpc-url https://rpc.berachain.com/
```

<Info>
  Your `START_BLOCK` must be greater than the current block number + the block delay (500 blocks).
</Info>

### Step 3 - Check your queued allocation

Check your new pending allocation:

```bash theme={null}
cast call 0xdf960E8F3F19C481dDE769edEDD439ea1a63426a \
"getQueuedRewardAllocation(bytes)" \
"<YOUR_VALIDATOR_PUBKEY>" \
--rpc-url https://rpc.berachain.com/;
```

Once the `startBlock` is reached, the new allocation will be automatically activated the next time rewards are distributed for your validator.

## Option B - Using BeraHub UI

You can also manage your reward allocations through the Berachain Dashboard:

<Frame>
  <img src="https://mintcdn.com/berachain-422fce37/BkBk8vRdRQK2xmQj/images/nodes/reward-allocation.png?fit=max&auto=format&n=BkBk8vRdRQK2xmQj&q=85&s=7fcdff08b72a3d44313914c060d7f6d5" alt="BeraHub reward allocation management interface" width="1147" height="713" data-path="images/nodes/reward-allocation.png" />
</Frame>

1. Navigate to the [Validator Dashboard](https://hub.berachain.com/validators) on Berachain Hub
2. Connect your validator operator wallet
3. Click **Manage as a validator**
4. Click the **Configuration** tab
5. Select your vaults and choose desired allocation percentages (ensuring they add up to 100%)
6. Click **Queue** and submit the transaction
