0x02 type of withdrawal credentials. Compared to the previous 0x01 type, this brings the following benefits:
- Flexible effective balance from 32 ETH up to 2048 ETH
- New staking options such as incremental top-ups and auto compounding
- Simplified flow with fewer steps and reduced manual deposit data handling
0x02 credentials type, you can either consolidate multiple existing validators into a single one or set up a new 0x02-enabled validator by following the steps below:
- Prepare a proxy staking transaction.
- Sign and broadcast the transaction.
Upgrade is just an optionFor clients currently using the
0x01 validator setup, all existing endpoints remain supported. If you need to create a new validator via the previous 0x01 flow, refer to the guides for the Ethereum or SSV networks respectively.Upgrading to the 0x02 type of withdrawal credentials is not necessary, but only recommended for enhanced functionality.1. Prepare staking proxy transaction
This flow is supported for Ethereum Direct staking only and applies exclusively to validators using 0x02 type of withdrawal credentials.
Send a GET request to /api/v1/eth/staking/direct/p2p/deposit with the following query parameters specified: amount, withdrawalAddress, controllerAddress and feeRecipientAddress.
By calling this endpoint, you are receiving a transaction fully constructed by Ethereum Smart Contract 3.1 which is ready for signing and broadcasting.
Example request:
amount— total amount of ETH to deposit. Note that the maximum effective balance is 2048 ETH, so it is recommended specifying no more than 1920 ETH in order to save the opportunity to auto-compound the received rewards.amountPerValidator— amount of tokens to stake in Gwei per validator.withdrawalAddress— withdrawal address for the validators.controllerAddress— for the validators.feeRecipientAddress— address that receives priority fees.
serializeTx— serialized unsigned transaction.to— recipient address for this transaction.gasLimit— maximum limit for this block.data— transaction data.value— amount this transaction is sending in Wei.chainId— chain ID this transaction is authorized on, as specified by EIP-155.type— EIP-2718 type of this transaction envelope.maxFeePerGas— maximum price per unit of gas this transaction will pay for the combined EIP-1559 block’s base fee and this transaction’s priority fee in Wei.maxPriorityFeePerGas— price per unit of gas in Wei, which is added to the EIP-1559 block’s base fee. This added fee is used to incentivize miners to prioritize this transaction.marker— additional identifier of the deposit transaction. You can use it to search the deposits with Get List Deposits endpoint.
2. Sign and broadcast transaction
PrepareserializeTx from the previous step and use the example code below to sign and broadcast the transaction to the Ethereum network:
0x02 type of withdrawal credentials will be set up.
3. Get list of deposits
Check the list of validators created via your authentication token and their status by sending a GET request to /api/v1/eth/staking/direct/p2p/deposits. Example request:-
limit— number of resources that a single response page contains. -
offset— number of resources to exclude from a response. -
type— type of filter:withdrawalAddress— withdrawal address for the validators.transactionHash— hash of the deposit transaction.depositIds— list of the deposit IDs.markers— additional identifier of the deposit transaction.
-
deposit:depositId— unique identifier for the deposit initiated by the user.marker— unique identifier of the deposit transactiontransactionHash— hash of the transaction associated with the user’s validator deposit.senderAddress— address used to interact with the SSV proxy smart contract and transfer the requested stake amount.withdrawalAddress— withdrawal address for the validators.feeRecipientAddress— the address that receives the fee recipient rewards.totalAmount— total amount currently staked for the specified deposit ID.unprocessedAmount— amount associated with validators that are not yet activated for the specified deposit ID
-
validator:pubkey— validator public key.status— current status of the validatoramount— amount of ETH, denominated in gwei, that is being deposited.
-
limit— number of resources that a single response page contains. -
offset— number of resources to exclude from a response. -
totalCount— total number of validators relevant to the current request, based on applied filters. -
totalAmount— total staked amount for the current request. -
unprocessedAmount— cumulative staked amount across all validators that are not yet activated for the current request. -
markers— Unique identifiers generated after creating a deposit request, tracking transactions and deposited funds.