Ethereum

Provision Validators

post

The staking endpoint must be invoked by the client to facilitate the staking action. When a request to provision more than 100 validators is received, it will be split into batches, each containing a maximum of 100 validators, and then processed. A total of 1,000 validators can be provisioned per request, across 10 batches.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
client_req_idstringRequired

A unique identifier for the staking request generated by the client.

Example: 49bf80cb-c7ca-4082-a526-8afab545cc62
networkstring · enumRequired

The network on which validators should be created. Supported values are;

  • mainnet
  • hoodi
Possible values:
withdrawal_credentials_typeundefined · enumOptional

The withdrawal credential type of the validator(s) to be created. Supported values are;

  • 0x01 (Default)
  • 0x02
Default: 0x01Example: 0x02Possible values:
amounts_unitundefined · enumOptional

The unit in which the staking amount is specified for withdrawal_credential_type = 0x02 validators in the amounts field. Supported values are:

  • ETH
  • GWEI

Conditionally required if the withdrawal_credential_type = 0x02.

Example: ETHPossible values:
amountsinteger · int32[]Optional

The Ethereum amounts to be staked, specified in either ETH or GWEI. This is required if the withdrawal credentials type is 0x02.

  • When specified in ETH, up to 9 decimal places are supported.
  • When specified in GWEI, only whole numbers are supported.
  • Any additional decimal places will be ignored.
Example: 40
validator_countinteger · int32Required

The number of validators required. A maximum of 1000 validators are supported

Example: 1
withdrawal_addressstringRequired

The ETH account (wallet) used for the withdrawal credentials of the validators. This is the address that will receive consensus rewards and unstaked ETH after exiting.

Example: 0x1D1479C185d32EB90533a08b36B3CFa5F84A0E6B
fee_recipient_addressstringOptional

The ETH account (wallet) that will receive the execution layer rewards. If not provided, this will be defaulted to the withdrawal address.

Example: 0x1D1479C185d32EB90533a08b36B3CFa5F84A0E6B
regionstring · enumOptional

The geographic region where the validator will be created. Supported values are;

  • US
  • EU (Default)
  • KR
Default: EUPossible values:
accountstringOptional

The account name registered on the platform that is associated with the client's customer. If not provided, requests will be assigned to a default account.

Example: BR_Account3
Responses
chevron-right
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/ethereum/validators

Exit Validators

post

The exit endpoint enables clients to initiate validator withdrawals by broadcasting voluntary exit messages to the beacon chain. It can be enabled in three ways.

  • Validator Public Keys: Exit from the network using the specified validator public addresses.

  • Validator Indexes: Exit from the network using the specified validator indexes.

  • Withdrawal Address with Validator Count: Exit from the network using the specified withdrawal address and validator count. Only type 0x01 validators can be exited using this method.

Each request type can handle exiting only up to 250 validators at once.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
client_req_idstringRequired

A unique identifier generated and sent by the client for the exit request. Refer Client Request Identifier for further details.

Example: 79bf80cb-c7ca-4082-a526-8afab545cc62
networkstring · enumRequired

The network on which validators were created. Supported values are;

  • mainnet
  • hoodi
Possible values:
typeinteger · enumRequired

Indicates the type of attribute used to identify the validators to exit. The possible values are,

  • 1 (pubkey)
  • 2 (validator_index)
  • 3 (withdrawal_address)
Example: 1Possible values:
pubkeysstring[]Optional

List of validator public keys to be exited. This is required if the exit type is 1. A maximum of 250 public keys can be specified.

Example: 0x904144048d9845d83adac25e94d63f8ccd4a04e71f0c4440ce5b08d30e0851ddb209f2cca32a987d953d4901b409f8b4
validator_indexesinteger · int32[]Optional

The list of validator indexes to be exited. Required if exit type is 2. A maximum of 250 validator indexes can be specified.

Example: 1142745
withdrawal_addressstringOptional

The withdrawal address of the validators that should be exited. Required if exit type is 3

Example: 0x793aA4ea0Cb9fBBF0033320C3F3795ef713a3BEe
validator_countinteger · int32Optional

Required if exit type is 3. The Max count should be 250.

Example: 1
Responses
chevron-right
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/ethereum/validators/exit

Derive Pre-Signed Exit Message

post

