Get block proposers duties

Ask the beacon node to supply all validators slated to submit block proposals during the specified epoch. The checking of responsibilities should only be necessary once every epoch, however in the event of a chain restructuring, the duties may alter. You should keep an eye on head events and make sure the dependent root in this response matches for complete safety:

  • event.current_duty_dependent_root when compute_epoch_at_slot(event.slot) == epoch

  • event.block otherwise

The dependent_root value is get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1) or the genesis block root in the case of underflow.

Example Request and Result for /v1/validator/duties/proposer/{epoch}

In this section, we provide an illustrative example of a request made to retrieve details contents using the /v1/validator/duties/proposer/{epoch} endpoint. Additionally, we present the resulting response containing information about block proposers duties.


The example in this section uses a non-existing project id.

Make sure you replace it with your Ethereum Holesky Beacon endpoint when issuing the API calls.

Don't have a project id? Here's a straightforward guide on how to obtain one!

Get block proposers duties

GET https://eth-holesky-beacon.blastapi.io/<project-id>/eth/v1/validator/duties/proposer/{epoch}

Path Parameters

  "dependent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
  "execution_optimistic": false,
  "data": [
      "pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
      "validator_index": "1",
      "slot": "1"

Curl Request example

curl -X 'GET' \
  'https://eth-holesky-beacon.blastapi.io/<project-id>/eth/v1/validator/duties/proposer/1' \
  -H 'accept: application/json'

Last updated