Cluster Lock

Retrieve a Distributed Validator Cluster Lock Object

get

This endpoint is used to retrieve a cluster lock object.

Path parameters
lockHashstringRequired

The lock_hash calculated for a cluster lock.

Responses
200
The cluster lock object
application/json
Responseany of
get
GET //lock/{lockHash} HTTP/1.1
Host: api.obol.tech
Accept: */*
{
  "cluster_definition": {
    "name": "My Obol Cluster",
    "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
    "creator": {},
    "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",
    "validators": [
      {}
    ],
    "deposit_amounts": [
      "8000000000",
      "16000000000",
      "8000000000"
    ],
    "definition_hash": "0xb656f5a4a5537b5817d6bcf735d043f17f5aff568b1a7ec9102a9f687bd4510c",
    "fee_recipient_address": "0x000000000000000000000000000000000000dead",
    "withdrawal_address": "0x000000000000000000000000000000000000dead",
    "operators": [
      {}
    ],
    "consensus_protocol": "qbft",
    "target_gas_limit": 36000000,
    "compounding": true
  },
  "distributed_validators": [
    {}
  ],
  "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
  "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
  "node_signatures": [
    "text"
  ]
}

Retrieve a list of Distributed Validator Cluster Lock Objects

get

This endpoint is used to search for Cluster Lock Objects that match a substring of their lock_hash.

Path parameters
networkstringRequired

The network to retrieve clusters on

Example: {"summary":"Ethereum Mainnet","value":"mainnet"}
Query parameters
partialLockHashstringRequired

A substring of the lock_hash calculated for a cluster lock.

partialClusterNamestringRequired

A substring of the cluster name.

pageintegerRequired

The page number to retrieve.

Default: 0
limitintegerRequired

The number of cluster lock objects to return.

Default: 100
Responses
200
A list of Distributed Validator Clusters which the lock hash matches.
application/json
Responseany of
get
GET //lock/search/{network} HTTP/1.1
Host: api.obol.tech
Accept: */*
{
  "cluster_locks": [
    "text"
  ],
  "total_count": 2,
  "total_pages": 4
}

Retrieve a list of Distributed Validator Cluster Lock Objects

get

This endpoint is used to search for Cluster Lock Objects that match a substring of their lock_hash.

Path parameters
networkstringRequired

The network to retrieve clusters on

Example: {"summary":"Ethereum Mainnet","value":"mainnet"}
Query parameters
partialLockHashstringRequired

A substring of the lock_hash calculated for a cluster lock.

partialClusterNamestringRequired

A substring of the cluster name.

pageintegerRequired

The page number to retrieve.

Default: 0
limitintegerRequired

The number of cluster lock objects to return.

Default: 100
Responses
200
A list of Distributed Validator Clusters which the lock hash matches.
application/json
Responseany of
get
GET //v1/lock/search/{network} HTTP/1.1
Host: api.obol.tech
Accept: */*
{
  "cluster_locks": [
    "text"
  ],
  "total_count": 2,
  "total_pages": 4
}

Push Distributed Validator Cluster Lock Data

post

This endpoint saves cluster lock objects that describe the created Distributed Validator Cluster.

Body
cluster_definitionall ofRequired

Cluster definition data that was used in dkg to generate cluster lock.

signature_aggregatestringRequiredExample: 0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752
lock_hashstringRequiredExample: 0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048
node_signaturesstring[]RequiredExample: ["0xe6e531be7bbf6cee37d80ab489ade6491469e10743d3c1496a3e66fe989eb4c100c260eaee4ef1aa08fdb79ea05bb8c12970dec1a296abe627ac25a2515373b301"]
Responses
201
The cluster lock object
application/json
Responseany of
post
POST //lock HTTP/1.1
Host: api.obol.tech
Content-Type: application/json
Accept: */*
Content-Length: 2785

