Stake ETH via Fireblocks Using the Blockdaemon Staking API

Learn all about staking ETH via Fireblocks using the Blockdaemon Staking API and Raw Signing.

This article provides an overview of how to stake ETH via Fireblocks using the Blockdaemon Staking API and Raw Signing.

Step 1: Creating a Blockdaemon Staking API Key



  1. Ensure that you have raw signing enabled on your Fireblocks account.
  2. It's also essential to have a Blockdaemon Staking API plan. Please bear in mind that as you progress through this guide, you'll be required to define the ‘Fee recipient’ and the ‘Plan ID’ parameters, which you can only get if you have a Staking API plan. If you don't, make sure to contact Blockdaemon.
  1. Sign in to your Blockdaemon app.
  2. Select Staking API in the left-hand menu; this will take you to the Manage Plan section.
  3. Go to the Connect tab and click Create API Key.
  4. Enter the name of the API key and press Create. The dialogue box with the newly generated API Key will appear.
  5. Copy the key by clicking the I've copied my API Key button.



Please ensure that the API key is stored securely. You cannot review any previously created keys. A key can only be deleted within the Blockdaemon app, however, you can create additional API keys whenever you need to.

Step 2: Making a Call Using the 'Post Stake Intent' Method

Now that you have a Staking API plan with deployed validators, the next step is to use the Post Stake Intent method. This method makes a call through Blockdaemon’s Staking API using your newly created API key. It reserves one or more of Blockdaemon’s validators and returns an unsigned transaction. Follow the steps below to learn how to do that:

  1. Navigate to Blockdaemon's API documentation.
  2. Under the Staking API section, select Ethereum.
  3. Click on the Post Stake Intent endpoint.
  4. Specify the required parameters:
networkSpecifies the network. Ensure that you have entered "mainnet" here.
amountSpecifies the amount of Ethereum that you wish to stake. This will show the full amount of ETH represented in Gwei with the trailing zeros.
withdrawal_addressHex-encoded Ethereum account or smart contract address. This will usually be the same address as the fee recipient address, which was defined earlier when you created your Blockdaemon API staking plan.
quantityRefers to the number of validators that you are going to create. For instance, if depositing 32 ETH, you would select a quantity of one.
fee_recipientAn Ethereum address to receive transaction fees from published blocks. 20-bytes, hex encoded with 0x prefix, case insensitive.
plan_idThis enables you to stake to validators from the specified plan(s). When no plan id is specified, validators across all plans that match the API route will be available for staking. Specify this object with the Plan ID that you can copy from the Blockdaemon app.



In most cases, the fee recipient address will often be the same as the withdrawal address. However, you can configure it so that the address from where you funded your Ethereum is different, allowing you to receive staking rewards at another address. Here, you would receive rewards for the ETH you staked.

  1. Paste your newly created API Key that was created earlier into the Header field under Authentication on the right-hand side of the page.
  2. The shell updates on the right-hand side of the page as you input the data. This endpoint returns a 'raw unsigned transaction'.

Step 3: Running the Unsigned Transaction in Fireblocks

  1. Click the copy icon to copy the code from the shell.
  2. Navigate to your Fireblocks account to run the unsigned transaction in the raw signing interface wallet.
  3. It will go through your transaction authorization policy; approve the transaction to launch the validator.

:confetti-ball: Congratulations! You now know how to stake ETH via Fireblocks using the Blockdaemon Staking API.