Ledger Ethereum API

The Ethereum API from Ledger — 3 operation(s) for ethereum.

Operations 3

GET /ethereum/accounts/{account_id}/rewards Get all account's staking rewards
GET /ethereum/accounts/{account_id}/stakes List an account's stakes
GET /ethereum/accounts/{account_id}/stakes/{stake_uid}/rewards Get the account rewards for a stake

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ledger-ethereum-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ledger-ethereum-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vault Ethereum API
  version: 1.35.0
  x-logo:
    url: https://www.ledger.com/wp-content/themes/ledger-v2/public/images/ledger-logo-long.svg
  description: '

    # Authentication


    The Ledger Vault API offers several methods of authentication.

    Depending on your LAM configuration you''ll require several of the following headers

    to process API calls. Please refer to the

    [help center](https://help.vault.ledger.com/Content/api/api_overview.html) for more details.


    The `X-Ledger-API-User` header is required for all API calls to LAM

    (except when you register

    [API users on LAM](https://help.vault.ledger.com/Content/api/api_apiusers.html)).


    Note that the `X-Ledger-API-Key` authorization header can be used alongside the

    `X-Ledger-Store-Auth-Token` if both a LAM API key and HashiCorp Vault have

    been set up on your LAM.

    In this case, for every call made to LAM,

    you''ll need to pass all three headers

    `X-Ledger-API-User`, `X-Ledger-API-Key`, and `X-Ledger-Store-Auth-Token`.

    '
security:
- Ledger_API_User: []
- Ledger_API_User: []
  Ledger_API_Key: []
- Ledger_API_User: []
  Ledger_Store_Auth_Token: []
- Ledger_API_User: []
  Ledger_API_Key: []
  Ledger_Store_Auth_Token: []
tags:
- name: Ethereum
paths:
  /ethereum/accounts/{account_id}/rewards:
    get:
      summary: Get all account's staking rewards
      description: This method returns the account's staking rewards.
      parameters:
      - name: account_id
        in: path
        description: The account's ID
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EthereumAccountReward'
                type: array
          description: Staking rewards objects
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Account not found
      staking: ethereum
      tags:
      - Ethereum
  /ethereum/accounts/{account_id}/stakes:
    get:
      summary: List an account's stakes
      description: This method returns the account's stakes.
      parameters:
      - name: account_id
        in: path
        description: The account's ID
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/_EthereumBlockchainStake'
                type: array
          description: Ethereum account's stakes
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Account not found
      staking: ethereum
      tags:
      - Ethereum
  /ethereum/accounts/{account_id}/stakes/{stake_uid}/rewards:
    get:
      summary: Get the account rewards for a stake
      description: This method returns the rewards list for the given stake
      parameters:
      - name: account_id
        in: path
        description: The account's ID
        required: true
        schema:
          type: integer
      - name: end_date
        in: query
        description: Returns rewards before this date (yyyy-mm-dd).
        required: false
        schema:
          default: null
          format: date
          type:
          - string
          - 'null'
      - name: stake_uid
        in: path
        description: The stake's UID
        required: true
        schema:
          type: string
      - name: start_date
        in: query
        description: Returns rewards after this date (yyyy-mm-dd).
        required: false
        schema:
          default: null
          format: date
          type:
          - string
          - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EthereumStakeReward'
                type: array
          description: Staking reward objects
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Account or Stake not found
      staking: ethereum
      tags:
      - Ethereum
components:
  schemas:
    EthereumStakeReward:
      properties:
        amount:
          description: Amount of rewards received
          example: '21354'
          type: string
        created_on:
          description: Indexation date by Ledger
          example: '2023-01-19T15:18:29+00:00'
          format: date-time
          type: string
        info:
          $ref: '#/components/schemas/EthereumStakeRewardInfo'
        stake_uid:
          description: Uid of the stake
          example: 2S4wKimi4PHKjdTYdzqN5HcEcNBM4Hv9db9QWKaZCxEr
          type: string
      required:
      - amount
      - created_on
      - info
      - stake_uid
      type: object
    EthereumStakeRewardInfo:
      properties:
        cl_apy:
          description: Consensus annual percentage yield
          example: 3.407
          type: number
        consensus_rewards:
          description: Accumulated consensus rewards WEI during the day
          example: '2988504000000000'
          type: string
        el_apy:
          description: Execution annual percentage yield
          example: 0
          type: number
        execution_rewards:
          description: Accumulated execution rewards in WEI during the day
          example: '0'
          type: string
        gross_apy:
          description: Gross annual percentage yield
          example: 3.407
          type: number
        stake_balance:
          description: Staked balance in WEI that contributed to this rewards
          example: '64000000000000000000'
          type: string
      required:
      - cl_apy
      - consensus_rewards
      - el_apy
      - execution_rewards
      - gross_apy
      - stake_balance
      type: object
    EthereumAccountReward:
      properties:
        amount:
          description: Amount of rewards received
          example: '21354'
          type: string
        created_on:
          description: Indexation date by Ledger
          example: '2023-01-19T15:18:29+00:00'
          format: date-time
          type: string
        info:
          $ref: '#/components/schemas/EthereumStakeRewardInfo'
      required:
      - amount
      - created_on
      - info
      type: object
    Error:
      properties:
        message:
          type: string
        name:
          type: string
        status_code:
          type: integer
      required:
      - message
      - name
      - status_code
      type: object
    _EthereumBlockchainStake:
      properties:
        account_id:
          description: The account's ID from which the stake has been created
          example: 42
          type: integer
        account_name:
          description: The account's name from which the stake has been created
          example: My Eth Staking Account
          type: string
        blockchain_state:
          $ref: '#/components/schemas/EthereumStakeBlockchainState'
        created_on:
          description: The creation date of the stake
          example: '2022-11-15T21:03:42+00:00'
          type: string
        currency:
          description: The stake's currency
          example: ethereum
          type: string
        status:
          description: The stake's status
          example: ''
          type: string
        total_reward:
          description: The total rewards generated by the stake
          example: '2365438513'
          type: string
        uid:
          description: The stake's UID, derived from blockchain data
          example: '0xbc5b3cf158c135a6cc2583c62e4e21650e5cb1a75bc515b7debefe456538fbf6c90f9d180e3508bac84ee9ca75a6c325'
          type: string
      required:
      - account_id
      - account_name
      - blockchain_state
      - created_on
      - currency
      - status
      - total_reward
      - uid
      type: object
    EthereumStakeBlockchainState:
      properties:
        activated_at:
          default: null
          description: Date of activation on the Ethereum consensus layer
          example: '2023-01-14T01:13:59Z'
          type:
          - string
          - 'null'
        balance:
          default: null
          description: Current balance in WEI on the Ethereum consensus layer
          example: '32076187808000000000'
          type:
          - string
          - 'null'
        consensus_rewards:
          default: null
          description: Sum of consensus rewards in WEI earned by this stake
          example: '76187808000000000'
          type:
          - string
          - 'null'
        delegated_at:
          description: Timestamp of the block at which the corresponding staking transaction was executed
          example: '2023-01-14T01:13:59Z'
          type: string
        deposit_tx_sender:
          default: null
          description: Address of the sender of the first deposit transaction
          example: '0xe1f4acc0affB36a805474e3b6ab786738C6900A2'
          type:
          - string
          - 'null'
        effective_balance:
          default: null
          description: Effective balance in WEI of the stake as seen by the Ethereum consensus layer
          example: '32000000000000000000'
          type:
          - string
          - 'null'
        execution_rewards:
          default: null
          description: Sum of execution rewards in WEI earned by this stake
          example: '0'
          type:
          - string
          - 'null'
        fee_recipient:
          default: null
          description: Address of the last recipient of an execution reward
          example: '0xe1f4acc0affB36a805474e3b6ab786738C6900A2'
          type:
          - string
          - 'null'
        gross_apy:
          default: null
          description: Gross annual percentage yield
          example: 3.407
          type:
          - number
          - 'null'
        state:
          description: State of the Ethereum stake as seen by the consensus layer
          example: active_ongoing
          type: string
        validator_address:
          description: Public key of the validator
          example: '0x95373bcf8e2c64e1c373a6e534c002f210adbcc84c5abda3b6306677e171430ae50781a51c9f579a47622e334dba2412'
          type: string
        withdrawal_credentials:
          default: null
          description: Ethereum withdrawal credentials
          example: 010000000000000000000000e1f4acc0affb36a805474e3b6ab786738c6900a2
          type:
          - string
          - 'null'
      required:
      - delegated_at
      - state
      - validator_address
      type: object
  securitySchemes:
    Ledger_API_User:
      description: (**required**) Username of a registered API User
      in: header
      name: X-Ledger-API-User
      type: apiKey
    Ledger_API_Key:
      description: If you've set up your API Key when initializing your LAM, you'll need to include it as a header along with the api user header. For more details, [see step 5 of the get started documentation](https://help.vault.ledger.com/Content/api/api_getstarted.html).
      in: header
      name: X-Ledger-API-Key
      type: apiKey
    Ledger_Store_Auth_Token:
      description: If you've set up HashiCorp Vault as an authentication service, you'll need to pass the `X-Ledger-Store-Auth-Token` header along with the API user header. For more details see [how to set up HashiCorp Vault with the LAM](https://help.vault.ledger.com/Content/api/hashicorp_vault.html).
      in: header
      name: X-Ledger-Store-Auth-Token
      type: apiKey