Skip to main content
Some vaults distribute additional token incentives on top of base yield. Collect these with the 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.
View the full API reference for the claim endpoint.

Usage

To claim rewards via REST API, make a POST request to:
https://auth.privy.io/api/v1/wallets/{wallet_id}/earn/ethereum/incentive/claim

Parameters

chain
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.
Wallets with owner_id present must provide an authorization signature as a request header for claim operations.

Returns

id
string
The wallet action ID. Use this to poll status with get wallet action.
wallet_id
string
The ID of the wallet claiming rewards.
type
string
The action type. Always "earn_incentive_claim" for this endpoint.
status
'pending' | 'succeeded' | 'rejected' | 'failed'
The current status of the claim action.
chain
string
The chain name for the claim.
rewards
array | null
List of rewards claimed, each with token_address, token_symbol, and amount. Populated after the preparation step fetches claimable rewards.
created_at
string
ISO 8601 timestamp of when the action was created.
steps
array | undefined
The execution steps. Only returned if ?include=steps is provided on a GET request.

Example

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"
  }'
Example response
{
  "id": "<action-id>",
  "wallet_id": "<your-wallet-id>",
  "type": "earn_incentive_claim",
  "status": "pending",
  "chain": "base",
  "rewards": [
    {
      "token_address": "0x1234567890abcdef1234567890abcdef12345678",
      "token_symbol": "MORPHO",
      "amount": "115631364898103632676"
    }
  ],
  "created_at": "2025-04-01T12:00:00.000Z"
}
Track the claim by polling get wallet action or listening for the wallet_action.earn_incentive_claim.succeeded webhook.

Next steps

Get vault position

Query a wallet’s holdings and calculate earned yield.