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

# Claim rewards

> Collect additional token incentives distributed by yield vaults.

Some vaults distribute additional token incentives on top of base yield. Collect these with the [claim](/api-reference/wallets/earn/incentive-claim) endpoint. Claims operate at the chain level — pass a chain name rather than a vault ID. For apps with multiple vaults on the same chain, a single claim collects rewards across all vaults. Claiming rewards is separate from withdrawing yield — it does not affect withdrawals or ongoing earnings.

<Info>
  View the full [API reference](/api-reference/wallets/earn/incentive-claim) for the claim endpoint.
</Info>

<Tip>
  If your app has gas sponsorship configured, usage of the `/earn/ethereum/incentive/claim` endpoint
  will be [gas-sponsored by default](/wallets/actions/overview#gas-management). There is no need to
  specify additional parameters for sponsorship.
</Tip>

## Usage

<Tabs>
  <Tab title="REST API">
    To claim rewards via REST API, make a `POST` request to:

    ```bash theme={"system"}
    https://auth.privy.io/api/v1/wallets/{wallet_id}/earn/ethereum/incentive/claim
    ```

    ### Parameters

    <ParamField path="chain" type="string" required>
      The blockchain network on which to perform the incentive claim (e.g. `"base"`, `"ethereum"`, `"arbitrum"`). Claims collect rewards across all vaults on the specified chain.
    </ParamField>

    <Info>
      Wallets with `owner_id` present must provide an [authorization
      signature](/api-reference/authorization-signatures) as a request header for claim operations.
    </Info>

    ### Returns

    <ResponseField name="id" type="string">
      The wallet action ID. Use this to poll status with [get wallet action](/api-reference/wallets/actions/get).
    </ResponseField>

    <ResponseField name="wallet_id" type="string">
      The ID of the wallet claiming rewards.
    </ResponseField>

    <ResponseField name="type" type="string">
      The action type. Always `"earn_incentive_claim"` for this endpoint.
    </ResponseField>

    <ResponseField name="status" type="'pending' | 'succeeded' | 'rejected' | 'failed'">
      The current status of the claim action.
    </ResponseField>

    <ResponseField name="chain" type="string">
      The chain name for the claim.
    </ResponseField>

    <ResponseField name="rewards" type="array | null">
      List of rewards claimed, each with `token_address`, `token_symbol`, `token_decimals`, and `amount`. Populated after the preparation step fetches claimable rewards.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 timestamp of when the action was created.
    </ResponseField>

    <ResponseField name="steps" type="array | undefined">
      The execution steps. Only returned if `?include=steps` is provided on a GET request.
    </ResponseField>

    ### Example

    ```bash theme={"system"}
    curl -X POST https://auth.privy.io/api/v1/wallets/{wallet_id}/earn/ethereum/incentive/claim \
      -H "privy-app-id: <your-app-id>" \
      -H "Authorization: Basic <credentials>" \
      -H "Content-Type: application/json" \
      -d '{
        "chain": "base"
      }'
    ```

    ```json Example response theme={"system"}
    {
      "id": "<action-id>",
      "wallet_id": "<your-wallet-id>",
      "type": "earn_incentive_claim",
      "status": "pending",
      "chain": "base",
      "rewards": [
        {
          "token_address": "0x1234567890abcdef1234567890abcdef12345678",
          "token_symbol": "MORPHO",
          "token_decimals": 18,
          "amount": "115631364898103632676"
        }
      ],
      "created_at": "2025-04-01T12:00:00.000Z"
    }
    ```
  </Tab>
</Tabs>

<Tip>
  Track the claim by polling [get wallet action](/api-reference/wallets/actions/get) or listening
  for the
  [`wallet_action.earn_incentive_claim.succeeded`](/api-reference/webhooks/wallet-action/earn-incentive-claim/succeeded)
  webhook.
</Tip>

## Next steps

<Card title="Get vault position" icon="chart-line" href="/wallets/actions/earn/get-vault-position" arrow>
  Query a wallet's holdings and calculate earned yield.
</Card>