{
  "cluster_definition": {
    "name": "My Obol Cluster",
    "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
    "creator": {},
    "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",
    "validators": [
      {}
    ],
    "deposit_amounts": [
      "8000000000",
      "16000000000",
      "8000000000"
    ],
    "definition_hash": "0xb656f5a4a5537b5817d6bcf735d043f17f5aff568b1a7ec9102a9f687bd4510c",
    "fee_recipient_address": "0x000000000000000000000000000000000000dead",
    "withdrawal_address": "0x000000000000000000000000000000000000dead",
    "operators": [
      {}
    ],
    "consensus_protocol": "qbft",
    "target_gas_limit": 36000000,
    "compounding": true
  },
  "distributed_validators": [
    {
      "distributed_public_key": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
      "public_shares": [
        "text"
      ],
      "deposit_data": {
        "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
        "withdrawal_credentials": "0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec",
        "amount": "32000000000",
        "deposit_data_root": "5e58a5d8f1e53479343cb6188f061f6b1a46c521c53eef0580b04f485ad62bad",
        "signature": "0x88fe84889608a8b2424bddae2047d2ee4b42f72c4d8201d69e732d7c3bfa1bcb00f930979770b7d00071673fde8f205108dabe8d83ec49aa6de1b7869966b555be80a159e6ad11e273c4e0234038cfa525923044d6a89a4924fdc178f333568b"
      },
      "builder_registration": {
        "message": {
          "fee_recipient": "0x86B8145c98e5BD25BA722645b15eD65f024a87EC",
          "gas_limit": 30000000,
          "timestamp": 1616508000,
          "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6"
        },
        "signature": "0x851e4f196b7e7bda6429b94cceb92d480f53fa9753e1d6c830ff2706acb8cd866d81d5533db7dcfac1dc9d00a16e5e4801d33f36bdf1c2a2003e1c586466109e7851c79179b2c46d69c53c4a59e361d2727186a7e72bbd11debad1f2fae6f97d"
      },
      "partial_deposit_data": {
        "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
        "withdrawal_credentials": "0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec",
        "amount": "32000000000",
        "deposit_data_root": "5e58a5d8f1e53479343cb6188f061f6b1a46c521c53eef0580b04f485ad62bad",
        "signature": "0x88fe84889608a8b2424bddae2047d2ee4b42f72c4d8201d69e732d7c3bfa1bcb00f930979770b7d00071673fde8f205108dabe8d83ec49aa6de1b7869966b555be80a159e6ad11e273c4e0234038cfa525923044d6a89a4924fdc178f333568b"
      }
    }
  ],
  "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
  "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
  "node_signatures": [
    "0xe6e531be7bbf6cee37d80ab489ade6491469e10743d3c1496a3e66fe989eb4c100c260eaee4ef1aa08fdb79ea05bb8c12970dec1a296abe627ac25a2515373b301"
  ]
}
{
  "cluster_definition": {
    "name": "My Obol Cluster",
    "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
    "creator": {},
    "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",
    "validators": [
      {}
    ],
    "deposit_amounts": [
      "8000000000",
      "16000000000",
      "8000000000"
    ],
    "definition_hash": "0xb656f5a4a5537b5817d6bcf735d043f17f5aff568b1a7ec9102a9f687bd4510c",
    "fee_recipient_address": "0x000000000000000000000000000000000000dead",
    "withdrawal_address": "0x000000000000000000000000000000000000dead",
    "operators": [
      {}
    ],
    "consensus_protocol": "qbft",
    "target_gas_limit": 36000000,
    "compounding": true
  },
  "distributed_validators": [
    {}
  ],
  "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
  "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
  "node_signatures": [
    "text"
  ]
}

Push Distributed Validator Cluster Lock Data

post

This endpoint saves cluster lock objects that describe the created Distributed Validator Cluster.

Body
cluster_definitionall ofRequired

Cluster definition data that was used in dkg to generate cluster lock.

