---
updatedAt: 2026-05-20T06:40:13.000Z
---

Fetch the complete documentation index at: https://docs.blockdaemon.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Get a Stream of Rewards for a Single Address

Returns the total rewards for the queried period in a streaming fashion using `ndjson`. The total reward returned is derived from the sum of fields in the response `metadata`:

    Total Reward = mevBlockReward + syncCommitteeReward + attestationReward + blockReward


# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "version": "1.0.0",
    "title": "Staking Reporting API",
    "description": "### Protocols \nThe following protocols are currently supported:\n* Cardano\n* Cosmos\n* Ethereum\n* NEAR\n* Polkadot\n* Polygon \n* Solana \n",
    "contact": {
      "name": "Blockdaemon",
      "email": "support@blockdaemon.com",
      "url": "https://blockdaemon.com"
    },
    "x-logo": {
      "url": "logo.png"
    }
  },
  "servers": [
    {
      "url": "https://svc.blockdaemon.com/reporting/staking",
      "description": "Production server"
    }
  ],
  "security": [
    {
      "apiKeyAuthHeader": []
    },
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/v2/ethereum/{network}/validator/rewards/{address}": {
      "get": {
        "summary": "Get a Stream of Rewards for a Single Address",
        "description": "Returns the total rewards for the queried period in a streaming fashion using `ndjson`. The total reward returned is derived from the sum of fields in the response `metadata`:\n\n    Total Reward = mevBlockReward + syncCommitteeReward + attestationReward + blockReward\n",
        "tags": [
          "Ethereum Staking Reporting"
        ],
        "operationId": "getRewardsSingle2",
        "parameters": [
          {
            "in": "path",
            "name": "network",
            "required": true,
            "description": "The network to look up against.",
            "schema": {
              "$ref": "#/components/schemas/Network"
            }
          },
          {
            "in": "path",
            "name": "address",
            "required": true,
            "description": "The address to look up rewards for.",
            "example": "0xaf3cfa981e084985c88928ae2fc7802790195d5d4e297fb384230b6b8e4540b2654a50a17dfeccc73f550461bd794563",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "startTime",
            "required": false,
            "description": "Epoch-based start time for reward queries.",
            "example": 1704067200,
            "schema": {
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "endTime",
            "required": false,
            "description": "Epoch-based end time for reward queries.",
            "example": 1706745600,
            "schema": {
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "epoch",
            "required": false,
            "description": "The epoch to look up rewards for.",
            "example": 365832,
            "schema": {
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "period",
            "required": true,
            "description": "The type of aggregation to apply.",
            "schema": {
              "$ref": "#/components/schemas/TimePeriod3"
            }
          },
          {
            "in": "query",
            "name": "denomination",
            "required": false,
            "description": "Denomination to use for the response - default is wei.",
            "schema": {
              "$ref": "#/components/schemas/Denomination2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/x-ndjson": {
                "schema": {
                  "$ref": "#/components/schemas/RewardsResponse1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse1"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse1"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKeyAuthHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Unlock higher TPS - Create your own API key in the [Blockdaemon App](https://app.blockdaemon.com).\n",
        "x-default": "2go1YqUcuAr4WZ2-3WgSD3c7qpatZqQuNWhTVBldKZnTSUtw"
      },
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Opaque",
        "description": "[Legacy Auth] Unlock higher TPS - Create your own API key in the [Blockdaemon App](https://app.blockdaemon.com).\n",
        "x-default": "2go1YqUcuAr4WZ2-3WgSD3c7qpatZqQuNWhTVBldKZnTSUtw"
      }
    },
    "schemas": {
      "ErrorResponse1": {
        "properties": {
          "timestamp": {
            "description": "The timestamp of the error in ISO-8601 format.",
            "type": "string"
          },
          "path": {
            "description": "The path called when the error occurred.",
            "type": "string",
            "example": "/v2/ethereum/mainnet/validator"
          },
          "status": {
            "description": "the http status code",
            "type": "number",
            "example": 400
          },
          "error": {
            "description": "A useful description of the error that occurred.",
            "type": "string",
            "example": "[endTime should be in unix epoch seconds]"
          }
        }
      },
      "TimePeriod3": {
        "description": "How the data is aggregated.",
        "type": "string",
        "default": "monthly",
        "enum": [
          "yearly",
          "daily",
          "weekly",
          "monthly",
          "epoch",
          "raw"
        ]
      },
      "Network": {
        "description": "Network",
        "type": "string",
        "default": "mainnet",
        "enum": [
          "mainnet",
          "holesky",
          "hoodi"
        ]
      },
      "Denomination2": {
        "description": "Denomination",
        "type": "string",
        "default": "wei",
        "enum": [
          "wei",
          "kwei",
          "mwei",
          "gwei",
          "szab",
          "finn",
          "eth",
          "ether",
          "kether",
          "keth",
          "mether",
          "meth",
          "gether",
          "geth",
          "tether",
          "teth"
        ]
      },
      "RewardsResponse1": {
        "description": "The reward response object",
        "type": "object",
        "properties": {
          "address": {
            "description": "The address the reward is for.",
            "type": "string",
            "example": "0xaf3cfa981e084985c88928ae2fc7802790195d5d4e297fb384230b6b8e4540b2654a50a17dfeccc73f550461bd794563"
          },
          "denomination": {
            "description": "The denomination the reward is in.",
            "type": "string",
            "example": "wei"
          },
          "return": {
            "description": "The staking return of the address for the period.",
            "type": "string",
            "example": "17859798000000000",
            "format": "number"
          },
          "startTime": {
            "description": "Epoch-based start time for reward queries.",
            "type": "number",
            "example": 1716422400
          },
          "endTime": {
            "description": "Epoch-based end time for reward queries.",
            "type": "number",
            "example": 1719100799
          },
          "period": {
            "$ref": "#/components/schemas/TimePeriod3"
          },
          "startBalance": {
            "description": "The balance or stake at the start of the period.",
            "type": "string",
            "example": "32002448366000000000",
            "format": "number"
          },
          "metadata": {
            "$ref": "#/components/schemas/RewardsMetadata"
          }
        }
      },
      "RewardsMetadata": {
        "properties": {
          "epoch": {
            "description": "The epoch number/s that the period covers.",
            "type": "string",
            "example": "285413-287302"
          },
          "withdrawals": {
            "description": "The withdrawals in the period.",
            "type": "string",
            "format": "number",
            "example": "18477398000000000"
          },
          "deposits": {
            "description": "The deposits in the period.",
            "type": "string",
            "format": "number",
            "example": "0"
          },
          "syncCommitteeReward": {
            "description": "The sync committee rewards in the period.",
            "type": "string",
            "format": "number",
            "example": "0"
          },
          "blockReward": {
            "description": "The block rewards in the period.",
            "type": "string",
            "format": "number",
            "example": "0"
          },
          "attestationReward": {
            "description": "The attestation rewards in the period.",
            "type": "string",
            "format": "number",
            "example": "17859798000000000"
          },
          "mevBlockReward": {
            "description": "The mev block rewards in the period.",
            "type": "string",
            "format": "number",
            "example": "0"
          },
          "blockFeeReward": {
            "description": "The block fee rewards in the period.",
            "type": "string",
            "format": "number",
            "example": "0"
          },
          "index": {
            "description": "The validator index.",
            "type": "string",
            "format": "number",
            "example": "1333904"
          }
        }
      }
    }
  },
  "x-readme": {
    "samples-languages": [
      "curl",
      "go",
      "javascript",
      "python",
      "node"
    ],
    "explorer-enabled": false
  }
}
```