For the complete documentation index, see llms.txt. This page is also available as Markdown.

Account Rewards

Per-account staking rewards and validator commissions.

The Account Rewards API returns per-account staking rewards and validator commissions for institutional customers. It supplements onchain reward data with commission and account-specific commercial parameters. It currently supports dYdX, Hyperliquid, and Aleo.

Production base URL: https://rewards-api.chorus.one.

Authentication

Pass your API key in the X-API-KEY header on every request. The key implicitly scopes responses to the wallets mapped to your account. To generate and manage keys, see Rewards Dashboard API Keys.

Workflow

  1. Call GET /account-rewards/v1/account once to discover which wallets your key can read and the pre-built URLs for their rewards.

  2. Follow the reward_urls returned from step 1 to fetch daily rewards (/v1/delegator_rewards/...) or commissions (/v1/validator_rewards/...). These are public API paths, so resolve them against https://rewards-api.chorus.one.

  3. Each rewards response is paginated by date. When next_url is non-null, resolve it against https://rewards-api.chorus.one to fetch the next page.

Pagination

Rewards endpoints paginate around a 100-row target, but pages always break on a day boundary. If the 100th and 101st rows fall on the same day, the page is trimmed back so the day is not split, so a non-final page may contain fewer than 100 rows. When more data is available, the response includes a next_url; when it is null, the final page has been returned.

Account

V1 Account

get

The entrypoint to the api. Get the list of wallets and networks that the authenticated API key has access to, along with urls for querying rewards for those wallets. Use reward_urls from the response instead of crafting the urls for rewards endpoints manually.

Authorizations
x-api-keystringRequired
Responses
200

Successful Response

application/json
get/account-rewards/v1/account
GET /account-rewards/v1/account HTTP/1.1
x-api-key: YOUR_API_KEY
Accept: */*
200

Successful Response

{
  "wallets": [
    {
      "address": "text",
      "network_name": "text",
      "wallet_type": "text",
      "entity_name": "text",
      "reward_urls": [
        "text"
      ]
    }
  ]
}

Delegator rewards

V1 Delegator Rewards

get

Rewards for delegations. Use reward_urls from /v1/account endpoint instead of crafting these urls manually.

Authorizations
x-api-keystringRequired
Path parameters
wallet_addressstringRequired

The delegator address. See /v1/account reward_urls for available addresses

base_symbolstringRequired

The symbol for reward token. See /v1/account reward_urls for values for particular networks

networkstringRequired

Network name. Supported networks: dYdX, Hyperliquid, Aleo

Query parameters
from_end_of_day_inclusivestring · date-time · nullableOptional

End of day timestamp (ISO-8601 with time zone). From the beginning if not set

Default: 2024-01-01T00:00:00
to_end_of_day_exclusivestring · date-time · nullableOptional

End of day timestamp (ISO-8601 with time zone). Up to most recent entry if not set

Default: 2100-01-01T00:00:00
Responses
200

Successful Response

application/json
next_urlstring · nullableOptional

Opaque url to the rest of the queried data, null if all of the data was returned. Exact url path is unspecified and are subject to change.

entry_typestringRequired

Type of the rewards array content. Currently always ARV1Rewards, but kept for future extensibility

get/account-rewards/v1/delegator_rewards/{network}/{wallet_address}/{base_symbol}
GET /account-rewards/v1/delegator_rewards/{network}/{wallet_address}/{base_symbol} HTTP/1.1
x-api-key: YOUR_API_KEY
Accept: */*
{
  "next_url": "text",
  "entry_type": "text",
  "rewards": [
    {
      "end_of_day": "2026-01-01T00:00:00.000Z",
      "delegator_address": "text",
      "validator_address": "text",
      "network_name": "text",
      "stake_base_symbol": "text",
      "reward_base_symbol": "text",
      "stake_price_usd": "text",
      "reward_price_usd": "text",
      "stake_amount": "text",
      "daily_rewards": "text",
      "withdrawals": "text",
      "commission_amount": "text",
      "service_fee": "text",
      "rebates": "text",
      "events": [
        {
          "tx_hash": "text",
          "event_name": "text"
        }
      ],
      "service_fee_pct": "text"
    }
  ]
}

Validator rewards

V1 Validator Rewards

get

Commissions for validators. Use reward_urls from /v1/account endpoint instead of crafting these urls manually.

Authorizations
x-api-keystringRequired
Path parameters
wallet_addressstringRequired

The validator address. See /v1/account reward_urls for available addresses

base_symbolstringRequired

The symbol for reward token. See /v1/account reward_urls for values for particular networks

networkstringRequired

Network name. Supported networks: dYdX, Hyperliquid, Aleo

Query parameters
from_end_of_day_inclusivestring · date-time · nullableOptional

End of day timestamp (ISO-8601 with time zone). From the beginning if not set

Default: 2024-01-01T00:00:00Z
to_end_of_day_exclusivestring · date-time · nullableOptional

End of day timestamp (ISO-8601 with time zone). Up to most recent entry if not set

Default: 2100-01-01T00:00:00Z
Responses
200

Successful Response

application/json
next_urlstring · nullableOptional

Opaque url to the rest of the queried data, null if all of the data was returned. Exact url path is unspecified and are subject to change.

entry_typestringRequired

Type of the rewards array content. One of ['ARV1AleoCommissions', 'ARV1Commissions', 'ARV1HyperliquidCommissions']

rewardsany ofRequired
or
or
get/account-rewards/v1/validator_rewards/{network}/{wallet_address}/{base_symbol}
GET /account-rewards/v1/validator_rewards/{network}/{wallet_address}/{base_symbol} HTTP/1.1
x-api-key: YOUR_API_KEY
Accept: */*
{
  "next_url": "text",
  "entry_type": "text",
  "rewards": [
    {
      "end_of_day": "2026-01-01T00:00:00.000Z",
      "validator_address": "text",
      "network_name": "text",
      "stake_base_symbol": "text",
      "commission_base_symbol": "text",
      "stake_price_usd": "text",
      "commission_price_usd": "text",
      "voting_power": "text",
      "daily_commissions": "text",
      "withdrawals": "text",
      "service_fee_pct": "text",
      "service_fee": "text",
      "events": [
        {
          "tx_hash": "text",
          "event_name": "text"
        }
      ]
    }
  ]
}

Last updated

Was this helpful?