Overview
For tax reporting, you need per-epoch reward data to calculate the fiat value of rewards at the time they were received. This requires iterating through epochs using the Custom Range Rewards approach.API Endpoint: This guide uses
/api/v2/ethereum/validators/rewards-list for per-epoch reward data required for tax calculations.Why Per-Epoch or Per-Day Data is Required
Most tax jurisdictions require you to report the fiat value of staking rewards at the time they were received. This means you need:- Reward amount for each epoch or day
- Historical ETH-USD price at that time
- Calculation:
fiat_value = reward_eth × price_at_time
The
all_time or rolling period windows from Rewards Aggregated only provide a total sum—they cannot be used for tax calculations because you need per-epoch data to match with historical prices.Obtaining Historical ETH Prices
You’ll need historical ETH-USD prices for each day. Common sources include:| Source | Notes |
|---|---|
| CoinGecko API | Free tier available, daily historical prices |
| CryptoCompare | Hourly historical data available |
| Kraken | Exchange prices, high accuracy |
| Tax software | Many crypto tax tools include price data |
Common Tax Year Time Zone Offsets
| Region | Time Zone | UTC Offset | Notes |
|---|---|---|---|
| UK | GMT/BST | 0 / +1 | BST during summer |
| Central Europe | CET/CEST | +1 / +2 | CEST during summer |
| US Eastern | EST/EDT | -5 / -4 | EDT during summer |
| US Pacific | PST/PDT | -8 / -7 | PDT during summer |
| Japan | JST | +9 | No daylight saving |
| Australia Eastern | AEST/AEDT | +10 / +11 | AEDT during summer |
For tax purposes, use your local time zone’s standard offset (non-daylight-saving) or consult with your tax authority about which time zone to use. Some jurisdictions may require UTC.
Related Resources
- Introduction — Overview and endpoint comparison
- Custom Range Rewards — Complete epoch iteration code
- Epoch & Time Zone Conversion — Detailed epoch/timestamp math
- Pagination Guide

