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

# Optimize Rewards

Two steps maximize your rewards earnings. Complete both for every payout group.

* **Associate unassigned addresses** — Reward addresses with no payout group do not accrue rewards. Assign them to start earning rewards.
* **Register your payout destination** — If the address where rewards are paid out is also registered for monitoring, claimed rewards continue to compound at the claim frequency.

## Associate All Addresses

> **Required scopes:** `rewards:read_monitoring_address` to list, `rewards:write_monitoring_address` to update.

### ➊ Find unassigned addresses

Use [List Reward Addresses](/api-reference/endpoints/reward-addresses/list-reward-addresses) and pass the zero UUID as `payout_group_id`. The API returns only addresses that have no payout group assigned.

<Expandable title="Request">
  ```bash highlight={3} theme={null}
  curl -G 'https://api.sandbox.paxos.com/v2/rewards/addresses' \
    -H 'Authorization: Bearer {access_token}' \
    --data-urlencode 'payout_group_id=00000000-0000-0000-0000-000000000000'
  ```
</Expandable>

<Expandable title="Response">
  ```json highlight={5} theme={null}
  {
    "items": [
      {
        "id": "{reward_address_id}",
        "payout_group_id": null,
        "address": "0xabc123...def456",
        "asset_type": "USDG",
        "ledger": "ETHEREUM",
        "name": "Treasury Wallet 1",
        "status": "UNREGISTERED"
      }
    ]
  }
  ```
</Expandable>

Record the `id` and `ledger` for each address returned.

If the response is empty, all of your addresses are already associated — skip to [Register Payout Addresses](#register-payout-addresses).

### ➋ Ensure a payout group exists for each chain

Payout groups are chain-specific. Each address must be assigned to a payout group on the same network.

> If you already have a payout group for each chain, skip to [➌ Assign](#-assign-each-address). Otherwise, create one first — see [Create a Payout Group](/guides/developer/rewards-engine/create-payout-group).

### ➌ Assign each address

Use [Update Reward Address](/api-reference/endpoints/reward-addresses/update-reward-address) to set the `payout_group_id` on each address.

<Warning>
  **Update the address — do not re-submit it.** Creating a new entry with the same on-chain address will silently succeed without updating the payout group assignment. Only `PUT /v2/rewards/addresses/{id}` correctly moves an existing address into a payout group.
</Warning>

<Expandable title="Request">
  ```bash highlight={5} theme={null}
  curl -X PUT "https://api.sandbox.paxos.com/v2/rewards/addresses/{reward_address_id}" \
    -H 'Authorization: Bearer {access_token}' \
    -H 'Content-Type: application/json' \
    -d '{
      "address": {
        "payout_group_id": "{payout_group_id}"
      }
    }'
  ```
</Expandable>

<Expandable title="Response">
  ```json highlight={4,5} theme={null}
  {
    "address": {
      "id": "{reward_address_id}",
      "payout_group_id": "{payout_group_id}",
      "status": "UNREGISTERED",
      "address": "0xabc123...def456",
      "ledger": "ETHEREUM"
    }
  }
  ```
</Expandable>

The address status returns to `UNREGISTERED` and on-chain registration begins automatically. Repeat for each unassigned address.

### ➍ Confirm registration

Poll [List Reward Addresses](/api-reference/endpoints/reward-addresses/list-reward-addresses) filtered to your payout group until each address shows `status: ACTIVE`.

| Status                              | Meaning                                                          |
| ----------------------------------- | ---------------------------------------------------------------- |
| `UNREGISTERED`                      | Awaiting on-chain registration                                   |
| `PENDING_REGISTRATION`              | Registration in progress                                         |
| `ACTIVE`                            | Registered and accruing rewards                                  |
| `UNREGISTERED_INSUFFICIENT_BALANCE` | Balance below the \$1 minimum; retried automatically once funded |
| `FAILED_REGISTRATION`               | Contact [Support](https://support.paxos.com)                     |

<Note>
  Rewards are not retroactive. Accrual begins on the day an address reaches **ACTIVE** status.
</Note>

## Register Payout Addresses

When rewards are claimed, they are sent to each payout group's destination address. If that destination address is also registered for monitoring, the paid out rewards will also accrue, further compounding your rewards.

> **Required scope:** `rewards:write_monitoring_address`

### ➊ Find each payout group's destination address

Use [List Payout Groups](/api-reference/endpoints/payout-groups/list-payout-groups) to retrieve the `destination_address` for each group:

<Expandable title="Request">
  ```bash theme={null}
  curl -G 'https://api.sandbox.paxos.com/v2/rewards/payout-groups' \
    -H 'Authorization: Bearer {access_token}'
  ```
</Expandable>

<Expandable title="Response">
  ```json highlight={5} theme={null}
  {
    "groups": [
      {
        "id": "{payout_group_id}",
        "destination_address": "0xdef456...abc123",
        "ledger": "ETHEREUM",
        "asset_type": "USDG"
      }
    ]
  }
  ```
</Expandable>

### ➋ Check if the destination address is already registered

```bash theme={null}
curl -G 'https://api.sandbox.paxos.com/v2/rewards/addresses' \
  -H 'Authorization: Bearer {access_token}' \
  --data-urlencode "payout_group_id={payout_group_id}"
```

If the destination address already appears in the response, it is registered — skip to the next payout group.

### ➌ Register the destination address

Use [Create a Reward Address](/api-reference/endpoints/reward-addresses/create-reward-address) to add the destination address as a monitored reward address in its own payout group:

<Expandable title="Request">
  ```bash highlight={5,6,7,8} theme={null}
  curl -X POST 'https://api.sandbox.paxos.com/v2/rewards/addresses' \
    -H 'Authorization: Bearer {access_token}' \
    -H 'Content-Type: application/json' \
    -d '{
      "address": {
        "address": "{destination_address}",
        "payout_group_id": "{payout_group_id}",
        "asset_type": "USDG",
        "name": "Payout Destination"
      }
    }'
  ```
</Expandable>

Repeat for each payout group whose destination address is not already registered.

## Next steps

<CardGroup cols={2}>
  <Card title="Monitor Reward Details" icon="chart-line" href="/guides/developer/rewards-engine/monitor-reward-details">
    Check current rates, accruals, and available rewards
  </Card>

  <Card title="View Claims" icon="circle-check" href="/guides/developer/rewards-engine/view-claims">
    Track payout history and claim status
  </Card>
</CardGroup>

> Questions? Contact [Support](https://support.paxos.com).
