Obol API (v1.0.0-local)
Download OpenAPI specification:Download
This API is for creating and managing Distributed Validators. This API works in tandem with Obol's Distributed Validator Launchpad, a dapp designed to allow people to authenticate their counterparties and agree to the terms of a Distributed Validator Cluster. This API will be made more easy for code-only interaction in the coming quarters with the release of the Obol-SDK.
Read more about Obol and how to use the launchpad on our docs site.
For enquiries:
Retrieve a Distributed Validator Cluster proposal
This endpoint allows a charon client or launchpad interface to retrieve the terms of a proposed DKG. Once all operators listed in the DKG have submitted signed approvals to the terms, this object will be ready for a cluster of operators to use as part of a DKG ceremony. If the objects in the operators
array are not fully populated, these operators need to use the PUT request to upload their charon client's public key and a signature from their address to indicate their acceptance of the terms.
path Parameters
configHash required | string The |
Responses
Response samples
- 200
{- "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": [
- { }
]
}
Accept a proposed Distributed Validator Cluster
This endpoint is used by the operators present in the operators
array of a cluster definition. 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.
Authorizations:
path Parameters
configHash required | string The |
header Parameters
authorization required | string EIP712 operator hash as bearer token |
Request Body schema: application/jsonrequired
address required | string Ethereum address of Operator. |
enr required | string |
fork_version required | string Enum: "mainnet" "0x00000000" "goerli" "0x00001020" "gnosis" "0x00000064" "sepolia" "0x90000069" "holesky" "0x01017000" |
version required | string |
enr_signature required | string |
config_signature required | string |
Responses
Request samples
- Payload
{- "address": "0x000000000000000000000000000000000000dead",
- "enr": "enr://5fb90badb37c5821b6d95526a41a9504680b4e7c8b763a1b1d49d4955c848621",
- "fork_version": "0x00001020",
- "version": "v1.8.0",
- "enr_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c",
- "config_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"
}
Response samples
- 200
{- "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": [
- { }
]
}
Retrieve a list of cluster definitions which the address belongs to.
This endpoint allows a charon client or launchpad interface to fetch a specific number of cluster definitions which the address is part of for each page.
path Parameters
address required | string The operator address |
query Parameters
page required | number |
limit required | number |
Responses
Response samples
- 200
{- "cluster_definitions": [
- {
- "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": [
- { }
]
}
], - "total_count": 2,
- "total_pages": 3
}
Propose a new Distributed Validator Cluster
This endpoint allows the caller to propose a distributed key generation ceremony. The caller must specify the configuration of a Distributed Validator Cluster; such as the participating operators and the validator exit details. Operators invited to participate in this cluster must submit a public key (in ENR form) to serve as their node's identity, along with EIP712 signatures indicating their acceptance of the terms of this cluster.
Authorizations:
header Parameters
authorization required | string EIP712 cluster definition hash as bearer token |
Request Body schema: application/jsonrequired
name required | string |
required | Array of objects (OperatorDto) operator data. |
required | Array of objects (CreatorDto) creator data. |
uuid required | string |
version required | string |
num_validators required | number >= 1 |
threshold required | number >= 1 |
dkg_algorithm required | string Enum: "frost" "keycast" "default" |
fork_version required | string Enum: "mainnet" "0x00000000" "goerli" "0x00001020" "gnosis" "0x00000064" "sepolia" "0x90000069" "holesky" "0x01017000" |
timestamp required | string |
required | Array of objects (ClusterDefValidator) validator withdrawal configuration. |
deposit_amounts required | Array of strings partial deposits. |
config_hash required | string |
Responses
Request samples
- Payload
{- "name": "My Obol Cluster",
- "operators": [
- {
- "address": "0x000000000000000000000000000000000000dead",
- "enr": "enr://5fb90badb37c5821b6d95526a41a9504680b4e7c8b763a1b1d49d4955c848621",
- "fork_version": "0x00001020",
- "version": "v1.8.0",
- "enr_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c",
- "config_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"
}
], - "creator": [
- {
- "address": "0x000000000000000000000000000000000000dead",
- "config_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"
}
], - "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
- "version": "v1.8.0",
- "num_validators": 5,
- "threshold": 3,
- "dkg_algorithm": "default",
- "fork_version": "0x00001020",
- "timestamp": "2022-07-19T18:19:58+02:00",
- "validators": [
- {
- "fee_recipient_address": "0x000000000000000000000000000000000000dead",
- "withdrawal_address": "0x000000000000000000000000000000000000dead"
}
], - "deposit_amounts": [
- "string"
], - "config_hash": "0x29b0223beea5f4f74391f445d15afd4294040374f6924b98cbf8713f8d962d7c"
}
Response samples
- 201
{- "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": [
- { }
]
}
Retrieve a Distributed Validator Cluster proposal
This endpoint allows a charon client or launchpad interface to retrieve the terms of a proposed DKG. Once all operators listed in the DKG have submitted signed approvals to the terms, this object will be ready for a cluster of operators to use as part of a DKG ceremony. If the objects in the operators
array are not fully populated, these operators need to use the PUT request to upload their charon client's public key and a signature from their address to indicate their acceptance of the terms.
path Parameters
configHash required | string The |
Responses
Response samples
- 200
{- "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": [
- { }
]
}
Accept a proposed Distributed Validator Cluster
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.
Authorizations:
path Parameters
configHash required | string The |
header Parameters
authorization required | string EIP712 operator hash as bearer token |
Request Body schema: application/jsonrequired
address required | string Ethereum address of Operator. |
enr required | string |
fork_version required | string Enum: "mainnet" "0x00000000" "goerli" "0x00001020" "gnosis" "0x00000064" "sepolia" "0x90000069" "holesky" "0x01017000" |
version required | string |
enr_signature required | string |
config_signature required | string |
Responses
Request samples
- Payload
{- "address": "0x000000000000000000000000000000000000dead",
- "enr": "enr://5fb90badb37c5821b6d95526a41a9504680b4e7c8b763a1b1d49d4955c848621",
- "fork_version": "0x00001020",
- "version": "v1.8.0",
- "enr_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c",
- "config_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"
}
Response samples
- 200
{- "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": [
- { }
]
}
Retrieve a list of cluster definitions which the address belongs to.
This endpoint allows a charon client or launchpad interface to fetch a specific number of cluster definitions which the address is part of for each page.
path Parameters
address required | string The operator address |
query Parameters
page required | number |
limit required | number |
Responses
Response samples
- 200
{- "cluster_definitions": [
- {
- "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": [
- { }
]
}
], - "total_count": 2,
- "total_pages": 3
}
Propose a new Distributed Validator Cluster
This endpoint allows the caller to propose a distributed key generation ceremony.The caller must have accepted the latest version of Obol's terms and conditions. The caller must specify the configuration of a Distributed Validator Cluster; such as the participating operators and the validator exit details. Operators invited to participate in this cluster must submit a public key (in ENR form) to serve as their node's identity, along with EIP712 signatures indicating their acceptance of the terms of this cluster.
Authorizations:
header Parameters
authorization required | string EIP712 cluster definition hash as bearer token |
Request Body schema: application/jsonrequired
name required | string |
required | Array of objects (OperatorDto) operator data. |
required | Array of objects (CreatorDto) creator data. |
uuid required | string |
version required | string |
num_validators required | number >= 1 |
threshold required | number >= 1 |
dkg_algorithm required | string Enum: "frost" "keycast" "default" |
fork_version required | string Enum: "mainnet" "0x00000000" "goerli" "0x00001020" "gnosis" "0x00000064" "sepolia" "0x90000069" "holesky" "0x01017000" |
timestamp required | string |
required | Array of objects (ClusterDefValidator) validator withdrawal configuration. |
deposit_amounts required | Array of strings partial deposits. |
config_hash required | string |
Responses
Request samples
- Payload
{- "name": "My Obol Cluster",
- "operators": [
- {
- "address": "0x000000000000000000000000000000000000dead",
- "enr": "enr://5fb90badb37c5821b6d95526a41a9504680b4e7c8b763a1b1d49d4955c848621",
- "fork_version": "0x00001020",
- "version": "v1.8.0",
- "enr_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c",
- "config_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"
}
], - "creator": [
- {
- "address": "0x000000000000000000000000000000000000dead",
- "config_signature": "0x1199fc4440aa7929905ec171ed1dad82a9f6a89891193b2b4cf45937a8cf9ece4972e02bc7e23d8b8b2e550b6430693ac6bc8c82a0509f65d0abb34d7ae0a8a81c"
}
], - "uuid": "0194FDC2-FA2F-FCC0-41D3-FF12045B73C8",
- "version": "v1.8.0",
- "num_validators": 5,
- "threshold": 3,
- "dkg_algorithm": "default",
- "fork_version": "0x00001020",
- "timestamp": "2022-07-19T18:19:58+02:00",
- "validators": [
- {
- "fee_recipient_address": "0x000000000000000000000000000000000000dead",
- "withdrawal_address": "0x000000000000000000000000000000000000dead"
}
], - "deposit_amounts": [
- "string"
], - "config_hash": "0x29b0223beea5f4f74391f445d15afd4294040374f6924b98cbf8713f8d962d7c"
}
Response samples
- 201
{- "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": [
- { }
]
}
Retrieve a Distributed Validator Cluster Lock Object
This endpoint is used to retrieve a cluster lock object.
path Parameters
lockHash required | string The |
Responses
Response samples
- 200
{- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
Retrieve a Distributed Validator Cluster Lock Object
This endpoint is used to retrieve a cluster lock object.
path Parameters
lockHash required | string The |
Responses
Response samples
- 200
{- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
Retrieve a list of Distributed Validator Cluster Lock Objects
This endpoint is used to search for Cluster Lock Objects that match a substring of their lock_hash
.
path Parameters
network required | string Examples:
The network to retrieve clusters on |
query Parameters
partialLockHash required | string A substring of the |
page required | integer Default: 0 The page number to retrieve. |
limit required | integer Default: 100 The number of cluster lock objects to return. |
Responses
Response samples
- 200
{- "cluster_locks": [
- {
- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
], - "total_count": 2,
- "total_pages": 4
}
Retrieve a list of Distributed Validator Cluster Lock Objects
This endpoint is used to search for Cluster Lock Objects that match a substring of their lock_hash
.
path Parameters
network required | string Examples:
The network to retrieve clusters on |
query Parameters
partialLockHash required | string A substring of the |
page required | integer Default: 0 The page number to retrieve. |
limit required | integer Default: 100 The number of cluster lock objects to return. |
Responses
Response samples
- 200
{- "cluster_locks": [
- {
- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
], - "total_count": 2,
- "total_pages": 4
}
Retrieve a Distributed Validator Cluster Lock Object
This endpoint is used to retrieve a cluster lock object by the hash of the configuration used to create it.
path Parameters
configHash required | string The |
Responses
Response samples
- 200
{- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
Retrieve a Distributed Validator Cluster Lock Object
This endpoint is used to retrieve a cluster lock object by the hash of the configuration used to create it.
path Parameters
configHash required | string The |
Responses
Response samples
- 200
{- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
Retrieve a list of Distributed Validator Clusters for which this address is an operator
This endpoint fetches a number of Distributed Validator Clusters for which the address provided is a node operator.
path Parameters
address required | string The operator address. |
query Parameters
page required | integer Default: 0 The page number to retrieve. |
limit required | integer Default: 100 The number of cluster lock objects to return. |
Responses
Response samples
- 200
{- "cluster_locks": [
- {
- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
], - "total_count": 2,
- "total_pages": 4
}
Retrieve a list of Distributed Validator Clusters for which this address is an operator
This endpoint fetches a number of Distributed Validator Clusters for which the address provided is a node operator.
path Parameters
address required | string The operator address. |
query Parameters
page required | integer Default: 0 The page number to retrieve. |
limit required | integer Default: 100 The number of cluster lock objects to return. |
Responses
Response samples
- 200
{- "cluster_locks": [
- {
- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
], - "total_count": 2,
- "total_pages": 4
}
Retrieve a list of Distributed Validator Clusters for a given network
This endpoint fetches a number of cluster lock objects for a given network.
path Parameters
network required | string Examples:
The network to retrieve clusters on |
query Parameters
page required | integer Default: 0 The page number to retrieve. |
limit required | integer Default: 100 The number of cluster lock objects to return. |
details required | string Default: "false" The flag to populate cluster definition information. |
Responses
Response samples
- 200
{- "cluster_locks": [
- {
- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
], - "total_count": 2,
- "total_pages": 4
}
Retrieve a list of Distributed Validator Clusters for a given network
This endpoint fetches a number of cluster lock objects for a given network.
path Parameters
network required | string Examples:
The network to retrieve clusters on |
query Parameters
page required | integer Default: 0 The page number to retrieve. |
limit required | integer Default: 100 The number of cluster lock objects to return. |
details required | string Default: "false" The flag to populate cluster definition information. |
Responses
Response samples
- 200
{- "cluster_locks": [
- {
- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
], - "total_count": 2,
- "total_pages": 4
}
Push Distributed Validator Cluster Lock Data
This endpoint saves cluster lock objects that describe the created Distributed Validator Cluster.
Request Body schema: application/jsonrequired
required | object Cluster definition data that was used in dkg to generate cluster lock. |
required | Array of objects (DistributedValidatorDto) distributed validator keys and deposit data. |
signature_aggregate required | string |
lock_hash required | string |
node_signatures required | Array of strings |
Responses
Request samples
- Payload
{- "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": [
- { }
]
}, - "distributed_validators": [
- {
- "distributed_public_key": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
- "public_shares": [
- "string"
], - "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"
]
}
Response samples
- 201
{- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
Push Distributed Validator Cluster Lock Data
This endpoint saves cluster lock objects that describe the created Distributed Validator Cluster.
Request Body schema: application/jsonrequired
required | object Cluster definition data that was used in dkg to generate cluster lock. |
required | Array of objects (DistributedValidatorDto) distributed validator keys and deposit data. |
signature_aggregate required | string |
lock_hash required | string |
node_signatures required | Array of strings |
Responses
Request samples
- Payload
{- "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": [
- { }
]
}, - "distributed_validators": [
- {
- "distributed_public_key": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
- "public_shares": [
- "string"
], - "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"
]
}
Response samples
- 201
{- "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": [
- { }
]
}, - "distributed_validators": [
- { }
], - "signature_aggregate": "0x85650c30ec29a3703934bf50a28da102975deda77e758579ea3dfe4136abf752",
- "lock_hash": "0xd2880980169ee4a0000f23feb8fad9a6c70f38312956fe67aa89e118f5b0e048",
- "node_signatures": [
- "string"
]
}
Verify Distributed Validator Cluster Lock Data
This endpoint verifies cluster lock data including BLS public keys and signatures created during the DKG phase.
Request Body schema: application/jsonrequired
required | object Cluster definition data that was used in dkg to generate cluster lock. |
required | Array of objects (DistributedValidatorDto) distributed validator keys and deposit data. |
signature_aggregate required | string |
lock_hash required | string |
node_signatures required | Array of strings |
Responses
Request samples
- Payload
{- "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": [
- { }
]
}, - "distributed_validators": [
- {
- "distributed_public_key": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
- "public_shares": [
- "string"
], - "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"
]
}
Verify Distributed Validator Cluster Lock Data
This endpoint verifies cluster lock data including BLS public keys and signatures created during the DKG phase.
Request Body schema: application/jsonrequired
required | object Cluster definition data that was used in dkg to generate cluster lock. |
required | Array of objects (DistributedValidatorDto) distributed validator keys and deposit data. |
signature_aggregate required | string |
lock_hash required | string |
node_signatures required | Array of strings |
Responses
Request samples
- Payload
{- "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": [
- { }
]
}, - "distributed_validators": [
- {
- "distributed_public_key": "0xb51336c31c4f0cc365d6c7b5d8ff1b4b7d4cf7c70163f9fd51a2badc854f5e29823fa11e3d7749d207807867149508d6",
- "public_shares": [
- "string"
], - "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"
]
}
Retrieve the Validator states for a cluster
This endpoint is used to retrieve the states of all validators in a DV Cluster
path Parameters
lockHash required | string The |
Responses
Response samples
- 200
{- "index": "12345",
- "status": "active_ongoing",
- "balance": "32",
- "0x000000000000000000000000000000": {
- "index": "0",
- "status": "active_ongoing",
- "balance": "32"
}
}
Retrieve the Validator states for a cluster
This endpoint is used to retrieve the states of all validators in a DV Cluster
path Parameters
lockHash required | string The |
Responses
Response samples
- 200
{- "index": "12345",
- "status": "active_ongoing",
- "balance": "32",
- "0x000000000000000000000000000000": {
- "index": "0",
- "status": "active_ongoing",
- "balance": "32"
}
}
Retrieve Distributed Validator threshold aggregated signed exit msg
This endpoint is used to retrieve validator exit message
Authorizations:
path Parameters
validatorPubkey required | string The |
shareIdx required | any Represents the cluster operatorIndex+1. |
lockHash required | any The cluster lockHash. |
Responses
Response samples
- 200
{ }
Retrieve Distributed Validator threshold aggregated signed exit msg
This endpoint is used to retrieve validator exit message
Authorizations:
path Parameters
validatorPubkey required | string The |
shareIdx required | any Represents the cluster operatorIndex+1. |
lockHash required | any The cluster lockHash. |
Responses
Response samples
- 200
{ }
Push Distributed Validator partial signed exit message
This endpoint saves partial signed exit messages.
path Parameters
lockHash required | string The |
Request Body schema: application/jsonrequired
required | Array of objects (ExitBlobDto) |
share_idx required | number |
signature required | string |
Responses
Request samples
- Payload
{- "partial_exits": [
- {
- "public_key": "0x8b69c67720c909423d7edc5d3a7554e1d1e50f6d7d5f8d18548d68daf424e536afba8b31fbd15df1970ba4af4a7d944c",
- "signed_exit_message": {
- "message": {
- "epoch": "162304",
- "validator_index": "42"
}, - "signature": ""
}
}
], - "share_idx": 42,
- "signature": ""
}
Push Distributed Validator partial signed exit message
This endpoint saves partial signed exit messages.
path Parameters
lockHash required | string The |
Request Body schema: application/jsonrequired
required | Array of objects (ExitBlobDto) |
share_idx required | number |
signature required | string |
Responses
Request samples
- Payload
{- "partial_exits": [
- {
- "public_key": "0x8b69c67720c909423d7edc5d3a7554e1d1e50f6d7d5f8d18548d68daf424e536afba8b31fbd15df1970ba4af4a7d944c",
- "signed_exit_message": {
- "message": {
- "epoch": "162304",
- "validator_index": "42"
}, - "signature": ""
}
}
], - "share_idx": 42,
- "signature": ""
}
Retrieve a Distributed Validator Cluster Effectiveness Object
This endpoint is used to retrieve the effectiveness of a cluster by pubkey
path Parameters
lockHash required | string The |
Responses
Response samples
- 200
{- "oneDay": 0,
- "sevenDay": 0,
- "thirtyDay": 0,
- "all": 0
}
Retrieve a Distributed Validator Cluster Effectiveness Object
This endpoint is used to retrieve the effectiveness of a cluster by pubkey
path Parameters
lockHash required | string The |
Responses
Response samples
- 200
{- "oneDay": 0,
- "sevenDay": 0,
- "thirtyDay": 0,
- "all": 0
}
Saves user's approval latest terms and conditions
Saves user's signature to latest Obol's terms and conditions hash and it's version
Authorizations:
header Parameters
authorization required | string EIP712 terms and conditions hash as bearer token |
Request Body schema: application/jsonrequired
address required | string |
version required | number |
terms_and_conditions_hash required | string |
Responses
Request samples
- Payload
{- "address": "v1.0.0",
- "version": 1,
- "terms_and_conditions_hash": ""
}
Saves user's approval latest terms and conditions
Saves user's signature to latest Obol's terms and conditions hash and it's version
Authorizations:
header Parameters
authorization required | string EIP712 terms and conditions hash as bearer token |
Request Body schema: application/jsonrequired
address required | string |
version required | number |
terms_and_conditions_hash required | string |
Responses
Request samples
- Payload
{- "address": "v1.0.0",
- "version": 1,
- "terms_and_conditions_hash": ""
}
Retrieve Base techne credential metadata
This endpoint is used to retrieve Base techne credential metadata
Authorizations:
path Parameters
index required | number The techne index. |
Responses
Response samples
- 200
{- "description": "Obol Techne Bronze Credential",
- "name": "Obol Techne - Bronze"
}
Retrieve Base techne credential metadata
This endpoint is used to retrieve Base techne credential metadata
Authorizations:
path Parameters
index required | number The techne index. |
Responses
Response samples
- 200
{- "description": "Obol Techne Bronze Credential",
- "name": "Obol Techne - Bronze"
}
Retrieve Bronze techne credential metadata
This endpoint is used to retrieve Bronze techne credential metadata
Authorizations:
path Parameters
index required | number The techne index. |
Responses
Response samples
- 200
{- "description": "Obol Techne Bronze Credential",
- "name": "Obol Techne - Bronze"
}
Retrieve Bronze techne credential metadata
This endpoint is used to retrieve Bronze techne credential metadata
Authorizations:
path Parameters
index required | number The techne index. |
Responses
Response samples
- 200
{- "description": "Obol Techne Bronze Credential",
- "name": "Obol Techne - Bronze"
}
Retrieve Silver techne credential metadata
This endpoint is used to retrieve Silver techne credential metadata
Authorizations:
path Parameters
index required | number The techne index. |
Responses
Response samples
- 200
{- "description": "Obol Techne Bronze Credential",
- "name": "Obol Techne - Bronze"
}
Retrieve Silver techne credential metadata
This endpoint is used to retrieve Silver techne credential metadata
Authorizations:
path Parameters
index required | number The techne index. |
Responses
Response samples
- 200
{- "description": "Obol Techne Bronze Credential",
- "name": "Obol Techne - Bronze"
}
Retrieve Gold techne credential metadata
This endpoint is used to retrieve Gold techne credential metadata
Authorizations:
path Parameters
index required | number The techne index. |
Responses
Response samples
- 200
{- "description": "Obol Techne Bronze Credential",
- "name": "Obol Techne - Bronze"
}
Retrieve Gold techne credential metadata
This endpoint is used to retrieve Gold techne credential metadata
Authorizations:
path Parameters
index required | number The techne index. |
Responses
Response samples
- 200
{- "description": "Obol Techne Bronze Credential",
- "name": "Obol Techne - Bronze"
}
Retrieve the historical contribtions of an address
This endpoint is used to retrieve the contributions given to Obol Public Goods by an address.
path Parameters
address required | string The address to check the contributions for. |
query Parameters
date required | string <date-time> |
Responses
Response samples
- 200
{- "address": "string",
- "contributions": 0,
- "date": "2019-08-24T14:15:22Z"
}
Retrieve the contribtions of an address
This endpoint is used to retrieve the contributions given to Obol Public Goods by an address.
path Parameters
address required | string The address to check the contributions for. |
Responses
Response samples
- 200
{- "address": "string",
- "contributions": 0,
- "start_date": "2019-08-24T14:15:22Z",
- "daily_avg": 0,
- "last_gain": 0
}
Retrieve obol techne credentials of an address
This endpoint is used to retrieve obol techne credentials an address owns
path Parameters
address required | string The address to check the techne credentials for. |
Responses
Response samples
- 200
{- "base": [
- "string"
], - "bronze": [
- "string"
], - "silver": [
- "string"
], - "gold": [
- "string"
]
}