signature_aggregatestringRequiredExample: 0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752
lock_hashstringRequiredExample: 0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048
node_signaturesstring[]RequiredExample: ["0xe6e531be7bbf6cee37d80ab489ade6491469e10743d3c1496a3e66fe989eb4c100c260eaee4ef1aa08fdb79ea05bb8c12970dec1a296abe627ac25a2515373b301"]
Responses
201
The cluster lock object
application/json
Responseany of
post
POST //v1/lock HTTP/1.1
Host: api.obol.tech
Content-Type: application/json
Accept: */*
Content-Length: 2785

{
  "cluster_definition": {
    "name": "My Obol Cluster",
    "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
    "creator": {},
    "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",
    "validators": [
      {}
    ],
    "deposit_amounts": [
      "8000000000",
      "16000000000",
      "8000000000"
    ],
    "definition_hash": "0xb656f5a4a5537b5817d6bcf735d043f17f5aff568b1a7ec9102a9f687bd4510c",
    "fee_recipient_address": "0x000000000000000000000000000000000000dead",
    "withdrawal_address": "0x000000000000000000000000000000000000dead",
    "operators": [
      {}
    ],
    "consensus_protocol": "qbft",
    "target_gas_limit": 36000000,
    "compounding": true
  },
  "distributed_validators": [
    {
      "distributed_public_key": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
      "public_shares": [
        "text"
      ],
      "deposit_data": {
        "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
        "withdrawal_credentials": "0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec",
        "amount": "32000000000",
        "deposit_data_root": "5e58a5d8f1e53479343cb6188f061f6b1a46c521c53eef0580b04f485ad62bad",
        "signature": "0x88fe84889608a8b2424bddae2047d2ee4b42f72c4d8201d69e732d7c3bfa1bcb00f930979770b7d00071673fde8f205108dabe8d83ec49aa6de1b7869966b555be80a159e6ad11e273c4e0234038cfa525923044d6a89a4924fdc178f333568b"
      },
      "builder_registration": {
        "message": {
          "fee_recipient": "0x86B8145c98e5BD25BA722645b15eD65f024a87EC",
          "gas_limit": 30000000,
          "timestamp": 1616508000,
          "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6"
        },
        "signature": "0x851e4f196b7e7bda6429b94cceb92d480f53fa9753e1d6c830ff2706acb8cd866d81d5533db7dcfac1dc9d00a16e5e4801d33f36bdf1c2a2003e1c586466109e7851c79179b2c46d69c53c4a59e361d2727186a7e72bbd11debad1f2fae6f97d"
      },
      "partial_deposit_data": {
        "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
        "withdrawal_credentials": "0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec",
        "amount": "32000000000",
        "deposit_data_root": "5e58a5d8f1e53479343cb6188f061f6b1a46c521c53eef0580b04f485ad62bad",
        "signature": "0x88fe84889608a8b2424bddae2047d2ee4b42f72c4d8201d69e732d7c3bfa1bcb00f930979770b7d00071673fde8f205108dabe8d83ec49aa6de1b7869966b555be80a159e6ad11e273c4e0234038cfa525923044d6a89a4924fdc178f333568b"
      }
    }
  ],
  "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
  "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
  "node_signatures": [
    "0xe6e531be7bbf6cee37d80ab489ade6491469e10743d3c1496a3e66fe989eb4c100c260eaee4ef1aa08fdb79ea05bb8c12970dec1a296abe627ac25a2515373b301"
  ]
}
{
  "cluster_definition": {
    "name": "My Obol Cluster",
    "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
    "creator": {},
    "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",
    "validators": [
      {}
    ],
    "deposit_amounts": [
      "8000000000",
      "16000000000",
      "8000000000"
    ],
    "definition_hash": "0xb656f5a4a5537b5817d6bcf735d043f17f5aff568b1a7ec9102a9f687bd4510c",
    "fee_recipient_address": "0x000000000000000000000000000000000000dead",
    "withdrawal_address": "0x000000000000000000000000000000000000dead",
    "operators": [
      {}
    ],
    "consensus_protocol": "qbft",
    "target_gas_limit": 36000000,
    "compounding": true
  },
  "distributed_validators": [
    {}
  ],
  "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
  "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
  "node_signatures": [
    "text"
  ]
}

Redirect to the launchpad cluster status page

get

This endpoint is used to redirect users to the created cluster status page after DKG is completed.

Path parameters
lockHashstringRequired

The lock_hash calculated for a Distributed Validator Cluster.

Responses
200Success
get
GET //lock/{lockHash}/launchpad HTTP/1.1
Host: api.obol.tech
Accept: */*

