openapi: 3.0.3 info: title: Chainstack Ethereum Beacon Chain API version: 1.0.0 description: Chainstack-managed RPC node API for the Ethereum Beacon Chain API blockchain. Endpoints follow the canonical JSON-RPC over HTTPS interface for the network. Authenticate against your Chainstack node's per-node URL (e.g. https://nd-XXX-XXX-XXX.p2pify.com/). Merged from the Chainstack Developer Portal per-method fragments at https://github.com/chainstack/dev-portal/tree/main/openapi/ethereum_beacon_chain_api. contact: name: Chainstack API Support email: support@chainstack.com license: name: Chainstack Terms url: https://chainstack.com/terms-of-service/ servers: - url: https://{node_id}.p2pify.com/{api_key} description: Chainstack-managed node endpoint variables: node_id: default: nd-000-000-000 description: Your Chainstack node identifier api_key: default: description: Per-node access key tags: - name: Configuration Info - name: Debug - name: Events - name: State - name: Validatiors Info paths: /deposit_contract: get: summary: Get the Ethereum deposit contract configuration operationId: getConfigDepositContract responses: '200': description: Deposit contract configuration successfully retrieved content: application/json: schema: $ref: '#/components/schemas/DepositContractConfig' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Configuration Info /fork_schedule: get: summary: Get the Ethereum fork schedule operationId: getConfigForkSchedule responses: '200': description: Fork schedule successfully retrieved content: application/json: schema: $ref: '#/components/schemas/ForkScheduleList' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Configuration Info /fork_version_by_state_id: get: summary: Get fork information for a specific state operationId: getForkInformation tags: - Configuration Info parameters: - name: state_id in: path required: true description: State identifier which can be a slot number, an epoch number, a block root, or special values like 'genesis' or 'head'. schema: type: string default: head responses: '200': description: Successful response with fork information content: application/json: schema: $ref: '#/components/schemas/ForkInformation' '400': description: Invalid state identifier value content: application/json: schema: $ref: '#/components/schemas/Error' /genesis_data: get: summary: Genesis operationId: getBeaconGenesis parameters: - name: apiKey in: path description: Your API key required: true schema: type: string responses: '200': description: Beacon genesis information successfully retrieved content: application/json: schema: $ref: '#/components/schemas/Genesis' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Configuration Info /node_config: get: summary: Node configuration operationId: getConfigSpec responses: '200': description: Specification configuration successfully retrieved content: application/json: schema: $ref: '#/components/schemas/SpecConfig' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Configuration Info /getDebugBeaconHeadsV2: get: summary: Get fork choice leaves operationId: getDebugBeaconHeadsV2 description: Retrieves all possible chain heads (leaves of fork choice tree). This endpoint provides insight into the current fork choice state by returning all potential chain heads that the beacon node is tracking. tags: - Debug responses: '200': description: Success - Fork choice leaves retrieved content: application/json: schema: $ref: '#/components/schemas/GetDebugChainHeadsResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' /getDebugBeaconStateV2: get: summary: Get full BeaconState object operationId: getDebugBeaconStateV2 description: Returns full BeaconState object for given stateId. This is a comprehensive debug endpoint that provides the complete state of the beacon chain at a specific point, including all validator information, balances, and other state details. Depending on Accept header it can be returned either as JSON or as bytes serialized by SSZ. tags: - Debug parameters: - name: state_id in: path description: 'State identifier. Can be one of: ''head'' (canonical head in node''s view), ''genesis'', ''finalized'', ''justified'', , .' required: true schema: type: string default: head responses: '200': description: Success - Full BeaconState object retrieved headers: Eth-Consensus-Version: description: The active consensus version to which the data belongs. Required in response so client can deserialize returned JSON or SSZ data more effectively. required: true schema: type: string enum: - phase0 - altair - bellatrix - capella - deneb - electra example: deneb content: application/json: schema: $ref: '#/components/schemas/GetStateV2Response' application/octet-stream: schema: type: string format: binary description: SSZ serialized BeaconState object '400': description: Invalid state ID content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: State not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' /getDebugForkChoice: get: summary: Get fork choice array operationId: getDebugForkChoice description: Retrieves all current fork choice context including justified and finalized checkpoints, and the complete fork choice tree with all nodes and their weights. tags: - Debug responses: '200': description: Success - Fork choice data retrieved content: application/json: schema: $ref: '#/components/schemas/GetForkChoiceResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' /subscribe_to_events: get: summary: Subscribe to events operationId: subscribeToBeaconEvents parameters: - name: topics in: query description: Topics to subscribe to, e.g., 'head' required: true schema: type: string default: head responses: '200': description: Successfully subscribed to events content: text/event-stream: schema: type: string example: 'event: contribution_and_proof data: {"contribution": "...", "proof": "..."} ' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Events /getBeaconBlockRootByBlockId: get: summary: Get the root of the beacon block by block_id operationId: getBeaconBlockRootByBlockId parameters: - name: block_id in: path description: Block identifier, e.g., 'head', 'genesis', 'finalized', or a specific block root. required: true schema: type: string default: head responses: '200': description: Beacon block root successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BeaconBlockRootItem' '404': description: Beacon block root not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - State /getBeaconBlocksByBlockId: get: summary: Get beacon blocks by block_id operationId: getBeaconBlocksByBlockId parameters: - name: block_id in: path description: Block identifier, e.g., 'head', 'genesis', 'finalized', or a specific block root. required: true schema: type: string default: head responses: '200': description: Beacon block successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BeaconBlockItem' '404': description: Beacon block not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - State /getBeaconHeadersByBlockId: get: summary: Get beacon headers by block_id operationId: getBeaconHeadersByBlockId parameters: - name: block_id in: path description: Block identifier, e.g., 'head', 'genesis', 'finalized', or a specific block root. required: true schema: type: string default: head responses: '200': description: Beacon header successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BeaconHeaderItem' '404': description: Beacon header not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - State /getBeaconHeadersBySlotAndParentRoot: get: summary: Get beacon headers by slot and parent root operationId: getBeaconHeadersBySlotAndParentRoot parameters: - name: slot in: query description: Slot number required: false schema: type: integer format: int64 default: 6215071 - name: parent_root in: query description: Parent root hash required: false schema: type: string format: byte responses: '200': description: Beacon headers successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BeaconHeaders' '404': description: Beacon headers not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - State /getBlobsByBlockId: get: summary: Get blobs by block_id operationId: getBlobsByBlockId parameters: - name: block_id in: path description: Block identifier, e.g., 'head', 'genesis', 'finalized', or a specific slot number. required: true schema: type: string default: head responses: '200': description: Blobs successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BlobsResponse' '404': description: Block not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - State /getCommitteesByStateIdEpochIndexAndSlot: get: summary: Get committees by state, epoch, index, and slot operationId: getCommitteesByStateIdEpochIndexAndSlot parameters: - name: state_id in: path description: State identifier, e.g., 'head', 'finalized', 'genesis', or a specific slot number. required: true schema: type: string default: head - name: epoch in: query description: Epoch number required: false schema: type: integer format: int64 example: 194213 - name: index in: query description: Committee index required: false schema: type: integer format: int64 example: 1 - name: slot in: query description: Slot number required: false schema: type: integer format: int64 responses: '200': description: Committee data successfully retrieved content: application/json: schema: $ref: '#/components/schemas/CommitteeData' '404': description: Committee data not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - State /getFinalityCheckpoints: get: summary: Get finality checkpoints for a given state operationId: getFinalityCheckpoints tags: - State parameters: - name: state_id in: path required: true description: State identifier which can be a slot number, an epoch number, a block root, or 'genesis', 'head' (default is 'head'). schema: type: string default: head responses: '200': description: Successful response with finality checkpoints information content: application/json: schema: $ref: '#/components/schemas/FinalityCheckpoints' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' /getStateRoot: get: summary: Get the root of a given state operationId: getStateRoot tags: - State parameters: - name: state_id in: path required: true description: State identifier which can be a slot number, an epoch number, a block root, or 'genesis', 'head' (default is 'head'). schema: type: string default: head responses: '200': description: Successful response with state root information content: application/json: schema: $ref: '#/components/schemas/StateRoot' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' /getSyncCommitteeContribution: get: summary: Get sync committee contribution for a given slot, subcommittee index, and beacon block root operationId: getSyncCommitteeContribution parameters: - name: slot in: query description: Slot for which to retrieve the sync committee contribution required: true schema: type: integer format: int64 default: 6244671 - name: subcommittee_index in: query description: Subcommittee index for which to retrieve the sync committee contribution required: true schema: type: integer format: int64 default: 1 - name: beacon_block_root in: query description: Beacon block root for which to retrieve the sync committee contribution required: true schema: type: string pattern: ^0x[0-9a-fA-F]+$ default: '0x19708d7b686e2654656690f3262ff3686b810966839117ae8affd0e757b17544' responses: '200': description: Sync committee contribution successfully retrieved content: application/json: schema: $ref: '#/components/schemas/SyncCommitteeContribution' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - State /getSyncCommitteesByStateIdAndEpoch: get: summary: Get sync committees by state and epoch operationId: getSyncCommitteesByStateIdAndEpoch parameters: - name: state_id in: path description: State identifier, e.g., 'head', 'finalized', 'genesis', or a specific slot number. required: true schema: type: string default: head - name: epoch in: query description: Epoch number required: false schema: type: integer format: int64 example: 194213 responses: '200': description: Sync committee data successfully retrieved content: application/json: schema: $ref: '#/components/schemas/SyncCommitteeData' '404': description: Sync committee data not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - State /attestation_data: get: summary: Get attestation data operationId: getAttestationData parameters: - name: slot in: query description: Slot for which to retrieve attestation data required: true schema: type: integer format: int64 default: 6244411 - name: committee_index in: query description: Committee index for which to retrieve attestation data required: true schema: type: integer format: int64 default: 5 responses: '200': description: Attestation data successfully retrieved content: application/json: schema: $ref: '#/components/schemas/AttestationData' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /attestation_of_beacon_block_by_block_id: get: summary: Get attestations of the beacon block by block_id operationId: getBeaconBlockAttestationsByBlockId parameters: - name: block_id in: path description: Block identifier, e.g., 'head', 'genesis', 'finalized', or a specific block root. required: true schema: type: string default: head responses: '200': description: Beacon block attestations successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BeaconBlockAttestationsList' '404': description: Beacon block attestations not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /attester_slashings: get: summary: Get attester slashings operationId: getBeaconPoolAttesterSlashings responses: '200': description: Beacon pool attester slashings successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BeaconPoolAttesterSlashingsList' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /beacon_pool_attestations: get: summary: Get attestations from the beacon pool operationId: getBeaconPoolAttestationsBySlotAndCommitteeIndex parameters: - name: slot in: query description: The slot number to filter attestations required: false schema: type: integer format: int64 default: 6243475 - name: committee_index in: query description: The committee index to filter attestations required: false schema: type: integer format: int64 default: 10 responses: '200': description: Beacon pool attestations successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BeaconPoolAttestationsList' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /produce_unsigned_blinded_block: get: summary: Produce an unsigned blinded block operationId: produceBlindedBlock parameters: - name: slot in: path description: Slot for which to produce a new blinded block required: true schema: type: integer format: int64 default: 6244411 - name: randao_reveal in: query description: RANDAO reveal for the block required: true schema: type: string pattern: ^0x[0-9a-fA-F]+$ default: '0x8363f30516d67556dae486c64535e2641293e794ddf21631fe06a32903648e70b606f5461c5f37c13c23f545c1d13e5401ea6a48526e01c9d94ea028e02fec5edc42034fc22b23f3a9dd90621173b2a1141a6ecf409d8bb61c82440e87a5bb25' - name: graffiti in: query description: Graffiti for the block required: false schema: type: string pattern: ^0x[0-9a-fA-F]+$ example: '0x5374616b65576973650000000000000000000000000000000000000000000000' responses: '200': description: Successfully produced a new blinded block content: application/json: schema: $ref: '#/components/schemas/Block' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /produce_unsigned_block: get: summary: Produce a new block for the given slot operationId: produceBlock parameters: - name: slot in: path description: Slot for which to produce a new block required: true schema: type: integer format: int64 default: 6244478 - name: randao_reveal in: query description: RANDAO reveal for the block required: true schema: type: string pattern: ^0x[0-9a-fA-F]+$ default: '0xb73a92a633356ed71c3ff8c6a687d6a7b9a10db930f92f3b41a18e2dfc0c41535c522006ae3db8b1cb6fe7b3a93962f413c127de4eba22cb0b2d0065dc120156012e53038c3e29477342f9fac2b4368c054aa0d18c246c1463da03161f902f8e' - name: graffiti in: query description: Graffiti for the block required: false schema: type: string pattern: ^0x[0-9a-fA-F]+$ example: '0x4c69676874686f7573652f76342e302e322d72632e302d333564386339380000' responses: '200': description: Successfully produced a new block content: application/json: schema: $ref: '#/components/schemas/Block' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /proposer_duties: get: summary: Get proposer duties operationId: getProposerDuties parameters: - name: epoch in: path description: Epoch for which to get the proposer duties required: true schema: type: integer format: int64 default: 1 responses: '200': description: Successfully retrieved proposer duties content: application/json: schema: $ref: '#/components/schemas/ProposerDuties' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /proposer_slashings: get: summary: Get proposer slashings from the beacon pool operationId: getBeaconPoolProposerSlashings responses: '200': description: Beacon pool proposer slashings successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BeaconPoolProposerSlashingsList' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /validator_balances: get: summary: Get validator balances by state and ID operationId: getValidatorBalancesByStateIdAndValidatorId parameters: - name: state_id in: path description: State identifier, e.g., 'head', 'finalized', 'genesis', or a specific slot number. required: true schema: type: string default: head - name: id in: query description: Validator ID required: true schema: type: string default: 1 responses: '200': description: Validator balances successfully retrieved content: application/json: schema: $ref: '#/components/schemas/ValidatorBalances' '404': description: Validator balances not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /validator_information_by_state_id: get: summary: Get information about a specific validator in a given state operationId: getValidatorInformation tags: - Validatiors Info parameters: - name: state_id in: path required: true description: State identifier which can be a slot number, an epoch number, a block root, or 'genesis', 'head' (default is 'head'). schema: type: string default: head - name: validator_index in: path required: true description: Index of the validator (default is '1'). schema: type: integer default: 1 responses: '200': description: Successful response with validator information content: application/json: schema: $ref: '#/components/schemas/ValidatorInformation' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' /validator_information_by_state_id_or_public_key: get: summary: Get validator by state and ID operationId: getValidatorByStateIdAndIndex parameters: - name: state_id in: path description: State identifier, e.g., 'head', 'finalized', 'genesis', or a specific slot number. required: true schema: type: string default: head - name: index in: path description: Validator index required: true schema: type: integer format: int64 default: 1 responses: '200': description: Validator successfully retrieved content: application/json: schema: $ref: '#/components/schemas/Validator' '404': description: Validator not found content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info /voluntary_exits: get: summary: Get voluntary exits from the beacon pool operationId: getBeaconPoolVoluntaryExits responses: '200': description: Beacon pool voluntary exits successfully retrieved content: application/json: schema: $ref: '#/components/schemas/BeaconPoolVoluntaryExitsList' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Validatiors Info components: schemas: DepositContractConfig: type: object properties: chain_id: type: integer format: int64 address: type: string pattern: ^0x[0-9a-fA-F]{40}$ required: - chain_id - address Error: type: object properties: code: type: integer format: int32 message: type: string required: - code - message ForkScheduleList: type: array items: $ref: '#/components/schemas/ForkScheduleItem' ForkScheduleItem: type: object properties: epoch: type: integer format: int64 version: type: string pattern: ^[0-9a-fA-F]{8}$ required: - epoch - version ForkInformation: type: object properties: epoch: type: string description: The epoch number at which the current version was applied. previous_version: type: string description: The previous fork version. current_version: type: string description: The current fork version. Genesis: type: object properties: data: $ref: '#/components/schemas/GenesisData' required: - data GenesisData: type: object properties: genesis_time: type: string format: date-time description: The genesis time as an ISO 8601 formatted string. genesis_validators_root: type: string pattern: ^0x[a-fA-F0-9]{64}$ description: The 32-byte genesis validators root as a hex string. genesis_fork_version: type: string pattern: ^0x[a-fA-F0-9]{8}$ description: The 4-byte genesis fork version as a hex string. required: - genesis_time - genesis_validators_root - genesis_fork_version SpecConfig: type: object additionalProperties: type: string GetDebugChainHeadsResponse: type: object required: - data properties: data: type: array description: Array of all chain heads (fork choice leaves) items: $ref: '#/components/schemas/ChainHead' ChainHead: type: object required: - root - slot - execution_optimistic properties: root: type: string format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: ^0x[a-fA-F0-9]{64}$ description: The block root of this chain head slot: type: string example: '1' description: The slot number of this chain head execution_optimistic: type: boolean example: false description: True if this head references an unverified execution payload. Optimistic information may be invalidated at a later time. GetStateV2Response: type: object required: - version - execution_optimistic - finalized - data properties: version: type: string enum: - phase0 - altair - bellatrix - capella - deneb - electra example: deneb description: The consensus version of the state execution_optimistic: type: boolean example: false description: True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. finalized: type: boolean example: false description: True if the response references the finalized history of the chain, as determined by fork choice. data: type: object description: The full BeaconState object. The structure varies based on the consensus version. properties: genesis_time: type: string example: '1606824023' description: Unix timestamp of the chain genesis genesis_validators_root: type: string format: hex example: '0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95' pattern: ^0x[a-fA-F0-9]{64}$ description: Root hash of the genesis validators slot: type: string example: '1' description: Current slot number fork: type: object description: Fork information properties: previous_version: type: string format: hex pattern: ^0x[a-fA-F0-9]{8}$ current_version: type: string format: hex pattern: ^0x[a-fA-F0-9]{8}$ epoch: type: string example: '1' latest_block_header: type: object description: Latest block header information block_roots: type: array description: Array of recent block roots items: type: string format: hex pattern: ^0x[a-fA-F0-9]{64}$ state_roots: type: array description: Array of recent state roots items: type: string format: hex pattern: ^0x[a-fA-F0-9]{64}$ validators: type: array description: Array of all validators items: type: object properties: pubkey: type: string format: hex pattern: ^0x[a-fA-F0-9]{96}$ withdrawal_credentials: type: string format: hex pattern: ^0x[a-fA-F0-9]{64}$ effective_balance: type: string slashed: type: boolean activation_eligibility_epoch: type: string activation_epoch: type: string exit_epoch: type: string withdrawable_epoch: type: string balances: type: array description: Validator balances items: type: string eth1_data: type: object description: Eth1 chain data eth1_data_votes: type: array description: Votes for Eth1 data items: type: object eth1_deposit_index: type: string description: Eth1 deposit index previous_justified_checkpoint: type: object description: Previous justified checkpoint current_justified_checkpoint: type: object description: Current justified checkpoint finalized_checkpoint: type: object description: Finalized checkpoint GetForkChoiceResponse: type: object description: Debugging context of fork choice required: - justified_checkpoint - finalized_checkpoint - fork_choice_nodes properties: justified_checkpoint: $ref: '#/components/schemas/Checkpoint' finalized_checkpoint: $ref: '#/components/schemas/Checkpoint' fork_choice_nodes: type: array description: Fork choice nodes representing the complete fork choice tree minItems: 1 items: $ref: '#/components/schemas/ForkChoiceNode' extra_data: type: object description: Optional extra data that clients may provide, which could differ from client to client Checkpoint: type: object properties: epoch: type: integer format: int64 root: type: string required: - epoch - root ForkChoiceNode: type: object description: Fork choice node attributes required: - slot - block_root - parent_root - justified_epoch - finalized_epoch - weight - validity - execution_block_hash properties: slot: type: string example: '1' description: The slot to which this block corresponds block_root: type: string format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: ^0x[a-fA-F0-9]{64}$ description: The signing merkle root of the BeaconBlock parent_root: type: string format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: ^0x[a-fA-F0-9]{64}$ description: The signing merkle root of the parent BeaconBlock justified_epoch: type: string example: '1' description: The justified epoch from this block's perspective finalized_epoch: type: string example: '1' description: The finalized epoch from this block's perspective weight: type: string example: '1' description: The weight/score of this block in the fork choice algorithm validity: type: string enum: - valid - invalid - optimistic description: The validity status of this block execution_block_hash: type: string format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: ^0x[a-fA-F0-9]{64}$ description: The block_hash from the execution_payload of the BeaconBlock extra_data: type: object description: Optional extra data that clients may provide, which could differ from client to client BeaconBlockRootItem: type: object properties: root: type: string required: - root BeaconBlockItem: type: object properties: root: type: string block: $ref: '#/components/schemas/Block' required: - root - block Block: type: object properties: slot: type: integer format: int64 parent_root: type: string state_root: type: string body: type: object required: - slot - parent_root - state_root - body BeaconHeaderItem: type: object properties: root: type: string canonical: type: boolean header: $ref: '#/components/schemas/Header' required: - root - canonical - header Header: type: object properties: slot: type: integer format: int64 parent_root: type: string state_root: type: string body_root: type: string required: - slot - parent_root - state_root - body_root BeaconHeaders: type: object properties: data: type: array items: $ref: '#/components/schemas/BeaconHeader' required: - data BeaconHeader: type: object properties: root: type: string canonical: type: boolean header: $ref: '#/components/schemas/Header' required: - root - canonical - header BlobsResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/BlobItem' required: - data BlobItem: type: object properties: index: type: string blob: type: string kzg_commitment: type: string kzg_proof: type: string signed_block_header: type: object required: - index - blob - kzg_commitment - kzg_proof CommitteeData: type: object properties: data: type: array items: $ref: '#/components/schemas/CommitteeItem' required: - data CommitteeItem: type: object properties: index: type: integer format: int64 slot: type: integer format: int64 validators: type: array items: type: integer format: int64 required: - index - slot - validators FinalityCheckpoints: type: object properties: previous_justified: type: object properties: epoch: type: integer description: Epoch number of the previous justified checkpoint. root: type: string format: byte description: Root of the previous justified checkpoint. current_justified: type: object properties: epoch: type: integer description: Epoch number of the current justified checkpoint. root: type: string format: byte description: Root of the current justified checkpoint. finalized: type: object properties: epoch: type: integer description: Epoch number of the finalized checkpoint. root: type: string format: byte description: Root of the finalized checkpoint. StateRoot: type: object properties: root: type: string format: byte description: The root of the specified state. SyncCommitteeContribution: type: object properties: slot: type: integer format: int64 beacon_block_root: type: string pattern: ^0x[0-9a-fA-F]+$ subcommittee_index: type: integer format: int64 aggregation_bits: type: string pattern: ^0x[0-9a-fA-F]+$ signature: type: string pattern: ^0x[0-9a-fA-F]+$ required: - slot - beacon_block_root - subcommittee_index - aggregation_bits - signature SyncCommitteeData: type: object properties: data: $ref: '#/components/schemas/SyncCommittee' required: - data SyncCommittee: type: object properties: validators: type: array items: type: integer format: int64 validator_aggregates: type: string required: - validators - validator_aggregates AttestationData: type: object properties: slot: type: integer format: int64 index: type: integer format: int64 beacon_block_root: type: string source: $ref: '#/components/schemas/Checkpoint' target: $ref: '#/components/schemas/Checkpoint' required: - slot - index - beacon_block_root - source - target BeaconBlockAttestationsList: type: array items: $ref: '#/components/schemas/BeaconBlockAttestationItem' BeaconBlockAttestationItem: type: object properties: aggregation_bits: type: string data: $ref: '#/components/schemas/AttestationData' signature: type: string required: - aggregation_bits - data - signature BeaconPoolAttesterSlashingsList: type: array items: $ref: '#/components/schemas/BeaconPoolAttesterSlashingItem' BeaconPoolAttesterSlashingItem: type: object properties: attestation_1: $ref: '#/components/schemas/IndexedAttestation' attestation_2: $ref: '#/components/schemas/IndexedAttestation' required: - attestation_1 - attestation_2 IndexedAttestation: type: object properties: attesting_indices: type: array items: type: integer format: int64 data: $ref: '#/components/schemas/AttestationData' signature: type: string required: - attesting_indices - data - signature BeaconPoolAttestationsList: type: array items: $ref: '#/components/schemas/BeaconPoolAttestationItem' BeaconPoolAttestationItem: type: object properties: aggregation_bits: type: string data: $ref: '#/components/schemas/AttestationData' signature: type: string required: - aggregation_bits - data - signature ProposerDuties: type: array items: type: object properties: pubkey: type: string validator_index: type: integer format: int64 slot: type: integer format: int64 required: - pubkey - validator_index - slot BeaconPoolProposerSlashingsList: type: array items: $ref: '#/components/schemas/BeaconPoolProposerSlashingItem' BeaconPoolProposerSlashingItem: type: object properties: signed_header_1: $ref: '#/components/schemas/SignedBeaconBlockHeader' signed_header_2: $ref: '#/components/schemas/SignedBeaconBlockHeader' required: - signed_header_1 - signed_header_2 SignedBeaconBlockHeader: type: object properties: message: $ref: '#/components/schemas/BeaconBlockHeader' signature: type: string required: - message - signature BeaconBlockHeader: type: object properties: slot: type: integer format: int64 proposer_index: type: integer format: int64 parent_root: type: string state_root: type: string body_root: type: string required: - slot - proposer_index - parent_root - state_root - body_root ValidatorBalances: type: object properties: data: type: array items: $ref: '#/components/schemas/BalanceItem' required: - data BalanceItem: type: object properties: index: type: string balance: type: string required: - index - balance ValidatorInformation: type: object properties: index: type: integer description: Validator index. balance: type: integer description: Validator's balance. status: type: string description: Validator status. validator: type: object properties: public_key: type: string format: byte description: Validator public key. effective_balance: type: integer description: Validator's effective balance. slashed: type: boolean description: Flag indicating if the validator is slashed. Validator: type: object properties: data: description: The validator's info. required: - index - validator - status BeaconPoolVoluntaryExitsList: type: array items: $ref: '#/components/schemas/BeaconPoolVoluntaryExitItem' BeaconPoolVoluntaryExitItem: type: object properties: message: $ref: '#/components/schemas/VoluntaryExit' signature: type: string required: - message - signature VoluntaryExit: type: object properties: epoch: type: integer format: int64 validator_index: type: integer format: int64 required: - epoch - validator_index