Obol Fee Recipient API
The Fee Recipient API from Obol — 4 operation(s) for fee recipient.
The Fee Recipient API from Obol — 4 operation(s) for fee recipient.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/obol-fee-recipient-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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