No content

Redirect to the launchpad cluster status page

get

This endpoint is used to redirect users to the created cluster status page after DKG is completed.

Path parameters
lockHashstringRequired

The lock_hash calculated for a Distributed Validator Cluster.

Responses
200Success
get
GET //v1/lock/{lockHash}/launchpad HTTP/1.1
Host: api.obol.tech
Accept: */*

No content

Retrieve a list of Distributed Validator Clusters for which this address is an operator

get

This endpoint fetches a number of Distributed Validator Clusters for which the address provided is a node operator.

Path parameters
addressstringRequired

The operator address.

Query parameters
pageintegerRequired

The page number to retrieve.

Default: 0
limitintegerRequired

The number of cluster lock objects to return.

Default: 100
Responses
200
A list of Distributed Validator Clusters which the operator is a member of.
application/json
Responseany of
get
GET //lock/operator/{address} HTTP/1.1
Host: api.obol.tech
Accept: */*
{
  "cluster_locks": [
    "text"
  ],
  "total_count": 2,
  "total_pages": 4
}

Retrieve a list of Distributed Validator Clusters for which this address is an operator

get

This endpoint fetches a number of Distributed Validator Clusters for which the address provided is a node operator.

Path parameters
addressstringRequired

The operator address.

Query parameters
pageintegerRequired

The page number to retrieve.

Default: 0
limitintegerRequired

The number of cluster lock objects to return.

Default: 100
Responses
200
A list of Distributed Validator Clusters which the operator is a member of.
application/json
Responseany of
get
GET //v1/lock/operator/{address} HTTP/1.1
Host: api.obol.tech
Accept: */*
{
  "cluster_locks": [
    "text"
  ],
  "total_count": 2,
  "total_pages": 4
}

Retrieve a list of Distributed Validator Clusters for a given network

get

This endpoint fetches a number of cluster lock objects for a given network.

Path parameters
networkstringRequired

The network to retrieve clusters on

Example: {"summary":"Ethereum Mainnet","value":"mainnet"}
Query parameters
pageintegerRequired

The page number to retrieve.

Default: 0
limitintegerRequired

The number of cluster lock objects to return.

Default: 100
sortBystringOptional

numerical field to sort by

Default: avg_effectiveness
sortOrderstringOptional

order of sorting the field

Default: desc
poolstringOptional

cluster type or pool

detailsstringRequired

The flag to populate cluster definition information.

Default: false
Responses
200
A paged list of Distributed Validator Clusters on this network
application/json
Responseany of
get
GET //lock/network/{network} HTTP/1.1
Host: api.obol.tech
Accept: */*
{
  "cluster_locks": [
    "text"
  ],
  "total_count": 2,
  "total_pages": 4
}

Retrieve a list of Distributed Validator Clusters for a given network

get

This endpoint fetches a number of cluster lock objects for a given network.

Path parameters
networkstringRequired

The network to retrieve clusters on

Example: {"summary":"Ethereum Mainnet","value":"mainnet"}
Query parameters
pageintegerRequired

The page number to retrieve.

Default: 0
limitintegerRequired

The number of cluster lock objects to return.

Default: 100
sortBystringOptional

numerical field to sort by

Default: avg_effectiveness
sortOrderstringOptional

order of sorting the field

Default: desc
poolstringOptional

cluster type or pool

detailsstringRequired

The flag to populate cluster definition information.

Default: false
Responses
200
A paged list of Distributed Validator Clusters on this network
application/json
Responseany of
get
GET //v1/lock/network/{network} HTTP/1.1
Host: api.obol.tech
Accept: */*
{
  "cluster_locks": [
    "text"
  ],
  "total_count": 2,
  "total_pages": 4
}

Retrieve a list of Distributed Validator Clusters for a given network

get

This endpoint fetches a nsummary of the lock files stored for a given network

Path parameters
networkstringRequired

The network to retrieve clusters on

Example: {"summary":"Ethereum Mainnet","value":"mainnet"}
Responses
200
A summary of the Distributed Validator locks for a given network
application/json
Responseany of
get
GET //lock/network/summary/{network} HTTP/1.1
Host: api.obol.tech
Accept: */*
{
  "eth_staked": 2,
  "total_clusters": 2,
  "total_operators": 4
}

