Overview
You can use the Fireblocks Console or the Fireblocks API to stake ETH from your workspace. You can also stake on the Hoodi testnet (using the Ethereum Hoodi Test asset).
Following the Ethereum Pectra upgrade, there are now two validator types you can use when staking with Fireblocks:
- Legacy validator (0x01): Stake exactly 32 ETH per validator. You can deposit multiples of 32 ETH in a single transaction via a third-party smart contract that splits your deposit into separate 32-ETH validators.
- Compounding validator (0x02): Stake any amount from 32 to 2,048 ETH per validator, with support for adding stake and partial withdrawals. Note that the validator must always remain ≥ 32 ETH. Rewards are auto-compounded into the validator balance.
The vault account you use to deposit becomes the withdrawal address. For Legacy validators, rewards are sent to the vault. For Compounding validators, rewards remain inside the validator balance (auto-compounded).
For more information on third-party staking partners Fireblocks has partnered with, see here.
Important
- To view and approve staking transactions on your mobile device, the Fireblocks mobile app must be updated to version 1.0.52 or later for Android devices or version 1.99 or later for iOS devices.
Staking lifecycle
Your staked ETH usually becomes eligible to receive rewards after the activation period. The activation period lasts a minimum of several hours to deposit your ETH plus the time it takes for your validator to activate. If a large number of validators are activating at the same time, the activation period could last up to several weeks.
Rewards are handled differently depending on the validator type:
- Legacy (0x01): Rewards are distributed periodically to the vault account you used for staking. Your Fireblocks Vault balance automatically updates to reflect these rewards.
- Compounding (0x02): Rewards are not distributed to the vault. Instead, they remain in the validator balance and accumulate over time (auto-compounded). Your vault balance updates only when you perform a withdrawal.
You can track both staked balances and rewards on the Staking page.
You cannot use your ETH while it is staked. You can withdraw your staked funds from the deposit contract and wait for the lock-up period to pass. The duration of the lock-up period varies widely depending on network traffic and the number of validators withdrawing staked ETH. If a large number of validators are withdrawing at the same time, the lock-up period could last between a week and several weeks at most. After the lock-up period, the withdrawn assets are transferred back to the original vault account used for depositing funds.
Note
Details in this article refer to staking via the Console or the native API endpoints.
Policy rules for staking
To allow users to stake, you must create Policy rules to govern staking transactions. You can set up rule parameters for staking similar to configuring rules for other types of transactions. ETH staking rules apply only when depositing funds. Simply use the Stake operation type when creating staking rules.
Important
Policy rules configured with the Stake operation type only apply to staking operations initiated from the Fireblocks Console or the Fireblocks API. They do not apply to staking transactions initiated using the Raw Signing-based SDKs, contract calls, or other external interfaces.
Keep these things in mind when configuring Policy rules for staking:
- Rules only apply to the staking transaction.
- You must create a Policy rule with the official ETH staking deposit contract as the destination. For depositing more than 32 ETH in a single transaction, the rule must also include the ETH Batch staking deposit contract (Stakefish smart contract) as a destination.
- When creating the rule, go to Destination and select the appropriate destinations. You can create a rule that governs all staking destinations or specific ones.
- If you don’t see the list of staking destinations when creating your Policy rules, contact Fireblocks Support. After they enable the list in your workspace, you can create a new staking rule using the staking destinations from the list.
Staking in the Fireblocks Console
Before staking ETH, you must add funds to an ETH wallet and create Policy rules for staking. Transaction fees are paid in ETH and apply to staking and withdrawing.
- Navigate to the Staking page, and select the tab of the relevant asset you want to stake.
- Select +Stake.
- In the Stake module, select your desired Validator type (Compounding / Legacy).
- Enter the amount you want to stake.
- You can stake in multiples of 32 ETH when staking to Legacy validators. You can stake up to 3,200 ETH in one transaction, which will then be split between validators of 32 ETH each.
- With support for the new Compounding validator type (0x02), you can now stake any amount between 32 and 2048 ETH. This gives you the flexibility to stake, for example, 35 ETH or 115 ETH in a single validator, rather than splitting into multiple validators.
- Enter the fee for the transaction.
- Select a provider. If selecting a provider for the first time, accept the staking provider’s terms and conditions.
- Select Stake.
- Approve and sign the staking transaction.
You can view details for the staking transaction on the Recent activity panel and the Transaction History page.
During the stake initiation, the third-party provider sets up a validator node for your staked funds and sends the details, such as the validator address, to Fireblocks.
Note
If the third-party provider fails to set up a validator node for your staked ETH, an error message appears in the Console, and the deposit transaction is not initiated.
Your staked ETH becomes eligible to receive rewards after the transaction is confirmed on the blockchain, the activation period passes, and the validator becomes active.
Bear in mind that validators created using the new compounding validator (0x02; introduced with the Pectra upgrade) offer enhanced flexibility, including:
- Compounded rewards (instead of rewards being distributed to the vault).
- Protocol-level support for partial withdrawals.
- Simplified validator management for larger staking amounts.
- The ability to add any stake amount to an existing validator (up to 2,048 ETH in total per validator).
Staking page
Your staked ETH appears on the Staking page. You can view the status of each set of staked funds, track rewards, and withdraw your ETH from the deposit contract. To view the vault address used for staking, select Source Vault Address on the right side of the row. The validator address also appears.
Learn more about the Staking page.
Adding ETH to an existing validator
For Compounding (0x02) validators, you can add ETH to an existing validator after the initial staking transaction.
This allows you to increase the validator balance at any time, without creating a new validator, as long as the total balance does not exceed 2,048 ETH per validator.
For example, you can initially stake 34 ETH, and later add 1 ETH, 60 ETH, or any other amount, up to the maximum validator balance.
The Add to stake action follows the same approval, signing, and Policy rules flow as the initial staking transaction.
How Fireblocks calculates staked balances and rewards (Ethereum)
This section explains how Fireblocks calculates Ethereum staked balances and rewards, and why these values may differ from what you see on external explorers such as beaconcha.in. Understanding these definitions helps you reconcile Fireblocks data with on-chain views and set correct expectations around timing and reward distribution.
Staked balance
In Fireblocks, the staked balance represents your total ETH committed to staking, based on your staking intent and validator lifecycle, rather than only on-chain activation status.
For Ethereum:
- When you add ETH to stake, Fireblocks immediately includes the amount in the staked balance, even if the validator is still pending activation.
- External explorers typically show the balance only after the validator becomes active on the consensus layer.
- This difference is expected and by design. Fireblocks reflects your economic exposure as soon as the stake is submitted.
As a result, Fireblocks staked balances may appear higher than in external explorers during the activation phase.
Rewards overview
Ethereum staking rewards are generated across two layers:
-
Consensus Layer (CL) rewards
Earned through validator duties such as attestations and block proposals. -
Execution Layer (EL) rewards
Earned from transaction tips and MEV, and credited directly at the execution layer.
How and when these rewards are reflected in Fireblocks depends on the validator type.
Validator types and reward behavior
Fireblocks supports two Ethereum validator types, each with different reward accounting behavior.
| Aspect | Compounding validator (0x02) | Legacy validator (0x01) |
| Where rewards accumulate | Inside the validator balance | Distributed to the vault |
| When rewards are reflected | Increase validator balance over time | Appear in the vault after distribution |
| Effect on validator balance | Increases over time as rewards compound | Validator principal remains fixed; rewards are distributed separately to the vault |
| Transaction created | No | No |
- Compounding validators automatically reinvest rewards, increasing the validator balance over time.
- Legacy validators periodically distribute rewards to the vault withdrawal address. These distributions do not create blockchain transactions and may take several days to appear.
Example: Legacy vs. Compounding validator balances
The following example illustrates how staking balances evolve differently depending on the validator type.
Example scenario:
You intend to stake 100 ETH and later earn 3 ETH in rewards.
Legacy validators (0x01)
Legacy validators require staking in multiples of 32 ETH.
- Intended stake: 100 ETH
- Actual staked amount: 96 ETH (3 validators × 32 ETH)
After earning 3 ETH in rewards:
- Total staked: 96 ETH (principal only)
- Total rewards: 3 ETH
- Vault balance: increases by 3 ETH
- Validator balance: remains 96 ETH
Rewards are distributed separately to the vault withdrawal address.
Compounding validator (0x02)
Compounding validators allow flexible staking amounts.
- Intended stake: 100 ETH
- Actual staked amount: 100 ETH
After earning 3 ETH in rewards:
- Total staked: 103 ETH (principal + compounded rewards)
- Total rewards: 3 ETH
- Vault balance: unchanged
- Validator balance: increases to 103 ETH
Rewards remain inside the validator and automatically increase the staked balance.
Partial withdrawals and reward distribution
For validators with execution-layer withdrawal credentials:
- Partial withdrawals automatically skim any ETH above the effective 32 ETH balance.
- Withdrawn amounts are credited directly to the withdrawal address as a balance increase.
- These credits do not appear as inbound transactions and do not incur gas fees.
Fireblocks reflects partial withdrawals based on execution-layer balance updates. External explorers may show these credits earlier or with different labeling, which can temporarily create mismatches between views.
Why Fireblocks and explorers may not match
Differences between Fireblocks and external explorers can occur due to:
- Immediate inclusion of newly staked ETH before validator activation.
- Different treatment of compounding versus legacy validator rewards.
- Execution-layer credits that do not generate transactions.
- Network-level delays in reward distribution and withdrawal processing.
These differences are expected and do not indicate missing funds.
What the staking totals represent
On the staking page:
- Total staked includes all ETH committed to staking, including activating validators, and, for compounding validators, accumulated rewards reflected in the validator balance.
- Total rewards includes rewards recognized by Fireblocks based on validator type and withdrawal state.
- Active and inactive balances reflect validator lifecycle status within Fireblocks, which may not align exactly with external consensus-layer milestones.
API reward calculations and validator lifecycle status
When retrieving staking data via the Fireblocks API:
- The rewardsAmount returned by the summary endpoint includes rewards from both active and inactive positions. This includes validators that have completed the unstake process but are still visible on the Staking page.
- The rewardsAmount returned for an individual position reflects that specific validator’s accumulated rewards and remains accurate regardless of lifecycle status.
After a validator is unstaked and becomes inactive:
- The position’s rewardsAmount does not reset to zero.
- The value remains as a historical record of the rewards earned during the validator’s active period.
This behavior ensures consistency between the Console and API responses and allows you to reconcile historical reward calculations even after a validator has exited.
Withdrawing staked ETH
You can withdraw your staked ETH from the deposit contract to transfer the funds back to your Fireblocks workspace. Following the Pectra update, Fireblocks supports transaction-based withdrawals that allow both full and partial withdrawals for Ethereum validators. Partial withdrawals allow you to withdraw any amount from the validator balance as long as the validator retains at least 32 ETH. For example, if your validator has 120 ETH staked, you could choose to withdraw 50 ETH and leave the remaining 70 ETH still staked.
Withdrawals
You can withdraw staked ETH back to your Fireblocks workspace using a transaction-based withdrawal operation. This withdrawal method applies to both Legacy (0x01) and Compounding (0x02) validators. Withdrawals support both full withdrawals and partial withdrawals.
Full withdrawal
Withdraws the entire validator balance (principal and rewards).
Partial withdrawal
Withdraws a user-defined amount from the validator balance. The withdrawal amount is taken from the pooled balance of staked funds and rewards. Partial withdrawals are only applicable for Compounding validators (and not legacy ones)
Note:
You can perform a partial withdrawal at any time to realize compounded rewards, as long as the validator balance remains ≥ 32 ETH.
Consolidating staking positions
Consolidation combines two Ethereum staking positions from the same vault account.
Two positions can be consolidated only when both are Active, neither has another operation in progress, and the destination position is a compounding (Pectra / 0x02) validator. The source position may be a legacy or compounding validator. The source must also be exit-eligible (past the post-activation waiting period) and must not have a partial withdrawal in flight. The combined stake of both positions cannot exceed 2048 ETH.
Positions from different vault accounts cannot be consolidated.
To consolidate:
- Select Copy position ID (or validator public key) on the position you want to consolidate into.
-
Select Consolidate, and paste the copied identifier.
-
Alternatively, instead of pasting, select the destination position from a list of eligible positions in the same vault account.
Once you select Consolidate, a consolidation transaction is initiated and broadcast after approval and signing.
A Policy rule with the Stake operation type is applied to the consolidation transaction.
After the transaction is confirmed on the blockchain:
- The destination position includes the total staked amount and total rewards from both positions.
- The source position is greyed out, its status is marked as Consolidated, and it disappears after 30 days (similar to a withdrawn position).
- The destination position remains the same compounding validator; the source validator is closed on chain as part of consolidation.
Rewards
Ethereum distributes rewards through two layers: execution and consensus.
- Legacy (0x01): Rewards are periodically distributed to your vault (withdrawal address) and reflected in your vault balance. They do not generate transactions.
- Compounding (0x02): Rewards remain inside the validator balance (auto-compounded). Your vault balance only updates when you withdraw.
How the staked balance is calculated
The staked balance shown in the Fireblocks Console depends on the validator type and how rewards are handled:
- For Legacy (0x01) validators, the staked balance represents validator principal only. Rewards are periodically distributed to the vault account used for staking and reflected in the vault balance.
- For Compounding (0x02) validators, the staked balance represents the validator balance, which includes both the original stake and auto-compounded rewards that remain inside the validator.
Because legacy and compounding validators account for rewards differently, staked values may evolve differently between validator types even when earning rewards under similar conditions.
In earlier versions of the Console, staking totals were calculated differently, which may cause historical comparisons to appear inconsistent even when no staking actions, withdrawals, or slashing events have occurred.
Because these changes reflect balance calculation logic rather than blockchain transfers, they do not correspond to blockchain transactions and do not appear in Transaction History or Recent Activity.
Fees
A percentage of your rewards is collected as a service fee, a portion of which is paid to the third-party staking partner. These fees are based on staking rewards only and are collected retroactively via your Fireblocks invoice. Staking service fees are charged in ETH.
Following are the fee rates for each provider:
- Figment: 9%
- Kiln: 9%
- P2P: 5%
- Pier Two: 5%
Blockdaemon: 5%
If you stake more than $5M of ETH per year, you may qualify for a lower fee rate. Submit this form to request discounted staking fees.
Staking with the Fireblocks API
You can also stake ETH using the Fireblocks API.