Symbiotic SymbioticAPIService API

The SymbioticAPIService API from Symbiotic — 22 operation(s) for symbioticapiservice.

OpenAPI Specification

symbiotic-symbioticapiservice-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: v1/api.proto SymbioticAPIService API
  version: version not set
consumes:
- application/json
produces:
- application/json
tags:
- name: SymbioticAPIService
paths:
  /v1/aggregation/proof/{requestId}:
    get:
      summary: Get aggregation proof
      operationId: SymbioticAPIService_GetAggregationProof
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetAggregationProofResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: requestId
        in: path
        required: true
        type: string
      tags:
      - SymbioticAPIService
  /v1/aggregation/proofs/epoch/{epoch}:
    get:
      summary: Get aggregation proofs by epoch
      operationId: SymbioticAPIService_GetAggregationProofsByEpoch
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetAggregationProofsByEpochResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: epoch
        description: Epoch number
        in: path
        required: true
        type: string
        format: uint64
      - name: pageSize
        description: Maximum number of items to return. 0 = server default (100). Server clamps to max (1000).
        in: query
        required: false
        type: integer
        format: int64
      - name: from
        description: Opaque pagination cursor from a previous response's `next_from`. Empty string starts from the beginning.
        in: query
        required: false
        type: string
      tags:
      - SymbioticAPIService
  /v1/aggregation/status/{requestId}:
    get:
      summary: Get aggregation status, can be sent only to aggregator nodes
      operationId: SymbioticAPIService_GetAggregationStatus
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetAggregationStatusResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: requestId
        in: path
        required: true
        type: string
      tags:
      - SymbioticAPIService
  /v1/committed/all:
    get:
      summary: Get last committed epochs for all settlement chains
      operationId: SymbioticAPIService_GetLastAllCommitted
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetLastAllCommittedResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      tags:
      - SymbioticAPIService
  /v1/committed/chain/{settlementChainId}:
    get:
      summary: Get last committed epoch for a specific settlement chain
      operationId: SymbioticAPIService_GetLastCommitted
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetLastCommittedResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: settlementChainId
        description: Settlement chain ID
        in: path
        required: true
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
  /v1/epoch/current:
    get:
      summary: Get current epoch
      operationId: SymbioticAPIService_GetCurrentEpoch
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetCurrentEpochResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      tags:
      - SymbioticAPIService
  /v1/sign:
    post:
      summary: Sign a message
      operationId: SymbioticAPIService_SignMessage
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/SignMessageResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: body
        in: body
        required: true
        schema:
          $ref: '#/definitions/SignMessageRequest'
      tags:
      - SymbioticAPIService
  /v1/signature-request-ids/epoch/{epoch}:
    get:
      summary: Get all signature request IDs by epoch
      operationId: SymbioticAPIService_GetSignatureRequestIDsByEpoch
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetSignatureRequestIDsByEpochResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: epoch
        description: Epoch number
        in: path
        required: true
        type: string
        format: uint64
      - name: pageSize
        description: Maximum number of items to return. 0 = server default (1000). Server clamps to max (10000).
        in: query
        required: false
        type: integer
        format: int64
      - name: from
        description: Opaque pagination cursor from a previous response's `next_from`. Empty string starts from the beginning.
        in: query
        required: false
        type: string
      tags:
      - SymbioticAPIService
  /v1/signature-request/{requestId}:
    get:
      summary: Get signature request by request id
      operationId: SymbioticAPIService_GetSignatureRequest
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetSignatureRequestResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: requestId
        in: path
        required: true
        type: string
      tags:
      - SymbioticAPIService
  /v1/signature-requests/epoch/{epoch}:
    get:
      summary: Get all signature requests by epoch
      operationId: SymbioticAPIService_GetSignatureRequestsByEpoch
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetSignatureRequestsByEpochResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: epoch
        description: Epoch number
        in: path
        required: true
        type: string
        format: uint64
      - name: pageSize
        description: Maximum number of items to return. 0 = server default (100). Server clamps to max (1000).
        in: query
        required: false
        type: integer
        format: int64
      - name: from
        description: Opaque pagination cursor from a previous response's `next_from`. Empty string starts from the beginning.
        in: query
        required: false
        type: string
      tags:
      - SymbioticAPIService
  /v1/signatures/epoch/{epoch}:
    get:
      summary: Get signature by epoch
      operationId: SymbioticAPIService_GetSignaturesByEpoch
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetSignaturesByEpochResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: epoch
        description: Epoch number
        in: path
        required: true
        type: string
        format: uint64
      - name: pageSize
        description: Maximum number of items to return. 0 = server default (100). Server clamps to max (1000).
        in: query
        required: false
        type: integer
        format: int64
      - name: from
        description: Opaque pagination cursor from a previous response's `next_from`. Empty string starts from the beginning.
        in: query
        required: false
        type: string
      tags:
      - SymbioticAPIService
  /v1/signatures/{requestId}:
    get:
      summary: Get signature by request id
      operationId: SymbioticAPIService_GetSignatures
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetSignaturesResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: requestId
        in: path
        required: true
        type: string
      tags:
      - SymbioticAPIService
  /v1/stream/proofs:
    get:
      summary: Stream aggregation proofs in real-time. If start_epoch is provided, sends historical data first
      operationId: SymbioticAPIService_ListenProofs
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/ListenProofsResponse'
              error:
                $ref: '#/definitions/Status'
            title: Stream result of ListenProofsResponse
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: startEpoch
        description: 'Optional: start epoch. If provided, stream will first send all historical proofs starting from this epoch, then continue with real-time updates

          If not provided, only proofs generated after stream creation will be sent'
        in: query
        required: false
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
  /v1/stream/signatures:
    get:
      summary: Stream signatures in real-time. If start_epoch is provided, sends historical data first
      operationId: SymbioticAPIService_ListenSignatures
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/ListenSignaturesResponse'
              error:
                $ref: '#/definitions/Status'
            title: Stream result of ListenSignaturesResponse
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: startEpoch
        description: 'Optional: start epoch. If provided, stream will first send all historical signatures starting from this epoch, then continue with real-time updates

          If not provided, only signatures generated after stream creation will be sent'
        in: query
        required: false
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
  /v1/stream/validator-set:
    get:
      summary: Stream validator set changes in real-time. If start_epoch is provided, sends historical data first
      operationId: SymbioticAPIService_ListenValidatorSet
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/ListenValidatorSetResponse'
              error:
                $ref: '#/definitions/Status'
            title: Stream result of ListenValidatorSetResponse
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: startEpoch
        description: 'Optional: start epoch. If provided, stream will first send all historical validator sets starting from this epoch, then continue with real-time updates

          If not provided, only validator sets generated after stream creation will be sent'
        in: query
        required: false
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator-set:
    get:
      summary: Get current validator set
      operationId: SymbioticAPIService_GetValidatorSet
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetValidatorSetResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator-set/custom-schedule/node-status:
    get:
      summary: 'Checks if the current node should be active based on a custom schedule derived from the validator set.

        This enables external applications to use the relay''s validator set for coordinating distributed tasks,

        such as deciding which application instances should commit data on-chain or perform other coordinated actions.

        The schedule ensures deterministic but randomized selection of active nodes at any given time.'
      operationId: SymbioticAPIService_GetCustomScheduleNodeStatus
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetCustomScheduleNodeStatusResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: epoch
        description: Epoch number to use for the validator set (optional, defaults to current epoch)
        in: query
        required: false
        type: string
        format: uint64
      - name: seed
        description: 'Custom seed for randomizing the schedule (optional). Different seeds produce different schedules

          for the same epoch, allowing multiple independent scheduling schemes. If not provided, the schedule

          is deterministic based on epoch alone.'
        in: query
        required: false
        type: string
        format: byte
      - name: slotDurationSeconds
        description: 'Duration of each time slot in seconds. Determines how frequently active groups rotate.

          Example: 60 seconds means a new group becomes active every minute.'
        in: query
        required: false
        type: string
        format: uint64
      - name: maxParticipantsPerSlot
        description: 'Maximum validators per group. Controls redundancy: 1 for single-instance actions (less redundancy),

          2+ for multi-instance actions (more reliability). All validators in a group are active simultaneously.'
        in: query
        required: false
        type: integer
        format: int64
      - name: minParticipantsPerSlot
        description: 'Minimum validators required to form a remainder group. When dividing validators into groups,

          any remainder smaller than this is not scheduled. Set equal to max for strict group sizes.'
        in: query
        required: false
        type: integer
        format: int64
      tags:
      - SymbioticAPIService
  /v1/validator-set/header:
    get:
      summary: Get validator set header
      operationId: SymbioticAPIService_GetValidatorSetHeader
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetValidatorSetHeaderResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator-set/metadata:
    get:
      summary: Get validator set metadata like extra data and request id to fetch aggregation and signature requests
      operationId: SymbioticAPIService_GetValidatorSetMetadata
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetValidatorSetMetadataResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator/address/{address}:
    get:
      summary: Get validator by address
      operationId: SymbioticAPIService_GetValidatorByAddress
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetValidatorByAddressResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: address
        description: Validator address (required)
        in: path
        required: true
        type: string
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator/key/{keyTag}/{onChainKey}:
    get:
      summary: Get validator by key
      operationId: SymbioticAPIService_GetValidatorByKey
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetValidatorByKeyResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: keyTag
        description: Validator key tag (required)
        in: path
        required: true
        type: integer
        format: int64
      - name: onChainKey
        description: Validator on chain (public) key (required)
        in: path
        required: true
        type: string
        format: byte
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator/local:
    get:
      summary: Get local validator
      operationId: SymbioticAPIService_GetLocalValidator
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/GetLocalValidatorResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/Status'
      parameters:
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        type: string
        format: uint64
      tags:
      - SymbioticAPIService