Retrieve a list of Distributed Validator Clusters for a given network

get

This endpoint fetches a nsummary of the lock files stored for a given network

Path parameters
networkstringRequired

The network to retrieve clusters on

Example: {"summary":"Ethereum Mainnet","value":"mainnet"}
Responses
200
A summary of the Distributed Validator locks for a given network
application/json
Responseany of
get
GET //v1/lock/network/summary/{network} HTTP/1.1
Host: api.obol.tech
Accept: */*
{
  "eth_staked": 2,
  "total_clusters": 2,
  "total_operators": 4
}

Verify Distributed Validator Cluster Lock Data

post

This endpoint verifies cluster lock data including BLS public keys and signatures created during the DKG phase.

Body
cluster_definitionall ofRequired

Cluster definition data that was used in dkg to generate cluster lock.

signature_aggregatestringRequiredExample: 0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752
lock_hashstringRequiredExample: 0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048
node_signaturesstring[]RequiredExample: ["0xe6e531be7bbf6cee37d80ab489ade6491469e10743d3c1496a3e66fe989eb4c100c260eaee4ef1aa08fdb79ea05bb8c12970dec1a296abe627ac25a2515373b301"]
Responses
200
Lock data is valid
post
POST //lock/verify HTTP/1.1
Host: api.obol.tech
Content-Type: application/json
Accept: */*
Content-Length: 2785

{
  "cluster_definition": {
    "name": "My Obol Cluster",
    "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
    "creator": {},
    "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",
    "validators": [
      {}
    ],
    "deposit_amounts": [
      "8000000000",
      "16000000000",
      "8000000000"
    ],
    "definition_hash": "0xb656f5a4a5537b5817d6bcf735d043f17f5aff568b1a7ec9102a9f687bd4510c",
    "fee_recipient_address": "0x000000000000000000000000000000000000dead",
    "withdrawal_address": "0x000000000000000000000000000000000000dead",
    "operators": [
      {}
    ],
    "consensus_protocol": "qbft",
    "target_gas_limit": 36000000,
    "compounding": true
  },
  "distributed_validators": [
    {
      "distributed_public_key": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
      "public_shares": [
        "text"
      ],
      "deposit_data": {
        "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
        "withdrawal_credentials": "0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec",
        "amount": "32000000000",
        "deposit_data_root": "5e58a5d8f1e53479343cb6188f061f6b1a46c521c53eef0580b04f485ad62bad",
        "signature": "0x88fe84889608a8b2424bddae2047d2ee4b42f72c4d8201d69e732d7c3bfa1bcb00f930979770b7d00071673fde8f205108dabe8d83ec49aa6de1b7869966b555be80a159e6ad11e273c4e0234038cfa525923044d6a89a4924fdc178f333568b"
      },
      "builder_registration": {
        "message": {
          "fee_recipient": "0x86B8145c98e5BD25BA722645b15eD65f024a87EC",
          "gas_limit": 30000000,
          "timestamp": 1616508000,
          "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6"
        },
        "signature": "0x851e4f196b7e7bda6429b94cceb92d480f53fa9753e1d6c830ff2706acb8cd866d81d5533db7dcfac1dc9d00a16e5e4801d33f36bdf1c2a2003e1c586466109e7851c79179b2c46d69c53c4a59e361d2727186a7e72bbd11debad1f2fae6f97d"
      },
      "partial_deposit_data": {
        "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
        "withdrawal_credentials": "0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec",
        "amount": "32000000000",
        "deposit_data_root": "5e58a5d8f1e53479343cb6188f061f6b1a46c521c53eef0580b04f485ad62bad",
        "signature": "0x88fe84889608a8b2424bddae2047d2ee4b42f72c4d8201d69e732d7c3bfa1bcb00f930979770b7d00071673fde8f205108dabe8d83ec49aa6de1b7869966b555be80a159e6ad11e273c4e0234038cfa525923044d6a89a4924fdc178f333568b"
      }
    }
  ],
  "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
  "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
  "node_signatures": [
    "0xe6e531be7bbf6cee37d80ab489ade6491469e10743d3c1496a3e66fe989eb4c100c260eaee4ef1aa08fdb79ea05bb8c12970dec1a296abe627ac25a2515373b301"
  ]
}