The pre-signed exit endpoint enables clients to request pre-signed exit messages for validators. When clients decide to exit their validators, the pre-signed exit message can be independently broadcasted to the consensus node. The validators must be in an active state for at-least 256 epochs in order to derive the encrypted pre-signed exit message. Before calling this endpoint, the client must create an RSA4096 key pair.This is a separate key pair from the one used for JWT signature generation.The client needs to share the public key from this new key pair with the platform. The platform will use this public key to encrypt the pre-signed exit message with the RSA_OAEP_SHA_256 algorithm.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
client_req_idstringRequired

A unique identifier generated and sent by the client for the exit request. Refer Client Request Identifier for further details.

Example: 79bf80cb-c7ca-4082-a526-8afab545cc62
networkstring · enumRequired

The network on which validators were created. Supported values are;

  • mainnet
  • hoodi
Possible values:
typeinteger · enumRequired

Indicates the type of attribute used to identify the validators to exit. The possible values are,

  • 1 (pubkey)
  • 2 (validator_index)
  • 3 (withdrawal_address)
Example: 1Possible values:
pubkeysstring[]Optional

List of validator public keys to be exited. This is required if the exit type is 1. A maximum of 250 public keys can be specified.

Example: 0x904144048d9845d83adac25e94d63f8ccd4a04e71f0c4440ce5b08d30e0851ddb209f2cca32a987d953d4901b409f8b4
validator_indexesinteger · int32[]Optional

The list of validator indexes to be exited. Required if exit type is 2. A maximum of 250 validator indexes can be specified.

Example: 1142745
withdrawal_addressstringOptional

The withdrawal address of the validators that should be exited. Required if exit type is 3

Example: 0x793aA4ea0Cb9fBBF0033320C3F3795ef713a3BEe
validator_countinteger · int32Optional

Required if exit type is 3. The Max count should be 250.

Example: 1
Responses
chevron-right
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/ethereum/validators/exit/pre-signed

Get All Validators or by Staking Reference ID

get

The get all validators endpoint returns the details of the validators provisioned for the given client for the specified network in a paginated manner. This endpoint can also be used to return the details of the validators belonging to the given client for the specified network and staking reference ID. All timestamp fields in the response are provided in UTC timezone.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
networkstringRequired

Applicable values are mainnet and hoodi

Query parameters
pagestringOptional

The current page number requested by the client, if not specified, should be defaulted to 1.

sizestringOptional

The number of entries per page, if not presented in the request, should be defaulted to the maximum value of 250.

staking_ref_idstringOptional

The staking reference ID returned for the staking request.

include_presigned_exitstringOptional

This indicates whether the pre-signed exit message to be included in the response or not. It’s a boolean parameter, defaulted to "false".

Responses
chevron-right
200

Sample success response payload. See Response schema below for wrapper

application/json
get
/v1/ethereum/{network}/validators

Get a Single Validator

get

The get single validator endpoint returns the validator information for the specified validator’s public key. All timestamp fields in the response are provided in UTC timezone.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
networkstringRequired

Applicable values are mainnet and hoodi.

pubkeystringRequired

The public key of the validator

Query parameters
include_presigned_exitstringOptional

This indicates whether the pre-signed exit message to be included in the response or not. It’s a boolean parameter, defaulted to “false”.

Responses
chevron-right
200

Sample success response payload. See Response schema below for wrapper

application/json
get
/v1/ethereum/{network}/validators/{pubkey}

Get Validators Summary

get

This endpoint returns the summary of the validator count by status belonging to the staking partner associated with the given API Key.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
networkstringRequired

Applicable values are mainnet and hoodi.

Responses
chevron-right
200

Sample success response payload. See Response schema below for wrapper

application/json
get
/v1/ethereum/{network}/validators/summary

Withdrawals

post

The withdrawals endpoint returns a history of withdrawals (partial and full) from the consensus layer to the execution layer.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
pagestringOptional

The current page number requested by the client, if not specified, should be defaulted to 1.

sizestringOptional

The number of entries per page, if not presented in the request, should be defaulted to the maximum value of 250.

Body
networkstring · enumRequired

The network on which validators should be created. Supported values are;

  • mainnet
  • hoodi
Possible values:
startstringRequired

It specifies the start epoch if the type is 1, or the start date in the "YYYY-MM-DD" format (UTC timezone) if the type is 2

Example: 200000
endstringRequired

It specifies the end epoch if the type is 1, or the end date in the "YYYY-MM-DD" format (UTC timezone) if the type is 2

