> ## 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.

# Validator deposits (execution layer)

> Retrieve execution-layer deposit events associated with one or more validators. Provide a comma-separated list of validator indices or 0x-prefixed BLS pubkeys (up to the server-enforced limit; default 100).
The response lists every DepositContract event observed for the specified validators, including deposit amount (gwei), validator public key, withdrawal credentials, and signature verification status. Use this endpoint to audit funding transactions for validators.



## OpenAPI

````yaml /api/v1/bundled.yaml get /api/v1/validator/{indexOrPubkey}/deposits
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/validator/{indexOrPubkey}/deposits:
    get:
      tags:
        - Validators
      summary: Validator deposits (execution layer)
      description: >-
        Retrieve execution-layer deposit events associated with one or more
        validators. Provide a comma-separated list of validator indices or
        0x-prefixed BLS pubkeys (up to the server-enforced limit; default 100).

        The response lists every DepositContract event observed for the
        specified validators, including deposit amount (gwei), validator public
        key, withdrawal credentials, and signature verification status. Use this
        endpoint to audit funding transactions for validators.
      operationId: listValidatorDeposits
      parameters:
        - name: indexOrPubkey
          in: path
          description: >-
            Comma-separated validator indices and/or public keys (maximum 100
            items by default).
          required: true
          style: simple
          explode: false
          schema:
            $ref: '#/components/schemas/primitives.indicesOrPubkeys'
      responses:
        '200':
          description: >-
            Matching deposits were retrieved successfully. The `data` array
            contains one entry per deposit event associated with any of the
            specified validators. If no deposits are found, the array is empty.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/types.ApiResponse'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/types.ApiValidatorDepositsResponse
        '400':
          description: >-
            The request is invalid (for example, malformed identifier, too many
            identifiers, or unresolved pubkeys).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/types.ApiErrorResponse'
              examples:
                invalidParam:
                  summary: Invalid validator identifier
                  value:
                    status: 'ERROR: invalid validator-parameter'
                    data: null
                tooMany:
                  summary: Too many identifiers
                  value:
                    status: 'ERROR: only a maximum of 100 query parameters are allowed'
                    data: null
                unresolvedPubkeys:
                  summary: Pubkey did not resolve to an index
                  value:
                    status: >-
                      ERROR: invalid validator argument, pubkey(s) did not
                      resolve to a validator index
                    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:
    primitives.indicesOrPubkeys:
      type: string
      description: >
        Comma-separated list (no spaces) of validator identifiers. Each
        identifier must be either:

        - A validator index as a base-10 integer (for example, 652648)

        - A BLS public key as a 96-hex-character string with or without the 0x
        prefix (case-insensitive)


        Resolution and limits:

        - The server resolves public keys to validator indices before querying
        data.

        - The total number of identifiers must not exceed the server-enforced
        limit (default 100).

        - Identifiers that cannot be parsed or resolved result in HTTP 400.
      example: 1,2,3
    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.ApiValidatorDepositsResponse:
      type: object
      description: >-
        Execution-layer validator deposit event with execution metadata and
        deposit data fields.
      properties:
        amount:
          type: integer
          description: Deposited amount in gwei (1 gwei = 1e9 wei).
          example: 32000000000
        block_number:
          type: integer
          description: Execution-layer block number that included the transaction.
          example: 17111875
        block_ts:
          type: integer
          description: Block timestamp as Unix time in seconds (UTC).
          example: 1682287571
        from_address:
          type: string
          description: >-
            Sender address funding the deposit (0x-prefixed, 20-byte hex
            Ethereum address).
          example: '0xd3db01ad737f2b41676e96ad75a6368cfe7a878e'
        merkletree_index:
          type: string
          description: >-
            Merkle tree index of the deposit within the Ethereum deposit
            contract; 0x-prefixed hex-encoded uint64 as emitted in the
            DepositEvent log.
          example: '0xd660090000000000'
        publickey:
          type: string
          description: >-
            BLS12-381 validator public key (48 bytes; 0x-prefixed hex with 96
            hex characters).
          example: >-
            0x96dcc8a539e26dba7604356711abde2c2f1cd0f59a3405d11d1f029bd7e89062a09c5a7a47f9095f428fc1aff092871e
        removed:
          type: boolean
          description: >-
            True if the associated log was removed due to an execution chain
            reorganization.
          example: false
        signature:
          type: string
          description: >-
            BLS signature over the deposit message (96 bytes; 0x-prefixed hex
            with 192 hex characters).
          example: >-
            0x8a186b85f9afd69c5d256c8364577a797b38e7d2f8f4ede4c570343c28427e8795fd4a940cdbacbaef8d1a22f1ecb1501824dcb791def49938b213827f5a65e58bf531174da556410e3d6480f8d129795eb8c0c3e31f8b6b7ce679d32cca1431
        tx_hash:
          type: string
          description: >-
            Hash of the execution transaction that carried the deposit
            (0x-prefixed 32-byte hex).
          example: '0x3b1ba13da5892cfeb80f1f1ccf09505214d5564a65b9d3fd413181348dfafdde'
        tx_index:
          type: integer
          description: Index of the transaction within its block (0-based).
          example: 199
        tx_input:
          type: string
          description: >-
            Raw calldata of the transaction (0x-prefixed hex), containing the
            deposit payload for the DepositContract.
          example: '0x00'
        valid_signature:
          type: boolean
          description: >-
            Indicates whether the deposit signature is valid for the provided
            public key and deposit message.
          example: true
        withdrawal_credentials:
          type: string
          description: >-
            32-byte withdrawal credentials (0x-prefixed hex). Values beginning
            with 0x01 encode an ETH1 address; values beginning with 0x00
            indicate BLS withdrawal credentials.
          example: '0x0100000000000000000000009ba848a47a796b18de48b6dc7c4327ac9c06740e'
    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: ''

````