definitions:
  ListenValidatorSetResponse:
    type: object
    properties:
      validatorSet:
        $ref: '#/definitions/ValidatorSet'
        title: The validator set
    title: Response message for validator set changes stream
  GetSignaturesResponse:
    type: object
    properties:
      signatures:
        type: array
        items:
          type: object
          $ref: '#/definitions/Signature'
        title: List of signatures
    title: Response message for getting signatures
  GetSignatureRequestIDsByEpochResponse:
    type: object
    properties:
      requestIds:
        type: array
        items:
          type: string
        title: List of all signature request IDs for the epoch
      nextFrom:
        type: string
        description: Cursor to retrieve the next page. Empty when this is the last page.
    title: Response message for getting all signature request IDs by epoch
  GetValidatorSetMetadataResponse:
    type: object
    properties:
      extraData:
        type: array
        items:
          type: object
          $ref: '#/definitions/ExtraData'
      commitmentData:
        type: string
        format: byte
      requestId:
        type: string
    title: Response message for getting validator set header
  GetLastCommittedResponse:
    type: object
    properties:
      settlementChainId:
        type: string
        format: uint64
        title: Settlement chain ID
      epochInfo:
        $ref: '#/definitions/ChainEpochInfo'
    title: Response message for getting last committed epoch
  Signature:
    type: object
    properties:
      signature:
        type: string
        format: byte
        title: Signature data
      messageHash:
        type: string
        format: byte
        title: Message hash
      publicKey:
        type: string
        format: byte
        title: Public key
      requestId:
        type: string
        title: Request ID
    title: Digital signature
  GetSignatureRequestResponse:
    type: object
    properties:
      signatureRequest:
        $ref: '#/definitions/SignatureRequest'
    title: Response message for getting signature request
  GetValidatorSetResponse:
    type: object
    properties:
      validatorSet:
        $ref: '#/definitions/ValidatorSet'
        title: The validator set
    title: Response message for getting validator set
  ChainEpochInfo:
    type: object
    properties:
      lastCommittedEpoch:
        type: string
        format: uint64
        title: Last committed epoch for this chain
      startTime:
        type: string
        format: date-time
        title: Epoch start time
    title: Settlement chain with its last committed epoch
  SignMessageRequest:
    type: object
    properties:
      keyTag:
        type: integer
        format: int64
        title: Key tag identifier (0-127)
      message:
        type: string
        format: byte
        title: Message to be signed
      requiredEpoch:
        type: string
        format: uint64
        title: Required epoch (optional, if not provided latest committed epoch will be used)
    title: Request message for signing a message
  GetLastAllCommittedResponse:
    type: object
    properties:
      epochInfos:
        type: object
        additionalProperties:
          $ref: '#/definitions/ChainEpochInfo'
        title: List of settlement chains with their last committed epochs
      suggestedEpochInfo:
        $ref: '#/definitions/ChainEpochInfo'
        title: Suggested epoch info for signatures, it is the minimum commited epoch among all chains
    title: Response message for getting all last committed epochs
  GetLocalValidatorResponse:
    type: object
    properties:
      validator:
        $ref: '#/definitions/Validator'
        title: The validator
    title: Response message for getting local validator
  GetAggregationProofsByEpochResponse:
    type: object
    properties:
      aggregationProofs:
        type: array
        items:
          type: object
          $ref: '#/definitions/AggregationProof'
      nextFrom:
        type: string
        description: Cursor to retrieve the next page. Empty when this is the last page.
    title: Response message for getting aggregation proof
  GetAggregationStatusResponse:
    type: object
    properties:
      currentVotingPower:
        type: string
        title: Current voting power of the aggregator (big integer as string)
      signerOperators:
        type: array
        items:
          type: string
        title: List of operator addresses that signed the request
    title: Response message for getting aggregation status
  ValidatorSetStatus:
    type: string
    enum:
    - VALIDATOR_SET_STATUS_UNSPECIFIED
    - VALIDATOR_SET_STATUS_DERIVED
    - VALIDATOR_SET_STATUS_AGGREGATED
    - VALIDATOR_SET_STATUS_COMMITTED
    default: VALIDATOR_SET_STATUS_UNSPECIFIED
    description: "- VALIDATOR_SET_STATUS_UNSPECIFIED: Default/unknown status\n - VALIDATOR_SET_STATUS_DERIVED: Derived status\n - VALIDATOR_SET_STATUS_AGGREGATED: Aggregated status\n - VALIDATOR_SET_STATUS_COMMITTED: Committed status"
    title: Validator set status enumeration
  Any:
    type: object
    properties:
      '@type':
        type: string
    additionalProperties: {}
  SignMessageResponse:
    type: object
    properties:
      requestId:
        type: string
        title: Hash of the signature request
      epoch:
        type: string
        format: uint64
        title: Epoch number
    title: Response message for sign message request
  ListenProofsResponse:
    type: object
    properties:
      requestId:
        type: string
        title: Id of the request
      epoch:
        type: string
        format: uint64
        title: Epoch number
      aggregationProof:
        $ref: '#/definitions/AggregationProof'
        title: Final aggregation proof
    title: Response message for aggregation proofs stream
  Status:
    type: object
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
      details:
        type: array
        items:
          type: object
          $ref: '#/definitions/Any'
  ListenSignaturesResponse:
    type: object
    properties:
      requestId:
        type: string
        title: Id of the signature request
      epoch:
        type: string
        format: uint64
        title: Epoch number
      signature:
        $ref: '#/definitions/Signature'
        title: Signature data
    title: Response message for signatures stream
  GetValidatorByAddressResponse:
    type: object
    properties:
      validator:
        $ref: '#/definitions/Validator'
        title: The validator
    title: Response message for getting validator by address
  SignatureRequest:
    type: object
    properties:
      requestId:
        type: string
        title: Request ID
      keyTag:
        type: integer
        format: int64
        title: Key tag identifier (0-127)
      message:
        type: string
        format: byte
        title: Message to be signed
      requiredEpoch:
        type: string
        format: uint64
        title: Required epoch
    title: SignatureRequest represents a signature request
  Validator:
    type: object
    properties:
      operator:
        type: string
        title: Operator address (hex string)
      votingPower:
        type: string
        title: Voting power of the validator (big integer as string)
      isActive:
        type: boolean
        title: Indicates if the validator is active
      keys:
        type: array
        items:
          type: object
          $ref: '#/definitions/Key'
        title: List of cryptographic keys
      vaults:
        type: array
        items:
          type: object
          $ref: '#/definitions/ValidatorVault'
        title: List of validator vaults
    title: Validator information
  ExtraData:
    type: object
    properties:
      key:
        type: string
        format: byte
      value:
        type: string
        format: byte
  AggregationProof:
    type: object
    properties:
      messageHash:
        type: string
        format: byte
        title: Message hash
      proof:
        type: string
        format: byte
        title: Proof data
      requestId:
        type: string
        title: Request ID
    title: Response message for getting aggregation proof
  ValidatorSet:
    type: object
    properties:
      version:
        type: integer
        format: int64
        title: Version of the validator set
      requiredKeyTag:
        type: integer
        format: int64
        title: Key tag required to commit next validator set
      epoch:
        type: string
        format: uint64
        title: Validator set epoch
      captureTimestamp:
        type: string
        format: date-time
        title: Epoch capture timestamp
      quorumThreshold:
        type: string
        title: Quorum threshold (big integer as string)
      status:
        $ref: '#/definitions/ValidatorSetStatus'
        title: Status of validator set header
      validators:
        type: array
        items:
          type: object
          $ref: '#/definitions/Validator'
        title: List of validators
  Key:
    type: object
    properties:
      tag:
        type: integer
        format: int64
        title: Key tag identifier (0-127)
      payload:
        type: string
        format: byte
        title: Key payload
    title: Cryptographic key
  GetCurrentEpochResponse:
    type: object
    properties:
      epoch:
        type: string
        format: uint64
        title: Epoch number
      startTime:
        type: string
        format: date-time
        title: Epoch start time
    title: Response message for getting current epoch
  GetCustomScheduleNodeStatusResponse:
    type: object
    properties:
      isActive:
        type: boolean
        description: 'True if this node is active in the current time slot and should perform the scheduled action.

          False if this node should wait (another group is active). When multiple validators share a slot,

          all return true simultaneously, enabling coordinated redundancy.'
      currentSlotStartTime:
        type: string
        format: date-time
        description: 'Start time of the current active slot. This marks the beginning of the current slot time window.

          Can be used to determine how much time is left in the slot.'
      currentSlotEndTime:
        type: string
        format: date-time
        description: 'End time of the current active slot. This marks the end of the current slot time window.

          Can be used to determine how much time is left in the slot.'
    description: Response indicating whether the current node should be active now.
  GetSignaturesByEpochResponse:
    type: object
    properties:
      signatures:
        type: array
        items:
          type: object
          $ref: '#/definitions/Signature'
        title: List of signatures
      nextFrom:
        type: string
        description: Cursor to retrieve the next page. Empty when this is the last page.
    title: Response message for getting signatures by epoch
  GetValidatorSetHeaderResponse:
    type: object
    properties:
      version:
        type: integer
        format: int64
        title: Version of the validator set
      requiredKeyTag:
        type: integer
        format: int64
        title: Key tag required to commit next validator set
      epoch:
        type: string
        format: uint64
        title: Validator set epoch
      captureTimestamp:
        type: string
        format: date-time
        title: Epoch capture timestamp
      quorumThreshold:
        type: string
        title: Quorum threshold (big integer as string)
      totalVotingPower:
        type: string
        title: Total voting power (big integer as string)
      validatorsSszMroot:
        type: string
        title: Validators SSZ Merkle root (hex string)
    title: Response message for getting validator set header
  GetValidatorByKeyResponse:
    type: object
    properties:
      validator:
        $ref: '#/definitions/Validator'
        title: The validator
    title: Response message for getting validator by key
  GetAggregationProofResponse:
    type: object
    properties:
      aggregationProof:
        $ref: '#/definitions/AggregationProof'
    title: Response message for getting aggregation proof
  ValidatorVault:
    type: object
    properties:
      chainId:
        type: string
        format: uint64
        title: Chain identifier
      vault:
        type: string
        title: Vault address
      votingPower:
        type: string
        title: Voting power for this vault (big integer as string)
    title: Validator vault information
  GetSignatureRequestsByEpochResponse:
    type: object
    properties:
      signatureRequests:
        type: array
        items:
          type: object
          $ref: '#/definitions/SignatureRequest'
        title: List of all signature requests for the epoch
      nextFrom:
        type: string
        description: Cursor to retrieve the next page. Empty when this is the last page.
    title: Response message for getting all signature requests by ep

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/symbiotic/refs/heads/main/openapi/symbiotic-symbioticapiservice-api-openapi.yml