Example: 200100
rollup_typestring · enumRequired

Denotes the granularity of rewards breakdown. The applicable values are,

Possible values:
pubkeysstring[]Optional

List of validator public keys to fetch the rewards breakdown. A maximum of 50 entries are allowed.

Example: 0xab28a95b78913394e2a345e0e5866add7ed7e3fb7a512a7e36451a8b2b95439ccde878eaa4d31fedd6e684b04006776a
Responses
chevron-right
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/ethereum/validators/withdrawals

Rewards

post

The rewards endpoint returns validators accrued rewards on execution and consensus layers at epoch and daily basis. This endpoint returns rewards for validators created via provision validators endpoint as well as registered for validator monitoring. This endpoint accepts the filtering by start and end (can be epoch or date), and validator public keys.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
pagestringOptional

The current page number requested by the client, if not specified, should be defaulted to 1.

sizestringOptional

The number of entries per page, if not presented in the request, should be defaulted to the maximum value of 250.

Body
networkstring · enumRequired

The network on which validators should be created. Supported values are;

  • mainnet
  • hoodi
Possible values:
startstringRequired

It specifies the start epoch if the type is 1, or the start date in the "YYYY-MM-DD" format (UTC timezone) if the type is 2

Example: 200000
endstringRequired

It specifies the end epoch if the type is 1, or the end date in the "YYYY-MM-DD" format (UTC timezone) if the type is 2

Example: 200100
rollup_typestring · enumRequired

Denotes the granularity of rewards breakdown. The applicable values are,

Possible values:
pubkeysstring[]Optional

List of validator public keys to fetch the rewards breakdown. A maximum of 50 entries are allowed.

Example: 0xab28a95b78913394e2a345e0e5866add7ed7e3fb7a512a7e36451a8b2b95439ccde878eaa4d31fedd6e684b04006776a
Responses
chevron-right
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/ethereum/validators/rewards

Consolidate Validators

post

The consolidate endpoint enables clients to perform the following actions:

  • Convert withdrawal credential type 0x01 validators to the 0x02 type.

  • Consolidate a type 0x01 or 0x02 validator with a type 0x02 validator by adding the balance of the former to the latter while exiting the former.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
client_req_idstringRequired

A unique identifier for the staking request generated by the client.

Example: 98bf80uy-c7ca-4082-a526-8asen545cc62
networkundefined · enumRequired

The network to which the source and destination validators belong to. Supported values are:

  • mainnet
  • hoodi
Example: hoodiPossible values:
source_pubkeysstring[] · min: 1 · max: 50Required

The type 0x01 validators to be converted to type 0x02 or type 0x01 and 0x02 validators to be merged with the destination_pubkey.

A maximum of 50 validators are supported.

Example: 0x84d7a9fc78c41f25396c8fd144c9b43d093eff03f569235728e1f9983acebf9a476c13c969d5a099c21412cdd703fbf4
destination_pubkeystringOptional

The validator that will hold the merged balance. Must be a 0x02 type validator.

Example: 0xaa01b02b16b7a56850cc9b7e1275e8d49e16fc12bd30b4bdf2ef68b5543822b2466101cb541b8815b5ca1721120e4f9d
Responses
chevron-right
200

OK

application/json
post
/v1/ethereum/validators/consolidate

Exit Validators via the Execution Layer

post

The execution-layer triggerable exit endpoint enables clients to initiate validator exits directly via the validator’s withdrawal address. This functionality is applicable to both withdrawal credential type 0x01 and 0x02 validators.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
client_req_idstringRequired

A unique identifier for the execution layer triggerable exit request provided by the client.

Example: 09ff80uy-c7ca-8765-a526-8shdyd45cc62
networkundefined · enumRequired

Network to which the validators belongs to. Supported values are:

  • mainnet
  • hoodi
Possible values:
typeundefined · enumRequired

Indicates the type of attribute used to identify the validators to exit. The possible values are:

  • 1 (pubkey)
  • 2 (validator_index)
Possible values:
pubkeysstring[] · min: 1 · max: 100Optional

List of validator public keys to be exited.

This is required if the exit type is 1.

A maximum of 100 public keys can be specified.

Example: 0x904144048d9845d83adac25e94d63f8ccd4a04e71f0c4440ce5b08d30e0851ddb209f2cca32a987d953d4901b409f8b4
validator_indexesinteger · int32[] · min: 1 · max: 100Optional

