It takes five steps to stake ETH

Step 1: Provision Validators

This triggers the creation of validator keypairs on our infrastructure. The provisioning of validators is asynchronous and returns a status 200 and a position_id. You will need to poll GET /validators (filtered with the withdrawal_address and status=provisioned) to know when your validators have been provisioned.

See documentation for POST /provision

See documentation for GET /validators

Step 2: Build Staking Transaction

Once validators have been provisioned you will need to get a staking transaction (also called funding or deposit transaction). We will build it for you and return a few different options depending on how you intend to get it signed with your custody solution (raw payload or contract calldata). You may also choose to use the provided validator data as input for building the staking transaction yourself.

See documentation for POST /funding_transactions

See guide for setting the gas limit in staking transactions

Step 3. Sign Staking Transaction

This step is on you. Depending on your custody solution you will have different ways to sign the staking transaction. We have built guides to help you navigate this:

Step 4. Broadcast Staking Transaction

Once you have signed the staking transaction we will broadcast it, initiating the validator activation process.

Step 5. Track Validators Activation

This step is optional. We return real time on chain status and an estimate of activation (aka when the validators will start receiving rewards)

See documentation for GET /validators

Step 6. Exit Validators

Exit multiple validators at once by passing either specific public keys or a withdrawal address and an amount of ETH

See documentation for POST /exit