These are the steps for staking/unstaking ETH.

For technical specifications including delegation requirements, reward mechanisms, slashing conditions, see our [Ethereum Protocol Knowledge doc](https://docs.figment.io/docs/ethereum#/).

### Create Validators  
This creates validator keypairs on our infrastructure and returns validator objects and a staking transaction you can sign.

- [Create 0x02 Validators](https://docs.figment.io/reference/create-pectra-validators)

### Sign & Broadcast the Staking Transaction  
Depending on your custody solution you will have different ways to sign the staking transaction. Examples:

- [Proprietary custody](https://docs.figment.io/recipes/stake-eth-from-hot-wallet-1#/)  
- [Fireblocks](https://docs.figment.io/recipes/stake-eth-from-fireblocks#/)  
- [DFNS](https://docs.figment.io/recipes/stake-eth-from-dfns#/)

We have built guides to help you navigate this:

- [\[Guide\] Unsigned staking transaction formats](https://docs.figment.io/docs/signing-transactions)
- [\[Guide\] Set gas limits on staking transaction](https://docs.figment.io/docs/our-eth-batch-smart-contract)

### Track Validators Activation  
We return real time on chain statuses and estimates for activation (aka when the validators will start receiving rewards). This step is optional.

- [\[Guide\] The Lifecycle of a Validator](https://docs.figment.io/docs/lifecycle-eth-validator)
- [\[API Ref\] `GET /ethereum/validators`](https://docs.figment.io/reference/get-validators)

### Get Rewards  
Returns validators balances and gross rewards, broken down between consensus and exection layer, and by epoch or daily aggregations.

- [\[API Ref\] `POST /ethereum/rewards`](https://docs.figment.io/reference/eth-rewards)

### Exit Validators  
Get exit messages via `GET /ethereum/validators` to exit yourself, or exit on demand (specific public keys or by withdrawal address) with `POST /ethereum/validators/exits`

- [\[Guide\] Exiting validators](https://docs.figment.io/docs/exiting-eth-validator)
- [\[API Ref\] `GET /ethereum/validators`](https://docs.figment.io/reference/get-validators)
- [\[API Ref\] `POST /ethereum/validators/exits`](https://docs.figment.io/reference/exit-validators)
