> ## Documentation Index
> Fetch the complete documentation index at: https://docs.beaconcha.in/llms.txt
> Use this file to discover all available pages before exploring further.

# ETH.Store daily aggregates

> Retrieve ETH.Store® daily aggregate metrics that represent the average financial return validators achieved over a 24-hour period. A "beaconchain-day" is defined as the number of full days elapsed since chain genesis, computed as blocks grouped into periods of `(24 * 60 * 60) // SlotsPerEpoch // SecondsPerSlot` epochs.
Use this endpoint to analyze validator returns, moving averages, and reward composition (consensus-layer vs. execution-layer fees) on a per-day basis.
See https://github.com/gobitfly/eth.store for additional context.



## OpenAPI

````yaml /api/v1/bundled.yaml get /api/v1/ethstore/{day}
openapi: 3.0.4
info:
  title: beaconcha.in API Documentation
  license:
    name: GPL-3.0
    url: https://www.gnu.org/licenses/gpl-3.0.en.html
  description: >-
    > ⚠️ No new features or endpoints will be added to V1. We recommend the [V2
    API](/api/overview) for all new projects. See the [migration
    guide](/api/v1-to-v2-migration).

    ## Introduction

    **Advanced and reliable API for accessing comprehensive Ethereum blockchain
    data.**


    - **Free Usage Policy:** The API is free to use under a fair use policy,
    with rate limits of 10 requests per minute per IP.

    - **Caching:** All responses are cached for 1 minute.

    - **Higher Usage Plans:** For higher usage plans, visit:
    [https://beaconcha.in/pricing](https://beaconcha.in/pricing). An API key is
    required to use these plans.


    ### API Key Usage

    API keys can be obtained at
    [/user/settings](https://beaconcha.in/user/settings) and must be included in
    requests either as a query string parameter or in the request header.


    #### Example: Query String Parameter

    ```bash

    curl https://beaconcha.in/api/v1/slot/1?apikey=<your_key>

    ```


    #### Example: Request Header

    ```bash

    curl -H 'apikey: <your_key>' https://beaconcha.in/api/v1/slot/1

    ```
  contact: {}
  version: '1.1'
servers:
  - url: https://beaconcha.in
    description: Ethereum mainnet
  - url: https://hoodi.beaconcha.in
    description: Hoodi Ethereum testnet
security:
  - ApiKeyAuthQuery: []
  - ApiKeyAuthHeader: []
tags:
  - name: Epoch
    description: Data related to consensus layer epochs
  - name: Slots
    description: Data related to consensus layer slots
  - name: Validators
    description: Data related to consensus layer validators
  - name: Rewards
    description: Data related to validator rewards
  - name: Sync Committees
    description: Data related to sync committees
  - name: Rocketpool
    description: Data related to the rocketpool protocol
  - name: ETH.Store®
    description: Data related to the ETH.Store® metric
  - name: Validator deposits
    description: Data related to execution layer validator deposits
  - name: Blocks
    description: Data related to execution layer blocks
  - name: Gas
    description: Data related to gas prices
  - name: Address
    description: Data related to ethereum addresses
  - name: Network
    description: Network data
  - name: Misc
    description: Miscellaneous data
  - name: User
    description: User data
  - name: Machine Metrics
    description: Submit machine, beacon-node, and validator-client monitoring metrics
paths:
  /api/v1/ethstore/{day}:
    get:
      tags:
        - ETH.Store®
      summary: ETH.Store daily aggregates
      description: >-
        Retrieve ETH.Store® daily aggregate metrics that represent the average
        financial return validators achieved over a 24-hour period. A
        "beaconchain-day" is defined as the number of full days elapsed since
        chain genesis, computed as blocks grouped into periods of `(24 * 60 *
        60) // SlotsPerEpoch // SecondsPerSlot` epochs.

        Use this endpoint to analyze validator returns, moving averages, and
        reward composition (consensus-layer vs. execution-layer fees) on a
        per-day basis.

        See https://github.com/gobitfly/eth.store for additional context.
      operationId: getEthStoreByDay
      parameters:
        - name: day
          in: path
          description: >-
            The beaconchain-day to fetch. Provide an integer day index (>= 0),
            or the keyword `latest` for the most recently computed day.
          required: true
          style: simple
          explode: false
          schema:
            oneOf:
              - type: string
                description: Special tag for convenience.
                enum:
                  - latest
                example: latest
              - type: integer
                description: Day index since genesis (>= 0)
                minimum: 0
                example: 541
      responses:
        '200':
          description: >-
            The requested day was found and ETH.Store® aggregates are returned
            in the `data` array. This array contains a single record for the
            requested day.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/types.ApiResponse'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/types.APIEthStoreResponse'
        '400':
          description: >-
            The request is invalid (for example, an out-of-range day or
            malformed tag).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/types.ApiErrorResponse'
              examples:
                invalidDay:
                  summary: Invalid day parameter
                  value:
                    status: 'ERROR: invalid day parameter'
                    data: null
        '500':
          description: An unexpected server error occurred while processing your request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/types.ApiErrorResponse'
              examples:
                serverError:
                  summary: Internal error
                  value:
                    status: 'ERROR: internal server error'
                    data: null
components:
  schemas:
    types.ApiResponse:
      type: object
      description: Standard success envelope used by all API endpoints.
      properties:
        status:
          type: string
          description: >-
            HTTP-independent status of the API operation. For successful
            responses this is always "OK".
          enum:
            - OK
        data:
          description: Response payload specific to the endpoint.
          nullable: true
          x-omitempty: true
    types.APIEthStoreResponse:
      type: object
      description: Daily ETH.Store® aggregates for a single beaconchain-day.
      properties:
        day:
          type: integer
          description: >-
            Beaconchain-day index since genesis (>= 0). Typically one record per
            day.
          example: 435
        day_start:
          type: string
          format: date-time
          description: Start timestamp (UTC) of the 24-hour period in RFC 3339 format.
          example: '2022-02-09T12:00:23Z'
        day_end:
          type: string
          format: date-time
          description: End timestamp (UTC) of the 24-hour period in RFC 3339 format.
          example: '2022-02-10T12:00:23Z'
        apr:
          type: number
          description: >-
            Total annualized percentage rate for the day as a fraction (0..1),
            combining consensus-layer rewards and execution-layer fees.
          example: 0.0527609790864113
        avgapr7d:
          type: number
          description: >-
            7-day trailing average of total APR (0..1), centered on or including
            this day.
          example: 0.052764308760676414
        avgapr31d:
          type: number
          description: >-
            31-day trailing average of total APR (0..1), centered on or
            including this day.
          example: 0.053351525019046164
        cl_apr:
          type: number
          description: >-
            Consensus-layer APR component only (0..1) for the day (attestations,
            proposals, sync committee, etc.).
          example: 0.0527609790864113
        cl_avgapr7d:
          type: number
          description: 7-day trailing average of consensus-layer APR (0..1).
          example: 0.052764308760676414
        cl_avgapr31d:
          type: number
          description: 31-day trailing average of consensus-layer APR (0..1).
          example: 0.053351525019046164
        el_apr:
          type: number
          description: >-
            Execution-layer APR component only (0..1) for the day (e.g.,
            priority fees, MEV). 0 for pre-Merge periods.
          example: 0.0063633204373217
        el_avgapr7d:
          type: number
          description: 7-day trailing average of execution-layer APR (0..1).
          example: 0.005195252974383372
        el_avgapr31d:
          type: number
          description: 31-day trailing average of execution-layer APR (0..1).
          example: 0.005679846878640752
        consensus_rewards_sum_wei:
          type: number
          description: >-
            Total consensus-layer rewards accrued during the day across all
            validators, in wei.
          example: 1.349850765807e+21
        avgconsensus_rewards7d_wei:
          type: number
          description: 7-day trailing average of the daily consensus rewards sum, in wei.
          example: 1.345081426021e+21
        avgconsensus_rewards31d_wei:
          type: number
          description: 31-day trailing average of the daily consensus rewards sum, in wei.
          example: 1.3378170064684515e+21
        tx_fees_sum_wei:
          type: number
          description: >-
            Total execution-layer priority transaction fees (excluding MEV tips)
            accrued during the day across all validators, in wei. 0 for
            pre-Merge periods.
          example: 503073827859422400000
        avgtx_fees7d_wei:
          type: number
          nullable: true
          description: >-
            7-day trailing average of the daily transaction fees sum, in wei;
            null when not applicable (e.g., pre-Merge).
          example: null
        avgtx_fees31d_wei:
          type: number
          nullable: true
          description: >-
            31-day trailing average of the daily transaction fees sum, in wei;
            null when not applicable (e.g., pre-Merge).
          example: null
        deposits_sum_wei:
          type: number
          description: >-
            Total amount of ETH deposited into the validator deposit contract
            during the day, in wei.
          example: 0
        effective_balances_sum_wei:
          type: number
          description: >-
            Sum of effective balances across all active validators at the end of
            the day, in wei.
          example: 9.338256e+24
        start_balances_sum_wei:
          type: number
          description: Sum of actual validator balances at the start of the day, in wei.
          example: 9.783046761967892e+24
        end_balances_sum_wei:
          type: number
          description: Sum of actual validator balances at the end of the day, in wei.
          example: 9.7843966127337e+24
        total_rewards_wei:
          type: number
          description: Total rewards earned during the day (consensus + execution), in wei.
          example: 1.349850765807e+21
    types.ApiErrorResponse:
      type: object
      description: Standard error envelope returned when a request fails.
      properties:
        status:
          type: string
          description: >-
            Human-readable error indicator and message. The value begins with
            "ERROR:" followed by details.
          example: 'ERROR: <Message>'
        data:
          type: string
          description: Optional additional context for the error. Null in most cases.
          nullable: true
          default: null
  securitySchemes:
    ApiKeyAuthQuery:
      type: apiKey
      in: query
      name: apikey
      description: ''
    ApiKeyAuthHeader:
      type: apiKey
      in: header
      name: apikey
      description: ''

````