Obol Fee Recipient API

The Fee Recipient API from Obol — 4 operation(s) for fee recipient.

Operations 4

POST /fee_recipient/partial/{lockHash}/{shareIdx} Submit partial fee recipient registrations #
POST /v1/fee_recipient/partial/{lockHash}/{shareIdx} Submit partial fee recipient registrations #
POST /fee_recipient/{lockHash} Fetch partial fee recipient registrations #
POST /v1/fee_recipient/{lockHash} Fetch partial fee recipient registrations #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/obol-fee-recipient-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

obol-fee-recipient-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Obol Fee Recipient API
  description: '## What is this API?


    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:'
  version: v1.0.0-local
  contact:
    name: Obol Labs
    url: https://obol.tech
    email: support@obol.tech
servers:
- url: https://api.obol.tech
  description: Production environment
- url: http://localhost:3000
  description: Local development server
- url: https://localhost:3000
  description: HTTPS Local development server
tags:
- name: Fee Recipient
paths:
  /fee_recipient/partial/{lockHash}/{shareIdx}:
    post:
      description: Stores partial BLS-signed builder registration messages for a given cluster operator. Partials are grouped into builder registrations by message content (fee_recipient, gas_limit, timestamp). The timestamp must be greater than or equal to the highest timestamp any operator has submitted for each pubkey. Equal timestamps are allowed so operators can join an existing registration group.
      operationId: FeeRecipientController_postPartialFeeRecipients[0]
      parameters:
      - name: lockHash
        required: true
        in: path
        description: The cluster lock hash.
        schema:
          example: 0x1234abcd...
          type: string
      - name: shareIdx
        required: true
        in: path
        description: The operator share index (1-based).
        schema:
          example: 1
          type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeeRecipientDto'
      responses:
        '201':
          description: Partial registrations saved successfully.
        '400':
          description: Invalid request body, signature verification failed, invalid share index, or duplicate pubkey in request.
        '404':
          description: Lock not found.
        '500':
          description: An unknown error occurred.
      summary: Submit partial fee recipient registrations
      tags:
      - Fee Recipient
  /v1/fee_recipient/partial/{lockHash}/{shareIdx}:
    post:
      description: Stores partial BLS-signed builder registration messages for a given cluster operator. Partials are grouped into builder registrations by message content (fee_recipient, gas_limit, timestamp). The timestamp must be greater than or equal to the highest timestamp any operator has submitted for each pubkey. Equal timestamps are allowed so operators can join an existing registration group.
      operationId: FeeRecipientController_postPartialFeeRecipients[1]_v1
      parameters:
      - name: lockHash
        required: true
        in: path
        description: The cluster lock hash.
        schema:
          example: 0x1234abcd...
          type: string
      - name: shareIdx
        required: true
        in: path
        description: The operator share index (1-based).
        schema:
          example: 1
          type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeeRecipientDto'
      responses:
        '201':
          description: Partial registrations saved successfully.
        '400':
          description: Invalid request body, signature verification failed, invalid share index, or duplicate pubkey in request.
        '404':
          description: Lock not found.
        '500':
          description: An unknown error occurred.
      summary: Submit partial fee recipient registrations
      tags:
      - Fee Recipient
  /fee_recipient/{lockHash}:
    post:
      description: 'Returns builder registration status for validators in a cluster. For each validator, returns at most two registrations: the latest one that reached quorum (quorum: true) and the latest one still collecting signatures (quorum: false). Validators with no registration data are omitted. Optionally pass an array of pubkeys in the request body to filter results.'
      operationId: FeeRecipientController_getPartialFeeRecipients[0]
      parameters:
      - name: lockHash
        required: true
        in: path
        description: The cluster lock hash.
        schema:
          example: 0x1234abcd...
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchQueryDto'
      responses:
        '200':
          description: 'Per validator: at most 2 builder registrations (latest with quorum: true, latest with quorum: false). Each registration includes the signed message, partial signatures, and a quorum boolean. Pubkeys returned without 0x prefix.'
        '404':
          description: Lock not found or no partial registrations found.
        '500':
          description: An unknown error occurred.
      summary: Fetch partial fee recipient registrations
      tags:
      - Fee Recipient
  /v1/fee_recipient/{lockHash}:
    post:
      description: 'Returns builder registration status for validators in a cluster. For each validator, returns at most two registrations: the latest one that reached quorum (quorum: true) and the latest one still collecting signatures (quorum: false). Validators with no registration data are omitted. Optionally pass an array of pubkeys in the request body to filter results.'
      operationId: FeeRecipientController_getPartialFeeRecipients[1]_v1
      parameters:
      - name: lockHash
        required: true
        in: path
        description: The cluster lock hash.
        schema:
          example: 0x1234abcd...
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchQueryDto'
      responses:
        '200':
          description: 'Per validator: at most 2 builder registrations (latest with quorum: true, latest with quorum: false). Each registration includes the signed message, partial signatures, and a quorum boolean. Pubkeys returned without 0x prefix.'
        '404':
          description: Lock not found or no partial registrations found.
        '500':
          description: An unknown error occurred.
      summary: Fetch partial fee recipient registrations
      tags:
      - Fee Recipient
components:
  schemas:
    FetchQueryDto:
      type: object
      properties:
        pubkeys:
          description: Optional list of validator pubkeys to filter by. If omitted or empty, returns all validators with registrations.
          example:
          - 0xdeadbeef...
          - 0xcafebabe...
          type: array
          items:
            type: string
    FeeRecipientDto:
      type: object
      properties:
        partial_registrations:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/PartialRegistrationDto'
      required:
      - partial_registrations
    RegistrationMessageDto:
      type: object
      properties:
        fee_recipient:
          type: string
        gas_limit:
          type: string
        timestamp:
          type: string
        pubkey:
          type: string
      required:
      - fee_recipient
      - gas_limit
      - timestamp
      - pubkey
    PartialRegistrationDto:
      type: object
      properties:
        message:
          $ref: '#/components/schemas/RegistrationMessageDto'
        signature:
          type: string
      required:
      - message
      - signature
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http