No content

Verify Distributed Validator Cluster Lock Data

post

This endpoint verifies cluster lock data including BLS public keys and signatures created during the DKG phase.

Body
cluster_definitionall ofRequired

Cluster definition data that was used in dkg to generate cluster lock.

signature_aggregatestringRequiredExample: 0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752
lock_hashstringRequiredExample: 0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048
node_signaturesstring[]RequiredExample: ["0xe6e531be7bbf6cee37d80ab489ade6491469e10743d3c1496a3e66fe989eb4c100c260eaee4ef1aa08fdb79ea05bb8c12970dec1a296abe627ac25a2515373b301"]
Responses
200
Lock data is valid
post
POST //v1/lock/verify HTTP/1.1
Host: api.obol.tech
Content-Type: application/json
Accept: */*
Content-Length: 2785

{
  "cluster_definition": {
    "name": "My Obol Cluster",
    "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
    "creator": {},
    "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",
    "validators": [
      {}
    ],
    "deposit_amounts": [
      "8000000000",
      "16000000000",
      "8000000000"
    ],
    "definition_hash": "0xb656f5a4a5537b5817d6bcf735d043f17f5aff568b1a7ec9102a9f687bd4510c",
    "fee_recipient_address": "0x000000000000000000000000000000000000dead",
    "withdrawal_address": "0x000000000000000000000000000000000000dead",
    "operators": [
      {}
    ],
    "consensus_protocol": "qbft",
    "target_gas_limit": 36000000,
    "compounding": true
  },
  "distributed_validators": [
    {
      "distributed_public_key": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
      "public_shares": [
        "text"
      ],
      "deposit_data": {
        "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
        "withdrawal_credentials": "0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec",
        "amount": "32000000000",
        "deposit_data_root": "5e58a5d8f1e53479343cb6188f061f6b1a46c521c53eef0580b04f485ad62bad",
        "signature": "0x88fe84889608a8b2424bddae2047d2ee4b42f72c4d8201d69e732d7c3bfa1bcb00f930979770b7d00071673fde8f205108dabe8d83ec49aa6de1b7869966b555be80a159e6ad11e273c4e0234038cfa525923044d6a89a4924fdc178f333568b"
      },
      "builder_registration": {
        "message": {
          "fee_recipient": "0x86B8145c98e5BD25BA722645b15eD65f024a87EC",
          "gas_limit": 30000000,
          "timestamp": 1616508000,
          "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6"
        },
        "signature": "0x851e4f196b7e7bda6429b94cceb92d480f53fa9753e1d6c830ff2706acb8cd866d81d5533db7dcfac1dc9d00a16e5e4801d33f36bdf1c2a2003e1c586466109e7851c79179b2c46d69c53c4a59e361d2727186a7e72bbd11debad1f2fae6f97d"
      },
      "partial_deposit_data": {
        "pubkey": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
        "withdrawal_credentials": "0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec",
        "amount": "32000000000",
        "deposit_data_root": "5e58a5d8f1e53479343cb6188f061f6b1a46c521c53eef0580b04f485ad62bad",
        "signature": "0x88fe84889608a8b2424bddae2047d2ee4b42f72c4d8201d69e732d7c3bfa1bcb00f930979770b7d00071673fde8f205108dabe8d83ec49aa6de1b7869966b555be80a159e6ad11e273c4e0234038cfa525923044d6a89a4924fdc178f333568b"
      }
    }
  ],
  "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
  "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
  "node_signatures": [
    "0xe6e531be7bbf6cee37d80ab489ade6491469e10743d3c1496a3e66fe989eb4c100c260eaee4ef1aa08fdb79ea05bb8c12970dec1a296abe627ac25a2515373b301"
  ]
}

No content

Last updated

Was this helpful?