Initiate staking by idempotently reserving validators (0x01 credentials only).
Reserves a validator
for the specific client (0x01 credentials only). Requires an idempotent key.
It takes the supplied withdrawal_pubkey
, the amount
which must be equal to 32,000,000,000 Gwei
(32 ETH
), with the following optional fields: a vault_name
, a fee_recipient
ETH1 address and builder_relays
with the array of MEV relay addresses.
It returns the deposit payload for the user to send.
Filtering options available. Customer can choose CloudProvider(s), Region(s) and ClientType(s) (see documentation for full list of possibilities) If omitted, validators allocated as per default.
Authorizations:
header Parameters
Idempotency-Key required | string <uuid> Example: f1c971b4-7114-4c4b-8ad2-a6f9e33e2cd0 the unique idempotency key for this request |
Request Body schema: application/jsonrequired
Withdrawal Public Key, the pledged Amount of 32,000,000,000 Gwei (32 ETH) and an option vault name.
withdrawal_pubkey required | string (PublicKey) ^(0x[a-fA-F0-9]{40})$ Unique Ethereum address withdrawal key: 20-bytes, hex-encoded, optional 0x prefix, case insensitive. |
amount required | string (Gwei) ^[0-9]+$ |
vault_name | string^[ a-zA-Z0-9_-]{3,20}$ |
fee_recipient | string (Eth1Address) ^0x[a-fA-F0-9]{40}$ An ethereum 1 address, uniquely identifying them. 20-bytes, hex encoded with 0x prefix, case insensitive. |
builder_relays | Array of strings (BuilderRelayAddress) [^(?:https?://)((0x[a-fA-F0-9]{96})|(0x[a-fA-F...] |
cloud_providers | Array of strings (CloudProvider) Items Enum: "azure" "aws" |
regions | Array of strings (Region) Items Enum: "as-japan" "as-singapore" "eu-sweden" "eu-ireland" "us-east" "us-central" |
client_types | Array of strings (ClientType) Items Enum: "teku" "lighthouse" |
Responses
Request samples
- Payload
{- "withdrawal_pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "amount": "32000000000",
- "vault_name": "precious_vault",
- "fee_recipient": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "cloud_providers": [
- "azure"
], - "regions": [
- "as-japan"
], - "client_types": [
- "teku"
]
}
Response samples
- 200
- 400
- 401
- 403
- 500
{- "chain_deposit_configuration": {
- "eth1_contract_address": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "chain_id": "18446744073709551615",
- "network_id": "18446744073709551615"
}, - "stake": {
- "pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "withdrawal_credentials": "string",
- "amount": "32000000000",
- "signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
- "deposit_root": "string",
- "deposit_message_root": "string",
- "hex": "string"
}, - "fee_recipient": "0x93247f2209abcacf57b75a51dafae777f9dd38bc"
}
Initiate staking by idempotently reserving validators (0x01 credentials only).
Reserves validators
for the specific client (0x01 credentials only). Requires an idempotent key.
It takes the supplied withdrawal_pubkey
, the amount
which must equal to or a multiple of 32,000,000,000 Gwei
(32 ETH
), with the following optional fields: a vault_name
, a fee_recipient
ETH1 address and builder_relays
with the array of MEV relay addresses.
It returns the deposit payloads for the user to send.
Filtering options available. Customer can choose CloudProvider(s), Region(s) and ClientType(s) (see documentation for full list of possibilities) If omitted, validators allocated as per default.
Authorizations:
header Parameters
Idempotency-Key required | string <uuid> Example: f1c971b4-7114-4c4b-8ad2-a6f9e33e2cd0 the unique idempotency key for this request |
Request Body schema: application/jsonrequired
Withdrawal Public Key, the pledged Amount of 32,000,000,000 Gwei (32 ETH) and an option vault name.
withdrawal_pubkey required | string (PublicKey) ^(0x[a-fA-F0-9]{40})$ Unique Ethereum address withdrawal key: 20-bytes, hex-encoded, optional 0x prefix, case insensitive. |
amount required | string (Gwei) ^[0-9]+$ |
vault_name | string^[ a-zA-Z0-9_-]{3,20}$ |
fee_recipient | string (Eth1Address) ^0x[a-fA-F0-9]{40}$ An ethereum 1 address, uniquely identifying them. 20-bytes, hex encoded with 0x prefix, case insensitive. |
builder_relays | Array of strings (BuilderRelayAddress) [^(?:https?://)((0x[a-fA-F0-9]{96})|(0x[a-fA-F...] |
cloud_providers | Array of strings (CloudProvider) Items Enum: "azure" "aws" |
regions | Array of strings (Region) Items Enum: "as-japan" "as-singapore" "eu-sweden" "eu-ireland" "us-east" "us-central" |
client_types | Array of strings (ClientType) Items Enum: "teku" "lighthouse" |
Responses
Request samples
- Payload
{- "withdrawal_pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "amount": "32000000000",
- "vault_name": "precious_vault",
- "fee_recipient": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "cloud_providers": [
- "azure"
], - "regions": [
- "as-japan"
], - "client_types": [
- "teku"
]
}
Response samples
- 200
- 400
- 401
- 403
- 500
{- "chain_deposit_configuration": {
- "eth1_contract_address": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "chain_id": "18446744073709551615",
- "network_id": "18446744073709551615"
}, - "stakes": [
- {
- "pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "withdrawal_credentials": "string",
- "amount": "32000000000",
- "signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
- "deposit_root": "string",
- "deposit_message_root": "string",
- "hex": "string"
}
], - "fee_recipient": "0x93247f2209abcacf57b75a51dafae777f9dd38bc"
}
Initiate staking by idempotently reserving a unique validator with 0x02 credential.
Reserves a consolidated validator
for the specific client (withdrawal credential 0x02). Requires an idempotent key.
It takes an amount
must equal or above 32,000,000,000 Gwei
(32 ETH
) and equal or below 2,048,000,000,000 Gwei
(2048 ETH
). It uses the supplied withdrawal_pubkey
, with the following optional fields: a vault_name
, a fee_recipient
ETH1 address and builder_relays
with the array of MEV relay addresses.
It returns the deposit payloads for the user to send for each validator.
Filtering options available. Customer can choose CloudProvider(s), Region(s) and ClientType(s) (see documentation for full list of possibilities) If omitted, validators allocated as per default.
Authorizations:
header Parameters
Idempotency-Key required | string <uuid> Example: f1c971b4-7114-4c4b-8ad2-a6f9e33e2cd0 the unique idempotency key for this request |
Request Body schema: application/jsonrequired
Stake a single consolidated validator (0x02 withdrawal credential)
withdrawal_pubkey required | string (PublicKey) ^(0x[a-fA-F0-9]{40})$ Unique Ethereum address withdrawal key: 20-bytes, hex-encoded, optional 0x prefix, case insensitive. |
amount required | string (Gwei) ^[0-9]+$ |
vault_name | string^[ a-zA-Z0-9_-]{3,20}$ |
fee_recipient | string (Eth1Address) ^0x[a-fA-F0-9]{40}$ An ethereum 1 address, uniquely identifying them. 20-bytes, hex encoded with 0x prefix, case insensitive. |
builder_relays | Array of strings (BuilderRelayAddress) [^(?:https?://)((0x[a-fA-F0-9]{96})|(0x[a-fA-F...] |
cloud_providers | Array of strings (CloudProvider) Items Enum: "azure" "aws" |
regions | Array of strings (Region) Items Enum: "as-japan" "as-singapore" "eu-sweden" "eu-ireland" "us-east" "us-central" |
client_types | Array of strings (ClientType) Items Enum: "teku" "lighthouse" |
Responses
Request samples
- Payload
{- "withdrawal_pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "amount": "32000000000",
- "vault_name": "precious_vault",
- "fee_recipient": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "cloud_providers": [
- "azure"
], - "regions": [
- "as-japan"
], - "client_types": [
- "teku"
]
}
Response samples
- 200
- 400
- 401
- 403
- 500
{- "chain_deposit_configuration": {
- "eth1_contract_address": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "chain_id": "18446744073709551615",
- "network_id": "18446744073709551615"
}, - "stakes": [
- {
- "pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "withdrawal_credentials": "string",
- "amount": "32000000000",
- "signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
- "deposit_root": "string",
- "deposit_message_root": "string",
- "hex": "string"
}
], - "fee_recipient": "0x93247f2209abcacf57b75a51dafae777f9dd38bc"
}
Get deposit payload for the previously reserved stake.
It returns the deposit payloads for the the previously reserved stake.
Authorizations:
path Parameters
stakeID required | string (UUID) ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}... Example: deadbeef-cafe-1337-2021-339ab8909701 Stake ID |
Responses
Response samples
- 200
- 400
- 404
- 500
{- "chain_deposit_configuration": {
- "eth1_contract_address": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "chain_id": "18446744073709551615",
- "network_id": "18446744073709551615"
}, - "stakes": [
- {
- "pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc",
- "withdrawal_credentials": "string",
- "amount": "32000000000",
- "signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
- "deposit_root": "string",
- "deposit_message_root": "string",
- "hex": "string"
}
], - "fee_recipient": "0x93247f2209abcacf57b75a51dafae777f9dd38bc"
}
Request a signed voluntary exit message with optional encryption.
Get Signed Voluntary Exit Message
This endpoint prepares a signed voluntary exit message. It won't submit the message to the consensus client.
The are two possible cases: the Default and Open PGP cyphered.
Default voluntary exit
The successful response object has two fields:exit_transaction
and fork_version
.
exit_transaction
contains a signed voluntary exit messagefork_version
is the current fork version.
Open PGP cyphered voluntary exit
The successful response object has the same exit_transaction
and fork_version
fields as in the previous case. The difference is that exit_transaction
is an 0x
-prefixed hex encoded string which contains a signed voluntary exit message encrypted as an ASCII armored message.
The customer should manually provide their armored PGP public key, and set the cypher
query parameter to openpgp
.
Summary of applied rules
- No PGP public key given and the
cypher=openpgp
->400 - bad request
- PGP public key given and
cypher
is not specified ->400 - bad request
- PGP public key given and
cypher=openpgp
->Open PGP cyphered
. - No PGP public key given and
cypher
is not specified ->default
.
Authorizations:
path Parameters
validatorID required | string (ValidatorID) Examples:
Validator identifier |
query Parameters
cypher | string Value: "openpgp" Cypher type. The only available option at the moment is |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "exit_transaction": {
- "message": {
- "epoch": 0,
- "validator_index": 0
}, - "signature": "0x2126140d542c1c23533e015b4b501715002a0c565c25182a5a29352a4a545652260757250b45010b5c3f31285e0103401520355a133e4e005538275c081e1b245f4421045f2e481208574b05262528624c27134c12590a420c3e472f46191159"
}, - "fork_version": "0x00000001"
}
Request a signed voluntary exit message with optional encryption.
Submit voluntary validator exit
This endpoint submits the voluntary validator exit by preparing and submitting a signed voluntary exit message. It will submit the message to the consensus client. It does not support cyphering.
Authorizations:
path Parameters
validatorID required | string (ValidatorID) Examples:
Validator identifier |
query Parameters
cypher | string Value: "openpgp" Cypher type. The only available option at the moment is |
Responses
Response samples
- 400
- 401
- 403
- 404
- 500
{- "code": 400,
- "message": "api error: code 400: bad request: cannot initiate validator voluntary exit: validator is not active"
}
Add ETH1 withdrawal public key (to create 0x01 withdrawals credentials).
Add ETH1 withdrawal public key (to create 0x01 withdrawals credentials).
Authorizations:
Request Body schema: application/jsonrequired
Withdrawal public key with label.
id | string (UUID) ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}... Unique identifier. |
name required | string^[ a-zA-Z0-9_-]{3,20}$ |
status | string |
public_key required | string (PublicKey) ^(0x[a-fA-F0-9]{40})$ Unique Ethereum address withdrawal key: 20-bytes, hex-encoded, optional 0x prefix, case insensitive. |
Responses
Request samples
- Payload
{- "id": "deadbeef-cafe-1337-2021-339ab8909701",
- "name": "string",
- "status": "string",
- "public_key": "0x93247f2209abcacf57b75a51dafae777f9dd38bc"
}
Response samples
- 200
- 400
- 409
- default
{- "id": "deadbeef-cafe-1337-2021-339ab8909701",
- "name": "string",
- "status": "string",
- "public_key": "0x93247f2209abcacf57b75a51dafae777f9dd38bc"
}