List of validator indexes to be exited.

This is required if the exit type is 2.

A maximum of 100 validator indexes can be specified.

Example: 1142745
Responses
chevron-right
200

OK

application/json
post
/v1/ethereum/validators/el-triggerable-exit

Partially Withdraw Validator Balances via the Execution Layer

post

For validators with withdrawal credential type 0x01, any balance in excess of 32 ETH is automatically swept to the validator’s withdrawal address by the protocol. In contrast, 0x02 validators do not support automatic sweeping. Instead, clients can initiate partial withdrawals via the API.

The partial withdrawal amount is computed as the lesser of:

  • the user-specified withdrawal amount, and

  • (current balance − 32 ETH − pending withdrawals)

This ensures that the maximum amount that can be withdrawn from a 0x02 validator is limited to the validator's effective balance in excess of 32 ETH, excluding any amounts already pending withdrawal.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
client_req_idstringRequired

A unique identifier for the execution layer triggerable withdrawal request provided by the client.

Example: 09ff80uy-c7ca-8765-a526-8shdyd45cc62
networkundefined · enumRequired

Network to which the validators belongs to. Supported values are:

  • mainnet
  • hoodi
Possible values:
typeundefined · enumRequired

Indicates the type of attribute used to identify the validators that need partial withdrawals. The possible values are:

  • 1 (pubkey)
  • 2 (validator_index)
Possible values:
Responses
chevron-right
200

OK

application/json
post
/v1/ethereum/validators/el-triggerable-withdrawal

Top Up Validators

post

The top-up endpoint allows staking partners to add additional ETH to existing validators with withdrawal credential type 0x01 or 0x02. At this point Galaxy does not support batch top ups.

  • 0x01 validators: The valid top up amount must be between 1 ETH and the amount required to reach a total balance of 32 ETH.

  • 0x02 validators: The valid top up amount must be between 1 ETH and the amount required to reach a total balance of 2048 ETH.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
client_req_idstringRequired

A unique identifier for the execution layer triggerable withdrawal request provided by the client.

Example: 19oky65uy-c7ca-8765-a526-8svsgd45cj09
networkundefined · enumRequired

Network to which the validators belongs to. Supported values are:

  • mainnet
  • hoodi
Example: hoodiPossible values:
Responses
chevron-right
200

OK

application/json
post
/v1/ethereum/validators/topup

Get Fees

post

The get fees endpoint allows clients to retrieve the current fee applicable to the following actions on existing validators:

  • Consolidation or conversion

  • Execution-layer triggerable exits or partial withdrawals

Fees are dynamic and vary based on the number of pending requests in the corresponding processing queue. It is recommended to call this endpoint before submitting a request to ensure awareness of the applicable fee.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
networkundefined · enumRequired

Network to which the validators belongs to. Supported values are:

  • mainnet
  • hoodi
Example: hoodiPossible values:
operation_typeundefined · enumRequired

Indicates the type of operation for which the user is requesting fees.

  • 1 (validator_consolidation_or_conversion)
  • 2 (el_triggerable_exit_or_withdrawal)
Possible values:
Responses
chevron-right
200

OK

application/json
post
/v1/ethereum/validators/fee

Get Deposit Data

get

The deposit data endpoint facilitates the retrieval of the Provision Validators endpoint’s response, which contains the deposit data, using the Client Request ID of the original request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
client_req_idstringOptional

The Client Request ID applicable to the Provision Validators request for which deposit data is required.

Responses
chevron-right
200

OK

application/json
get
/v1/ethereum/validators/deposit-data

Update Fee Recipient Address

post

The update fee recipient address endpoint allows clients to update their validators’ fee recipient address and direct execution-layer rewards to a new wallet.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
client_req_idstringRequired

A unique identifier for the request provided by the client.

Example: 09kkk80uy-c7ca-8765-a526-8shdyd45cj85
networkstringRequired

Network to which the validators belong to.

Possible values:

  • mainnet
  • hoodi
Example: mainnet
typeintegerRequired

Indicates the type of attribute used to identify the validators that need address changes. The possible values are,

  • 1 (pubkeys)

2 (validator_index)

Example: 1
Responses
chevron-right
200

OK

application/json
post
/v1/ethereum/validators/update-fee-recipient

Last updated