---
title: "Generate a validator full exit intent message"
method: POST
path: "/v1/ethereum/{network}/withdrawal-intents/exit"
tags: ["Ethereum"]
---

# Generate a validator full exit intent message

`POST /v1/ethereum/{network}/withdrawal-intents/exit`

Generates an exit message that a user can sign as part of an exit transaction and submit to the official Ethereum
withdrawal smart contract. The response includes the withdrawal contract address for the specified network in the
request path.

To successfully submit an exit withdrawal intent, the validator must meet the following conditions:
- The withdrawal credentials prefix must be either '0x01' or '0x02' and contain the withdrawal address.
- The validator must be in an active state and have been active for at least 256 epochs.
- The validator's balance must be greater than '0' Gwei.
- There must be no pending partial withdrawals with a total sum exceeding '0' Gwei.

**Important:** A successful transaction to the withdrawal smart contract does not guarantee that the validator will
exit on the Consensus Layer (CL), as validator state changes may affect the process. Standard gas fees will apply
regardless of the CL outcome.

## Request body

- NewWithdrawalEthereum — Required data for Ethereum full withdrawal
  - `withdrawal_address` string, hex, required — Hex-encoded Ethereum [account or smart contract address](https://ethereum.org/en/developers/docs/accounts/).
  - `validator` string, hex, required — Public Key of an asymmetric key-pair.

## Response `200`

Created

- EthereumWithdrawalResponse — Result of a new withdrawal intent request.
  - `withdraw_intent_id` string, uuid, required — Unique idenifier for a withdrawal intent.
  - `customer_id` string, required — Unique identifier for a customer
  - `protocol` 'ethereum', required — Ethereum protocol
  - `network` 'mainnet' | 'hoodi', required — Ethereum network
  - `ethereum` WithdrawalIntentEthereum — Ethereum Full Withdraw response
    - `validator` string, base64, required — A BLS public Key.
    - `amount` string, required — Amount of ETH (denominated in Gwei).
    - `withdrawal_address` string, hex, required — Hex-encoded Ethereum [account or smart contract address](https://ethereum.org/en/developers/docs/accounts/).
    - `withdrawal_credentials` string, hex, required — Hexadecimal encoded [withdrawal credentials](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/validator.md#withdrawal-credentials) which can be either a BLS public key or an Ethereum account address. This parameter currently accepts ETH1 and BLS withdrawal credentials, but it is considered deprecated after the Capella/Shanghai fork. All users are now advised to use an ETH1 withdrawal address, specified through the `withdrawal_address` parameter as this is required to enable the ongoing accrual of rewards. For more information regarding creating withdrawal credentials, please see the official [Ethereum Launchpad FAQ](https://launchpad.ethereum.org/en/faq#withdrawal-credentials).
    - `unsigned_data` string, base64, required — Generated Ethereum unsigned transaction data
    - `contract_address` string, hex, required — Hex-encoded Ethereum [account or smart contract address](https://ethereum.org/en/developers/docs/accounts/).
    - `estimated_gas` integer, required — Gas estimation of the transaction

## Other responses

- `400` — Invalid request.
- `401` — Unauthorized
- `500` — Internal server error
- `503` — Insufficient validators available to process Stake Intent request

---

[API](https://skmtc.dev/blockdaemon/apis/staking-api.md) · [All operations](https://skmtc.dev/blockdaemon/apis/staking-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/blockdaemon/staking-api/revisions/f94e296a08a3/schema)
