---
title: "Verify Distributed Validator Cluster Lock Data"
method: POST
path: "/v1/lock/verify"
tags: ["Cluster Lock"]
---

# Verify Distributed Validator Cluster Lock Data

`POST /v1/lock/verify`

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

## Request body

- ClusterLockDto
  - `cluster_definition` ClusterDefinitionResponse, required
    - `name` string, required
    - `uuid` string, required
    - `creator` Creator, required
    - `version` string, required
    - `num_validators` number, required
    - `threshold` number, required
    - `dkg_algorithm` string, required
    - `fork_version` string, required
    - `config_hash` string, required — config_hash is a 32 bytes SSZ hash of cluster config.
    - `timestamp` string, required
    - `validators` Validator[], required
    - `deposit_amounts` string[], required — Partial depoists.
    - `definition_hash` string, required — definition_hash is a 32 bytes SSZ hash of cluster config.
    - `fee_recipient_address` string, required — Ethereum address to receive transaction fees.
    - `withdrawal_address` string, required — Ethereum address to receive staked ether.
    - `operators` Operator[], required
    - `consensus_protocol` string, required
    - `target_gas_limit` number, required
    - `compounding` boolean, required
  - `distributed_validators` DistributedValidatorDto[], required — distributed validator keys and deposit data.
    - `distributed_public_key` string, required
    - `public_shares` string[], required — array of public shares of the distributed public key.
    - `deposit_data` DepositDataDto, required
      - `pubkey` string, required
      - `withdrawal_credentials` string, required
      - `amount` string, required
      - `deposit_data_root` string, required
      - `signature` string, required
    - `builder_registration` BuilderRegistrationDto, required
      - `message` BuilderRegistrationMessageDto, required
        - `fee_recipient` string, required
        - `gas_limit` number, required
        - `timestamp` number, required
        - `pubkey` string, required
      - `signature` string, required
    - `partial_deposit_data` DepositDataDto, required
      - `pubkey` string, required
      - `withdrawal_credentials` string, required
      - `amount` string, required
      - `deposit_data_root` string, required
      - `signature` string, required
  - `signature_aggregate` string, required
  - `lock_hash` string, required
  - `node_signatures` string[], required

## Response `200`

Lock data is valid

## Other responses

- `400` — Invalid lock data
- `500` — An unknown error occurred
- `503` — Too many lock validations in progress on this instance. Retry with backoff.
- `504` — Lock validation exceeded the time limit (typically very large locks).

---

[API](https://skmtc.net/obol/apis/obol-api.md) · [All operations](https://skmtc.net/obol/apis/obol-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/obol/obol-api/revisions/707a88e0b355/schema)
