Skip to main content
Query Ethereum beacon chain data for individual validators by index or BLS pubkey. Mainnet only.
Beacon validator endpoints are an add-on, billed at a set monthly fee separate from your API credit pool. Contact sales to enable beacon access for your account.
Cost: Set monthly fee under the beacon add-on — no per-call credit deduction.
Rate limit: 100 requests/min, on a dedicated beacon bucket (does not count against your portfolio rate limit).

Path parameters

All endpoints accept one of two path-parameter forms:
Note: BLS pubkeys are validator identifiers, not wallet addresses.

Validator Details

Get current state, lifecycle epochs, effective balance, and withdrawal credentials for a single validator.

Endpoints

Response

object
Core validator identity and status.
object
Epoch-level lifecycle milestones. Fields are null when not yet reached.
object
Validator balances as wei strings.
object
Withdrawal credential info. address is only present for 0x01-prefix validators.

Example


Validator Rewards

Paginated reward buckets aggregated by epoch, day, week, or month for a time range. Typical use case: pull daily rewards for a known validator pubkey for portfolio reporting (Lido, Beaver, etc.).
Data availability: Rewards are available from the Merge (epoch 146875, September 15, 2022) onward. If you need data going further back, contact us.

Endpoints

Query Parameters

string
required
Determines how rangeFrom / rangeTo are interpreted.
  • timestamp — values are Unix seconds. Max range: 31,536,000 seconds (1 year).
  • epoch — values are beacon epoch numbers. Max range: 82,125 epochs (1 year).
integer
required
Start of the range (inclusive). Must be ≥ 0 and ≤ rangeTo. Interpreted as Unix seconds or epoch number per rangeType.
integer
required
End of the range (inclusive). Must be ≥ 0. Interpreted as Unix seconds or epoch number per rangeType.
Maximum 1-year range. Cap is 31,536,000 seconds when rangeType=timestamp, 82,125 epochs when rangeType=epoch. For better performance, keep ranges as small as your use case allows.
string
required
Bucket size for aggregation. One of: epoch | day | week | month
number
default:"0"
Pagination offset (number of records to skip).
number
default:"10"
Number of records to return. Max 10.

Response

ValidatorRewardSummary[]
Array of reward buckets.
number
Current pagination offset
number
Records per page
number
Total number of matching buckets
number
Total number of pages

Example


Validator Withdrawals

Paginated list of withdrawals processed for a validator.

Endpoints

Query Parameters

number
default:"0"
Pagination offset.
number
default:"10"
Number of records to return. Max 10.

Response

ValidatorWithdrawal[]
Array of withdrawal events.
number
Current pagination offset
number
Records per page
number
Total number of withdrawals
number
Total number of pages

Example


Validator Deposits

Paginated list of deposits made to a validator.

Endpoints

Query Parameters

number
default:"0"
Pagination offset.
number
default:"10"
Number of records to return. Max 10.

Response

ValidatorDeposit[]
Array of deposit events.
number
Current pagination offset
number
Records per page
number
Total number of deposits
number
Total number of pages

Example


Error Responses

Input validation failed (Joi structured error).
Common causes: invalid :index or :pubkey format, missing required query params, rangeFrom > rangeTo, range exceeding 1-year cap, invalid rangeType or granularity value.
Missing or invalid Bearer token.
Valid token but account does not have enterprise beacon access.
Validator does not exist on mainnet.
Upstream beacon data error.

Use Cases

Aggregate daily rewards across a set of validators and convert wei to ETH for portfolio reporting.

Best Practices

validator.status, lifecycle.*, and withdrawalCredentials.* change on the order of minutes-to-hours, not seconds. Cache details responses for several minutes to cut latency and load.
Reward buckets at granularity=epoch over a one-year range can yield ~82,000 rows. Match the granularity to the range so a single query returns a meaningful page.Going finer than this still works, but you’ll need to paginate (limit is capped at 10) and stitch results together.
Reward and balance fields are returned as decimal strings in wei. Summing across long ranges or many validators can exceed Number.MAX_SAFE_INTEGER — parse with BigInt, divide by 10^18 only at the display step.
limit is capped at 10 for rewards, withdrawals, and deposits. Loop on offset until you’ve consumed totalRows.

Portfolio

Get full portfolio holdings for a wallet address

Transactions

View on-chain transaction history