Skip to main content

Validator

GET /v1/user/validators

Get list of user validators.

curl -H "Authorization: Bearer {{access_token}}" -X GET "$ETHGAS_API_URL/v1/user/validators"

Request

No parameters required.

Response Body

NameTypeDescription
validatorsobject[]List of validator objects
└ publicKeystringValidator public key in hexadecimal format (48 bytes)
└ ofacbooleanOFAC compliance status for this validator

GET /v1/p/pools

Get list of pool entities.

curl -X GET "$ETHGAS_API_URL/v1/p/pools"

Request

No parameters required.

Response Body

NameTypeDescription
poolEntitiesobject[]List of pool entities
└ poolEntityIdintegerPool entity ID
└ namestringPool name

POST /v1/p/validator/checkIsOfac

Check whether one or more validator public keys are flagged as OFAC.

curl -X POST "$ETHGAS_API_URL/v1/p/validator/checkIsOfac?publicKeys=0xabc...,0xdef..."

Request

ParameterRequiredTypeDescription
publicKeysYESstringComma-separated validator public keys (hex, max 100)

Response Body

NameTypeDescription
ofacValidatorstring[]Subset of publicKeys that are OFAC-flagged

POST /v1/validator/register

Validator registering their public key into ETHGas.

curl -H "Authorization: Bearer {{access_token}}" -X POST "$ETHGAS_API_URL/v1/validator/register?publicKey=0x123423abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef..."

Request

ParameterRequiredTypeDescription
publicKeyYESstringPublic key of the validator in hexadecimal

Response Body

FieldTypeDescription
availablebooleanIndicates whether the request succeeded.
verifiedbooleanIndicates if the validator is verified (present when available is true).
messageobjectVerification message for validator to sign.

POST /v1/validator/verify

Verify validator public key by verifying with the signed message.

curl -H "Authorization: Bearer {{access_token}}" -X POST "$ETHGAS_API_URL/v1/validator/verify?publicKey=0x1234567890abcdef...&signature=0xabcdef1234567890..."

Request

ParameterRequiredTypeDescription
publicKeyYESstringPublic key of the validator in hexadecimal
signatureYESstringSignature in hexadecimal

Response Body

FieldTypeDescription
resultintOrdinal value representing the outcome of the verification
descriptionstringHuman-readable message detailing the verification result

POST /v1/validator/deregister

Validator deregistering their public key from ETHGas.

curl -H "Authorization: Bearer {{access_token}}" -X POST "$ETHGAS_API_URL/v1/validator/deregister?publicKeys=0x123423abcdef...,0x3459871234567890abcdef..."

Request

ParameterRequiredTypeDescription
publicKeysYESstringComma-separated public keys of the validator in hexadecimal

Response Body

FieldTypeDescription
successbooleanWhether API call is successful or not

GET /v1/validator/fees

Retrieve the list of fee payouts for a given validator key.

curl -H "Authorization: Bearer {{access_token}}" -X GET "$ETHGAS_API_URL/v1/validator/fees?publicKey=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"

Request

ParameterRequiredTypeDescription
publicKeyNOstringPublic key for validators
startSlotNOintegerStart slot number
limitNOintegerMax number of records to return
ascNObooleantrue for asc order, default false for desc

Response Body

NameTypeDescription
feesobject[]List of validator fee objects
└ slotintegerSlot number of the block
└ accountIdintegerUnique ID for each of the user's current and trading accounts assigned by ETHGas
└ publicKeystringPublic key of the validator in hexadecimal
└ validatorPayoutAddressstringAddress of the fee recipient in hexadecimal
└ txHashstringTransaction hash of payout transaction
└ quantitystringPayout quantity of the slot in Eth
└ amountstringPayout amount in payout transaction in Eth
└ gasFeestringGas fee charged in payout transaction
└ updateDateintegerLast updated timestamp
└ batchPayoutSlotsinteger[]Included previous slots
note
  • Gas fee is calculated based on base fee of last block of incoming slot.
  • Payout amount will include extra payouts which were not paid in previous slot; validator will receive more than payout quantity in payout transaction.

POST /v1/validator/onchain/payout

Enable or disable on-chain fee payouts for the authenticated user's validator.

curl -H "Authorization: Bearer {{access_token}}" -X POST "$ETHGAS_API_URL/v1/validator/onchain/payout?enable=0"

Request

ParameterRequiredTypeDescription
enableYESbooleanWhether onchain payout is enabled for the user's validators. Default = true

Response Body

NameTypeDescription
successbooleanWhether API call is successful or not
dataobjectResponse body (empty on success)

POST /v1/validator/update/ofac

Update OFAC flag for the authenticated user's validators. If publicKeys is omitted, it updates all validators for the user.

curl -H "Authorization: Bearer {{access_token}}" -X POST "$ETHGAS_API_URL/v1/validator/update/ofac?publicKeys=0xabc...,0xdef...&ofac=true"

Request

ParameterRequiredTypeDescription
publicKeysNOstringComma-separated validator public keys (hex, max 100). If omitted, updates all user validators
ofacNObooleanOFAC flag (default: false)

Response Body

NameTypeDescription
successbooleanWhether API call is successful or not
dataobjectResponse body (empty on success)

Error Codes

CodeDescription
INVALID_PUBLIC_KEYInvalid validator public key format
VALIDATORS_MAXMaximum 100 validators allowed per request

POST /v1/validator/verify/batch

Verify multiple validator BLS signatures in one request.

curl -H "Authorization: Bearer {{access_token}}" -X POST "$ETHGAS_API_URL/v1/validator/verify/batch?publicKeys=0xabc...,0xdef...&signatures=0xsig1...,0xsig2..."

Request

ParameterRequiredTypeDescription
publicKeysYESstringComma-separated validator public keys (hex, max 100)
signaturesYESstringComma-separated BLS signatures (hex), must match publicKeys count

Response Body

NameTypeDescription
dataobjectMap of publicKey to verification result

Error Codes

CodeDescription
INVALID_PUBLIC_KEYInvalid validator public key format
INVALID_SIGNATUREInvalid signature format
VALIDATOR_SIGNATURE_SIZE_NOT_MATCH_PUBLIC_KEYpublicKeys and signatures size mismatch
VALIDATOR_SIGNATURE_MAXToo many signatures (max 100)