---
title: "Get attester duties"
method: POST
path: "/eth/v1/validator/duties/attester/{epoch}"
tags: ["ValidatorRequiredApi", "Validator"]
---

# Get attester duties

`POST /eth/v1/validator/duties/attester/{epoch}`

## Request

- Base URL: `eth2-beacon-mainnet.nodereal.io/v1/api_key` (relative, and the document’s source URL is not known)
- URL: `eth2-beacon-mainnet.nodereal.io/v1/api_key/eth/v1/validator/duties/attester/{epoch}`
- Auth: none declared

Requests the beacon node to provide a set of attestation duties, which should be performed by validators, for a particular epoch.
Duties should only need to be checked once per epoch, however a chain reorganization (of > MIN_SEED_LOOKAHEAD epochs) could occur, resulting in a change of duties. For full safety, you should monitor head events and confirm the dependent root in this response matches:
- event.previous_duty_dependent_root when `compute_epoch_at_slot(event.slot) == epoch`
- event.current_duty_dependent_root when `compute_epoch_at_slot(event.slot) + 1 == epoch`
- event.block otherwise

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

## Path parameters

- `epoch` string, required

## Request body

- string[]

## Response `200`

Success response

- object
  - `dependent_root` string: The block root that this response is dependent on.
  - `execution_optimistic` boolean: True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value.
  - `data` object[]
    - `pubkey` string: The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._
    - `validator_index` string: Index of validator in validator registry
    - `committee_index` string: The committee index
    - `committee_length` string: Number of validators in committee
    - `committees_at_slot` string: Number of committees at the provided slot
    - `validator_committee_index` string: Index of validator in committee
    - `slot` string: The slot at which the validator must attest.

## Other responses

- `400`: Invalid epoch or index
- `500`: Beacon node internal error.
- `503`: Beacon node is currently syncing, try again later.

---

[API](https://skmtc.dev/nodereal/apis/eth-beacon-node-api.md) - [All operations](https://skmtc.dev/nodereal/apis/eth-beacon-node-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nodereal/apis/eth-beacon-node-api/revisions/1878ea8657a1?raw)
