Cluster Definition

Accept a proposed Distributed Validator Cluster

Changed on

This endpoint is used by the operators present in the operators array of a cluster definition. The operator must have accepted the latest version of Obol's terms and conditions. These operators must submit a public key (in ENR form) to serve as their identity during the DKG, along with EIP712 signatures indicating their acceptance of the terms of this DKG. Once a cluster lock has been posted for the definition, it can no longer be changed and this endpoint returns 409. The operator version must equal the definition's and be v1.10.0 or later.

put/v1/definition/{configHash}

Request

  • Base URL
    https://api.obol.tech
  • Auth
    HTTP bearer

Path parameters

configHashstring required

The config_hash calculated for a cluster definition.

Headers

authorizationstring required

EIP712 operator hash as bearer token

Request body

addressstring required

Ethereum address of Operator.

enrstring required
fork_version'mainnet' | '0x00000000' | 'goerli' | '0x00001020' | 'gnosis' | '0x00000064' | 'sepolia' | '0x90000069' | 'hoodi' | '0x10000910' required
versionstring required
enr_signaturestring required
config_signaturestring required

Example request

{
  "address": "0x000000000000000000000000000000000000dead",
  "enr": "enr://5fb90badb37c5821b6d95526a41a9504680b4e7c8b763a1b1d49d4955c848621",
  "fork_version": "0x00001020",
  "version": "v1.8.0",
  "enr_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c",
  "config_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"
}

Response

The cluster object

namestring required
uuidstring required
creatorCreator required
versionstring required
num_validatorsnumber required
thresholdnumber required
dkg_algorithmstring required
fork_versionstring required
config_hashstring required

config_hash is a 32 bytes SSZ hash of cluster config.

timestampstring required
validatorsValidator[] required
deposit_amountsstring[] required

Partial depoists.

definition_hashstring required

definition_hash is a 32 bytes SSZ hash of cluster config.

fee_recipient_addressstring required

Ethereum address to receive transaction fees.

withdrawal_addressstring required

Ethereum address to receive staked ether.

operatorsOperator[] required
consensus_protocolstring required
target_gas_limitnumber required
compoundingboolean required

Example response

{
  "name": "My Obol Cluster",
  "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
  "version": "v1.8.0",
  "num_validators": 5,
  "threshold": 3,
  "dkg_algorithm": "default",
  "fork_version": "0x00001020",
  "config_hash": "0x2204ba6c238ed2d6a8ff951d4513db993c8d6f8860468391342649bf735a87d7",
  "timestamp": "2022-07-19T18:19:58+02:00",
  "deposit_amounts": [
    "8000000000",
    "16000000000",
    "8000000000"
  ],
  "definition_hash": "0xb656f5a4a5537b5817d6bcf735d043f17f5aff568b1a7ec9102a9f687bd4510c",
  "fee_recipient_address": "0x000000000000000000000000000000000000dead",
  "withdrawal_address": "0x000000000000000000000000000000000000dead",
  "consensus_protocol": "qbft",
  "target_gas_limit": 36000000,
  "compounding": true
}

Changes

    • info

      added the media type application/json for the response with the status

    • info

      added the media type application/json for the response with the status

    • info

      added the media type application/json for the response with the status

    • info

      added the media type application/json for the response with the status

    • info

      added the media type application/json for the response with the status

    • breaking

      removed the enum value 0x01017000 of the request property

    • breaking

      removed the enum value holesky of the request property