Overview
Anchorage Digital now supports ETH staking operations initiated via API.📘 ETH staking API notes
- Unclaimed rewards are claimed and deposited back to your source wallet on a regular basis.
- The staked ETH - validator public key is listed as the
stakingPositionIdin the list staked positions endpoint.
Key concepts
- New validator provisioning: requires at least 32 ETH.
- Pectra vs pre‑Pectra: use
validatorTypeto distinguish validator types. - Unclaimed rewards are claimed and deposited back to your source wallet on a regular basis
- The staked ETH - validator public key is listed as the
stakingPositionIdin the list staking positions endpoint.
Relevant endpoints
- Stake:
POST /v2/transactions/stake - Unstake:
POST /v2/transactions/unstake - List transactions:
GET /v2/transactions - List wallet balances:
GET /v2/wallets,GET /v2/vaults/{vaultId}/wallets,GET /v2/wallets/{walletId} - Get staking positions:
GET /v2/wallets/{walletId}/staking/positions
Workflows
Initiate staking operation
- Funding wallet
- Fund the wallet in increments of 32 ETH and ensure you have sufficient gas to cover the on-chain movement of funds. Only staking operations in multiples of 32 will be approved.
- Current minimum gas requirement per staking operation = 0.03 ETH.
- Create a stake request (API)
- Initiate ETH staking operation API from your ethereum source wallet.
- e.g. 32 ETH + gas
- For more information about API gas fee requirements - See Network and gas fees.
- Identifying destination address.
- This is the source wallet, which can be identified by hitting the List wallets API endpoint.
- Quorum approval
- Anchorage Digital - Risk review
- Anchorage Digital sends ETH to the validator
- Transaction Type =
OTHER- Status =
PENDINGuntil confirmed staked balance. - This can take ~12 hours to provision the validator plus however long the queue is at that time to actually activate the staking validator.
- Status =
- Transaction Type =
- Assets successfully staked
- Staking position for a wallet API
- Status of the position will now reflect that it is
ACTIVE.
- Status of the position will now reflect that it is
- List vaults (See
assetsbalances)stakedBalanceYour current staked position balance for a specific wallet.unclaimedBalanceThe amount of unclaimed staking rewards. Unclaimed rewards are claimed and deposited back to your source wallet on a regular basis.
- List wallets(See
assetsbalances)stakedBalanceYour current staked position balance for a specific wallet.unclaimedBalanceThe amount of unclaimed staking rewards. Unclaimed rewards are claimed and deposited back to your source wallet on a regular basis.
- Staking position for a wallet API
View claimed and unclaimed rewards
- List staking position for a given walletId (API)
- Staking rewards begin accruing as soon as the staking position is
ACTIVE.
- Staking rewards begin accruing as soon as the staking position is
- Daily reward snapshot
- Staking rewards are updated daily after our daily snapshot process runs.
- List staking rewards for a given walletId (API)
- The rewards will be in a state of
UNCLAIMEDuntil they are swept back to the source wallet. - Also view staked ETH and reward positions in vaults and wallet balances:
- List Vaults
stakedBalanceYour current Staked Position balance for a specific wallet.unclaimedBalanceThe amount of unclaimed staking rewards. Unclaimed rewards are claimed and deposited back to your source wallet on a regular basis.
- List wallets
stakedBalanceYour current staked position balance for a specific wallet.unclaimedBalanceThe amount of unclaimed staking rewards. Unclaimed rewards are claimed and deposited back to your source wallet on a regular basis.
- List Vaults
- The rewards will be in a state of
- Automatic staking rewards sweep to source wallet (Anchorage Digital)
- This will be listed as a
STAKING_REWARDtransaction when hitting our List transactions API. Once this occurs, these rewards will be updated toCLAIMED.
- This will be listed as a
- List transactions (API)
- Once the deposit of rewards hits the wallet, they will be reflected by a Transaction type of
STAKING_REWARD.
- Once the deposit of rewards hits the wallet, they will be reflected by a Transaction type of
Initiate unstaking operation
- Create an unstake request (API)
- Quorum approval
- Anchorage Digital risk review
- Unstake operation auccessfully Initiated
- Transaction type =
OTHER - Status =
INPROGRESS- Unstake operations take place in two major phases:
- Exit the active validator set: Once a request to “exit” has been made, the validator is added to the exit queue. If there are no other validators in the exit queue, this part will take ~35 minutes. If there are other validators in the exit queue, this part can take several days as a maximum of 2,000 validators can exit per day.
- Withdraw balance back to the execution layer: Once exited, a validator must wait a minimum of 27 hours to be considered eligible to be withdrawn. At this point, the ETH able to be withdrawn will be transferred in the next recurring withdrawal sweep. Given normal network behavior, you can expect full staking withdrawal to take about one week on average.
- We broadcast the Unstake message as soon as it is approved. ETH stake unbonding time is determined by the protocol. It takes between 1-10 days for funds to return back into the wallet’s available balance
- Position will update to
Exitedonce your unbonding or unstaking operation completes.
- Unstake operations take place in two major phases:
- Transaction type =
- Funds returned to source wallet
- All funds, including unclaimed rewards will land in the source wallet.
- Transaction type =
OTHER - Staking positions and rewards will return to 0.
Consolidate Stake from Pre-Pectra to Pectra
See instructions on ETH Pectra staking API page Note: you may consolidate across wallets and vaults but not across different validator providers (e.g. do NOT consolidate a Figment validator to a BlockDaemon validator)API endpoints
Additional metadata
You may provide a description with each staking operation, that will be visible within your organization in the Anchorage Digital iOS app.Unsuccessful staking request
A stake request may fail for any of the following reasons:- An ongoing stake already exists.
- The specified asset does not exist.
- The specified amount exceeds the available funds for this asset (insufficient funds).
- The provided API key does not have permissions to initiate staking from this vault.
- There are insufficient funds to pay the blockchain network fee at the time of this transaction.
- There is a failure on the blockchain.

