---
updatedAt: 2026-05-20T06:30:57.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.

# Generate an Ethereum Launchpad Deposit File

Generates an Ethereum Launchpad deposit string for one or more validators. The resulting JSON file will allow you to execute the deposit manually on the official [Ethereum Deposit Launchpad](https://launchpad.ethereum.org/) web-site.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "version": "1.0.0",
    "title": "Staking API",
    "description": "The Blockdaemon Staking API simplifies and streamlines institutional cryptocurrency staking. The API allows developers to interact with blockchain networks and perform various staking-related operations, such as delegating and undelegating tokens, in a single, unified interface.\n\nWith the Staking API, you can quickly and easily build and deploy applications that automate staking activities and increase efficiency in your blockchain operations.",
    "contact": {
      "name": "Blockdaemon",
      "email": "info@blockdaemon.com",
      "url": "https://blockdaemon.com"
    },
    "x-logo": {
      "url": "https://assets-global.website-files.com/633c5e06513fa35f3391a5f9/645d33beb6fa65f6cfb95eb8_BD%20Logo%20Stack%20-%20Purple.svg",
      "backgroundColor": "#fafafa",
      "altText": "Blockdaemon logo"
    }
  },
  "x-readme": {
    "explorer-enabled": false
  },
  "servers": [
    {
      "url": "https://svc.blockdaemon.com/boss"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "description": "When signing up for a staking account, you are provided with an API key.\n\nTo authenticate a Staking API request, pass your API key in the `X-API-Key` header.",
        "type": "apiKey",
        "in": "header",
        "name": "X-API-KEY"
      }
    },
    "responses": {
      "InternalServerError": {
        "description": "Internal server error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "InvalidRequest": {
        "description": "Invalid request.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "Error response envelope",
              "required": [
                "code",
                "message"
              ],
              "properties": {
                "code": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Error code",
                  "example": 400
                },
                "message": {
                  "type": "string",
                  "description": "Error Message",
                  "example": "Detailed human-readable diagnostic message regarding any invalid request parameters"
                }
              }
            }
          }
        }
      },
      "NoValidatorsError": {
        "description": "Insufficient validators available to process Stake Intent request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Header 'X-API-Key' missing.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UnauthorizedError"
            }
          }
        }
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "description": "Error response envelope",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Error code",
            "example": 500
          },
          "message": {
            "type": "string",
            "description": "Error Message",
            "example": "A descriptive error message"
          }
        }
      },
      "EthereumLaunchpadDeposit": {
        "description": "An array of data that should be submitted to launchpad.ethereum.org to register the validators it describes.",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/EthereumLaunchpadDepositEntry"
        },
        "format": "json"
      },
      "EthereumLaunchpadDepositEntry": {
        "type": "object",
        "description": "Data about a validator that can be registered at launchpad.ethereum.org",
        "required": [
          "pubkey",
          "withdrawal_credentials",
          "amount",
          "signature",
          "deposit_message_root",
          "deposit_data_root",
          "fork_version",
          "network_name",
          "deposit_cli_version"
        ],
        "properties": {
          "pubkey": {
            "type": "string",
            "description": "Validator public key, 96 hex digits, no `0x` prefix"
          },
          "withdrawal_credentials": {
            "type": "string",
            "description": "Validator withdrawal credentials, 64 hex digits, no `0x` prefix"
          },
          "amount": {
            "type": "integer",
            "format": "uint64",
            "description": "Amount of ether that this validator has staked"
          },
          "signature": {
            "type": "string",
            "description": "Signed validator domain root, hex digits, no `0x` prefix"
          },
          "deposit_message_root": {
            "type": "string",
            "description": "Merkle root for the deposit message, 32 hex digits, no `0x` prefix"
          },
          "deposit_data_root": {
            "type": "string",
            "description": "Merkle root for the deposit data, 32 hex digits, no `0x` prefix"
          },
          "fork_version": {
            "type": "string",
            "description": "Network fork version, 8 hex digits, no `0x` prefix"
          },
          "network_name": {
            "type": "string",
            "description": "Name for the deposit network (mainnet, hoodi...), lowercase"
          },
          "deposit_cli_version": {
            "type": "string",
            "description": "String form of 3-number generator version, eg. `2.3.0`"
          }
        }
      },
      "GenerateEthereumLDParams": {
        "type": "object",
        "description": "Request for generating an Ethereum Launchpad deposit string",
        "required": [
          "validators"
        ],
        "properties": {
          "validators": {
            "description": "Validators public keys",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicKey"
            }
          }
        }
      },
      "PublicKey": {
        "type": "string",
        "description": "A BLS public Key.",
        "format": "base64",
        "example": "0xa1d1ad0714035353258038e964ae9675dc0252ee22cea896825c01458e1807bfad2f9969338798548d9858a571f7425c"
      },
      "UnauthorizedError": {
        "type": "object",
        "description": "Error response envelope",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Error code",
            "example": 401
          },
          "message": {
            "type": "string",
            "description": "Error Message",
            "example": "A human-readable diagnostic message detailing any authorization failure"
          }
        }
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/v1/eth2-launchpad-deposit": {
      "post": {
        "summary": "Generate an Ethereum Launchpad Deposit File",
        "operationId": "generateEthereumLaunchpadDeposit",
        "tags": [
          "Ethereum"
        ],
        "description": "Generates an Ethereum Launchpad deposit string for one or more validators. The resulting JSON file will allow you to execute the deposit manually on the official [Ethereum Deposit Launchpad](https://launchpad.ethereum.org/) web-site.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateEthereumLDParams"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Launchpad deposit string created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EthereumLaunchpadDeposit"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "description": "validator(s) stake(s) not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/NoValidatorsError"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ]
      }
    }
  },
  "tags": [
    {
      "name": "Ethereum",
      "description": "Ethereum endpoints"
    }
  ]
}
```