Historical validator dividends per subnet
Endpoint
Section titled “Endpoint”GET /api/dtao/validator/dividends/history/v1Description
Section titled “Description”Returns a historical time series of validator dividend snapshots. Each row splits alpha and root dividends between the validator’s own share (after take) and the nominator share, and reports the per-kt nominator return — letting you chart a validator’s yield or a nominator’s expected returns over time.
Use hotkey and netuid to isolate a validator on a subnet. Bound the window with block_number, block_start/block_end, or timestamp_start/timestamp_end, and downsample with frequency (e.g. daily vs. hourly buckets).
Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
hotkey | query | string | Filter by validator hotkey (SS58 or hex). | |
netuid | query | integer | Subnet id. | |
block_number | query | integer | Return the snapshot at this exact block. | |
block_start | query | integer | Start of block range (inclusive). | |
block_end | query | integer | End of block range (inclusive). | |
timestamp_start | query | integer | Start of Unix timestamp range in seconds (inclusive). | |
timestamp_end | query | integer | End of Unix timestamp range in seconds (inclusive). | |
frequency | query | — | Bucket size for the returned series, e.g. hourly, daily. | |
page | query | integer | 1-based page number. | |
limit | query | integer | Page size (max 200). | |
order | query | — | Sort order, e.g. block_number_desc, day_desc. |
Responses
Section titled “Responses”200 — Validators retrieved successfully
Section titled “200 — Validators retrieved successfully”Media: application/json
Schema
{ "type": "object", "required": [ "pagination", "data" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "hotkey", "netuid", "block_number", "timestamp", "day", "tempo", "take", "total_hotkey_alpha", "total_hotkey_root", "epochs", "nominator_alpha_dividends", "nominator_root_dividends", "validator_alpha_dividends", "validator_root_dividends", "nominator_return_per_kt_alpha", "nominator_return_per_kt_root" ], "properties": { "block_number": { "type": "integer", "format": "int32" }, "day": { "type": "string", "format": "date" }, "epochs": { "type": "integer", "format": "int32" }, "hotkey": { "type": "object", "required": [ "ss58", "hex" ], "properties": { "hex": { "type": "string", "description": "The hex format of the hot key" }, "ss58": { "type": "string", "description": "The SS58 format of the hot key" } } }, "name": { "type": "string", "nullable": true }, "netuid": { "type": "integer", "format": "int32" }, "nominator_alpha_dividends": { "type": "string" }, "nominator_return_per_kt_alpha": { "type": "string" }, "nominator_return_per_kt_root": { "type": "string" }, "nominator_root_dividends": { "type": "string" }, "take": { "type": "string" }, "tempo": { "type": "integer", "format": "int32" }, "timestamp": { "type": "string", "format": "date-time" }, "total_hotkey_alpha": { "type": "string" }, "total_hotkey_root": { "type": "string" }, "validator_alpha_dividends": { "type": "string" }, "validator_root_dividends": { "type": "string" } } } }, "pagination": { "type": "object", "required": [ "current_page", "per_page", "total_items", "total_pages" ], "properties": { "current_page": { "type": "integer", "format": "int32" }, "next_page": { "type": "integer", "format": "int32", "nullable": true }, "per_page": { "type": "integer", "format": "int32" }, "prev_page": { "type": "integer", "format": "int32", "nullable": true }, "total_items": { "type": "integer", "format": "int32" }, "total_pages": { "type": "integer", "format": "int32" } } } }}400 — Bad request
Section titled “400 — Bad request”404 — Validators not found
Section titled “404 — Validators not found”500 — Internal server error
Section titled “500 — Internal server error”Try it
Section titled “Try it”Interactive request console coming soon. In the meantime you can use the OpenAPI spec with any client (Insomnia, Bruno, Scalar, curl).
Authentication
Section titled “Authentication”All Taostats API requests require an Authorization header containing your API key. See Getting Started.