Skip To Content

Blockdaemon Documentation

Post Stake Intent

The Staking Integration API enables custodians and crypto-savvy traders to use a standardized and trusted API. This automates transaction signing and enables the scaling of the solution over time.

The Staking Integration API endpoint in this page allows you to create your stake intents.

POST Create a New Stake Intent (V1)
Authentication Using API Key as an X-API-Key
Ethereum API Usage Example

POST Create a New Stake Intent (V1){protocol}/{network}/stake-intents

Reserves one or more available validators and returns an unsigned transaction.

The validators will remain reserved for 90 days or until the returned transaction is signed and confirmed in the network. Blockdaemon reserves the right to free any allocated resources if the transaction is not confirmed in time.

Requests containing two or more validators will be routed through the Blockdaemon batch deposit to reduce gas costs.

Learn more: Ethereum API Usage Example

Note: You need to authorize your request via an API key provided when signing up for a staking account.

Path Parameters

You should specify a protocol and a network as path parameters, e.g.:

  • ethereum/prater

Supported Networks

Here is a full list of supported networks with their path parameters:

Protocol Network Path parameters
Ethereum Mainnet ethereum/mainnet
Ethereum Prater ethereum/prater

Example Query

To create a new stake intent in the Ethereum Prater, use the following:

Request Body

In the request body you need to pass an array of stakes (1–250 items). For each stake you need to specify:

  • amount: The amount of ETH (in Gwei) you want to stake
  • withdrawal credentials: Hexadecimal encoded withdrawal credentials. This must be an account address. For more information, please see the official Ethereum Launchpad FAQ.
  • quantity (optional): The number of validators (>= 1) that will share the same withdrawal credentials

Example Request Body

    "stakes": [
            "amount": "32000000000",
            "withdrawal_credentials": "0x0092c20062cee70389f1cb4fa566a2be5e2319ff43965db26dbaa3ce90b9df99",
            "quantity": 1

Response Example

The following is a typical response from POST Create a New Stake Intent (V1):

    "stake_intent_id": "stake_intent_Wgx98Rbi8nQuL9ddn3mTk1",
    "platform": "ethereum",
    "network": "prater",
    "ethereum": {
        "stakes": [
                "stake_id": "stake_Wgx98Rbi8nQuL9ddn3mTk1",
                "amount": "32000000000",
                "validator_public_key": "0xa1d1ad0714035353258038e964ae9675dc0252ee22cea896825c01458e1807bfad2f9969338798548d9858a571f7425c",
                "withdrawal_credentials": "0x0092c20062cee70389f1cb4fa566a2be5e2319ff43965db26dbaa3ce90b9df99"
            {...more items...}
        "contract_address": "0x6D144323aED2326255e9cE36a429ad737a1ccE37",
        "unsigned_transaction": "0x592c0b7d0000000000000000000000000000000000000000000000000000000063e7a459000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000d097fff47b1ce70d65a1ffa48bd2606298e73f9bcfc4d6407e0362ee75e50c2cc6653921ab734f2fc525a713f66e7e30a2010000000000000000000000ecee073513bcc187d5a36dfb723eec36db7ac0a4b5922fe70c705a4773f352e3d54c6eac8db47c85186c12024f39cbd5b3b4b11b404636638769ceac0026a87ed37899360a267eb9bbd1874663afb60bd3ab5c3c05b21988b4e5d38ca1929a2cd0667dc4117bacf574ad222617ea609a2d40ad6e6487f40d20c8b1332b99ecff74ff1cd25defe51fb18eed7f3cec0b563967415900000000000000000000000000000000"
    "customer_id": "4d2517d1-3059-4720-8e52-a51c6a0f1f77"

Authentication Using API Key as an X-API-Key

When signing up for a staking account, you are provided with an API key.

To authenticate a Staking API request, pass your API key in the X-API-Key header:

curl -X POST \
'' \
-H 'Content-Type: application/json' \
-d '{"stakes": [{"amount": "32000000000", "withdrawal_credentials": "0x0092c20062cee70389f1cb4fa566a2be5e2319ff43965db26dbaa3ce90b9df99", "quantity": 1}]}'

Ethereum API Usage Example

In this section you will find a TypeScript example showing how to send an Ethereum transaction using the Ethereum Staking Integration API:

We don't support Internet Explorer

Please use Chrome, Safari, Firefox, or Edge to view this site.