---
updatedAt: 2026-05-20T06:40:21.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 Yield for a Validator Address

Returns yield data for the specified validator address.
For more details on yield metrics and how they are calculated, see the [Yield Metrics overview](https://docs.blockdaemon.com/reference/stakingreporting-api-overview).


# 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/yield/{address}": {
      "get": {
        "summary": "Get a Yield for a Validator Address",
        "description": "Returns yield data for the specified validator address.\nFor more details on yield metrics and how they are calculated, see the [Yield Metrics overview](https://docs.blockdaemon.com/reference/stakingreporting-api-overview).\n",
        "tags": [
          "Ethereum Staking Reporting"
        ],
        "operationId": "getYieldEthereum",
        "parameters": [
          {
            "in": "path",
            "name": "network",
            "required": true,
            "description": "The blockchain network to query (e.g., mainnet).",
            "schema": {
              "type": "string",
              "default": "mainnet"
            }
          },
          {
            "in": "path",
            "name": "address",
            "required": true,
            "description": "The validator address to retrieve yield data for.",
            "example": "0xaf3cfa981e084985c88928ae2fc7802790195d5d4e297fb384230b6b8e4540b2654a50a17dfeccc73f550461bd794563",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "startTime",
            "required": true,
            "description": "Epoch-based start time for reward queries.",
            "example": 1709251200,
            "schema": {
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "endTime",
            "required": true,
            "description": "Epoch-based end time for reward queries.",
            "example": 1711929600,
            "schema": {
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "denomination",
            "description": "The unit to return yield values in.",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Denomination2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/YieldResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "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": {
      "YieldResponse": {
        "description": "The yield response object",
        "type": "object",
        "properties": {
          "startTime": {
            "description": "Epoch-based start time for reward queries.",
            "type": "number",
            "example": 1709251200
          },
          "endTime": {
            "description": "Epoch-based end time for reward queries.",
            "type": "number",
            "example": 1711929600
          },
          "return": {
            "description": "The staking return for all validators for the period",
            "type": "string",
            "example": "283291849202",
            "format": "number"
          },
          "apr": {
            "description": "The APR for validators based on the return, total stake of the network and assuming 82125 epochs a year",
            "type": "string",
            "example": "0.0601",
            "format": "number"
          },
          "aprPercentage": {
            "description": "The same as above but in percentage form",
            "type": "string",
            "example": "6.01%",
            "format": "number"
          },
          "apy": {
            "description": "The APY based on the above and assuming re-staking of all rewards after each epoch (Unlikely for ETH but kept in for completeness)",
            "type": "string",
            "example": "0.06912",
            "format": "number"
          },
          "apyPercentage": {
            "description": "The same as above but in percentage form",
            "type": "string",
            "example": "6.912%",
            "format": "number"
          },
          "denomination": {
            "description": "the denomination the reward is in",
            "type": "string",
            "example": "ETH"
          },
          "stake": {
            "description": "the total stake across the full network",
            "type": "string",
            "example": "3830810096309000",
            "format": "number"
          },
          "metadata": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/YieldMetadata"
              },
              {
                "$ref": "#/components/schemas/ValidatorYieldMetadata"
              }
            ]
          }
        }
      },
      "YieldMetadata": {
        "properties": {
          "epoch": {
            "description": "The epoch number/s that the period covers",
            "type": "string",
            "example": "285413-287302"
          },
          "protocolRewards": {
            "description": "The total protocol rewards in the period",
            "type": "string",
            "format": "number",
            "example": "11.582442116"
          },
          "mevRewards": {
            "description": "The total mev block rewards in the period",
            "type": "string",
            "format": "number",
            "example": "2.55849541422880986"
          },
          "blockRewards": {
            "description": "The total block fee rewards in the period",
            "type": "string",
            "format": "number",
            "example": "1.660716278059616145"
          },
          "totalBalance": {
            "description": "The total balance of the validators in the network (including pending withdrawals)",
            "type": "string",
            "format": "number",
            "example": "33750555.15182654"
          }
        }
      },
      "ValidatorYieldMetadata": {
        "properties": {
          "effectiveBalance": {
            "description": "The effective balance of the validator at the start time",
            "type": "string",
            "format": "number",
            "example": "11.582442116"
          },
          "mevBlockReward": {
            "description": "The total mev block rewards in the period",
            "type": "string",
            "format": "number",
            "example": "2.55849541422880986"
          },
          "blockReward": {
            "description": "The total block rewards in the period",
            "type": "string",
            "format": "number",
            "example": "1.660716278059616145"
          },
          "syncCommitteeReward": {
            "description": "The sync comittee rewards for the period",
            "type": "string",
            "format": "number",
            "example": "33750555.15182654"
          },
          "attestationReward": {
            "description": "The attestation rewards for the period",
            "type": "string",
            "format": "number",
            "example": "33750555.15182654"
          }
        }
      },
      "ErrorResponse": {
        "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/solana/mainnet/delegator"
          },
          "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]"
          }
        }
      },
      "Denomination2": {
        "description": "Denomination",
        "type": "string",
        "default": "wei",
        "enum": [
          "wei",
          "kwei",
          "mwei",
          "gwei",
          "szab",
          "finn",
          "eth",
          "ether",
          "kether",
          "keth",
          "mether",
          "meth",
          "gether",
          "geth",
          "tether",
          "teth"
        ]
      }
    }
  },
  "x-readme": {
    "samples-languages": [
      "curl",
      "go",
      "javascript",
      "python",
      "node"
    ],
    "explorer-enabled": false
  }
}
```