This document outlines the tasks to implement the Beacon Node API endpoints.
Beacon
[x] GET /eth/v1/beacon/genesis - Retrieve details of the chain's genesis.
[x] GET /eth/v1/beacon/states/{state_id}/root - Get state SSZ HashTreeRoot.
[x] GET /eth/v1/beacon/states/{state_id}/fork - Get Fork object for requested state.
[x] GET /eth/v1/beacon/states/{state_id}/finality_checkpoints - Get state finality checkpoints.
[x] GET /eth/v1/beacon/states/{state_id}/validators - Get validators from state.
[x] GET /eth/v1/beacon/states/{state_id}/validators/{validator_id} - Get validator from state by id.
[x] GET /eth/v1/beacon/states/{state_id}/validator_balances - Get validator balances from state.
[x] GET /eth/v1/beacon/states/{state_id}/committees - Get all committees for a state.
[x] GET /eth/v1/beacon/states/{state_id}/sync_committees - Get sync committees for a state.
[x] GET /eth/v1/beacon/states/{state_id}/randao - Get the RANDAO mix for some epoch in a specified state.
[x] GET /eth/v1/beacon/headers - Get block headers.
[x] GET /eth/v1/beacon/headers/{block_id} - Get block header.
[ ] POST /eth/v1/beacon/bLinded_blocks - Publish a signed block.
[ ] POST /eth/v2/beacon/bLinded_blocks - Publish a signed block.
[x] POST /eth/v1/beacon/blocks - Publish a signed block.
[x] POST /eth/v2/beacon/blocks - Publish a signed block.
[x] GET /eth/v1/beacon/blocks/{block_id} - Get block.
[x] GET /eth/v2/beacon/blocks/{block_id} - Get block.
[x] GET /eth/v1/beacon/blocks/{block_id}/root - Get block root.
[x] GET /eth/v1/beacon/blocks/{block_id}/attestations - Get block attestations.
[x] GET /eth/v1/beacon/blob_sidecars/{block_id} - Get blob sidecars.
[x] POST /eth/v1/beacon/rewards/sync_committee/{block_id} - Get sync committee rewards.
[x] GET /eth/v1/beacon/deposit_snapshot - Get Deposit Tree Snapshot. (Deprecated after Electra)
[x] GET /eth/v1/beacon/rewards/blocks/{block_id} - Get block rewards.
[x] POST /eth/v1/beacon/rewards/attestations/{epoch} - Get attestations rewards.
[x] GET /eth/v1/beacon/bLinded_blocks/{block_id} - Get blinded block.
[x] GET /eth/v1/beacon/light_client/bootstrap/{block_root} - Get 'LightClientBootstrap' structure for a requested block root.
[x] GET /eth/v1/beacon/light_client/updates - Get 'LightClientUpdate' instances in a requested sync committee period range.
[x] GET /eth/v1/beacon/light_client/finality_update - Get the latest known 'LightClientFinalityUpdate'.
[x] GET /eth/v1/beacon/light_client/optimistic_update - Get the latest known 'LightClientOptimisticUpdate'.
[x] GET /eth/v1/beacon/pool/attestations - Get Attestations from operations pool.
[x] POST /eth/v1/beacon/pool/attestations - Submit Attestation objects to node.
[x] GET /eth/v1/beacon/pool/attester_slashings - Get AttesterSlashings from operations pool.
[x] POST /eth/v1/beacon/pool/attester_slashings - Submit AttesterSlashing object to node's pool.
[x] GET /eth/v1/beacon/pool/proposer_slashings - Get ProposerSlashings from operations pool.
[x] POST /eth/v1/beacon/pool/proposer_slashings - Submit ProposerSlashing object to node's pool.
[x] POST /eth/v1/beacon/pool/sync_committees - Submit sync committee signatures to node
[x] GET /eth/v1/beacon/pool/sync_committees - Get sync committee signatures from operations pool.
[x] POST /eth/v1/beacon/pool/voluntary_exits - Submit SignedVoluntaryExit object to node's pool.
[x] GET /eth/v1/beacon/pool/voluntary_exits - Get SignedVoluntaryExit from operations pool.
[x] GET /eth/v1/beacon/pool/bls_to_execution_changes - Get SignedBLSToExecutionChange from operations pool.
[x] POST /eth/v1/beacon/pool/bls_to_execution_changes - Submit SignedBLSToExecutionChange object to node's pool.
Builder
[x] GET /eth/v1/builder/states/{state_id}/expected_withdrawals - Get the withdrawals that are to be included for the block built on the specified state.
Config
[x] GET /eth/v1/config/fork_schedule - Get scheduled upcoming forks.
[x] GET /eth/v1/config/spec - Get spec params.
[x] GET /eth/v1/config/deposit_contract - Get deposit contract address.
Debug
[x] GET /eth/v2/debug/beacon/states/{state_id} - Get full BeaconState object.
[x] GET /eth/v2/debug/beacon/heads - Get fork choice leaves.
[x] GET /eth/v1/debug/fork_choice - Get fork choice array.
Events
[x] GET /eth/v1/events - Subscribe to beacon node events.
Node
[x] GET /eth/v1/node/identity - Get node network identity.
[x] GET /eth/v1/node/peers - Get node network peers.
[x] GET /eth/v1/node/peers/{peer_id} - Get peer.
[x] GET /eth/v1/node/peer_count - Get peer count.
[x] GET /eth/v1/node/version - Get version string of the running beacon node.
[x] GET /eth/v1/node/syncing - Get node syncing status.
[x] GET /eth/v1/node/health - Get health check.
Validator
[x] POST /eth/v1/validator/duties/attester/{epoch} - Get attester duties.
[x] GET /eth/v1/validator/duties/proposer/{epoch} - Get block proposers duties.
[x] POST /eth/v1/validator/duties/sync/{epoch} - Get sync committee duties.
[x] GET /eth/v2/validator/blocks/{slot} - Produce a new block, without signature. (DEPRECATED!)
[x] GET /eth/v3/validator/blocks/{slot} - Produce a new block, without signature.
[x] GET /eth/v1/validator/blinded_blocks/{slot} - Produce a new blinded block, without signature. (DEPRECATED!)
[x] GET /eth/v1/validator/attestation_data - Produce an attestation data.
[x] GET /eth/v1/validator/aggregate_attestation - Get aggregated attestation.
[x] POST /eth/v1/validator/aggregate_and_proofs - Publish multiple aggregate and proofs.
[x] POST /eth/v1/validator/beacon_committee_subscriptions - Signal beacon node to prepare for a committee subnet.
[x] POST /eth/v1/validator/sync_committee_subscriptions - Subscribe to sync committee subnets.
[ ] POST /eth/v1/validator/beacon_committee_selections - Determine if a distributed validator has been selected to aggregate attestations.
[x] GET /eth/v1/validator/sync_committee_contribution - Produce a sync committee contribution.
[ ] POST /eth/v1/validator/sync_committee_selections - Determine if a distributed validator has been selected to make a sync committee contribution.
[x] POST /eth/v1/validator/contribution_and_proofs - Publish multiple contribution and proofs.
[x] POST /eth/v1/validator/prepare_beacon_proposer - Provide beacon node with proposals for the given validators.
[ ] POST /eth/v1/validator/register_validator - Provide beacon node with registrations for the given validators to the external builder network.
[x] GET /eth/v1/validator/liveness/{epoch} - Indicates if a validator has been observed on the network.
Rewards
[x] POST /eth/v1/beacon/rewards/sync_committee/{block_id} - Get sync committee rewards.
[x] GET /eth/v1/beacon/rewards/blocks/{block_id} - Get block rewards.
[x] POST /eth/v1/beacon/rewards/attestations/{epoch} - Get attestations rewards.
Beacon Node API Implementation Roadmap
This document outlines the tasks to implement the Beacon Node API endpoints.
Beacon
GET /eth/v1/beacon/genesis
- Retrieve details of the chain's genesis.GET /eth/v1/beacon/states/{state_id}/root
- Get state SSZ HashTreeRoot.GET /eth/v1/beacon/states/{state_id}/fork
- Get Fork object for requested state.GET /eth/v1/beacon/states/{state_id}/finality_checkpoints
- Get state finality checkpoints.GET /eth/v1/beacon/states/{state_id}/validators
- Get validators from state.GET /eth/v1/beacon/states/{state_id}/validators/{validator_id}
- Get validator from state by id.GET /eth/v1/beacon/states/{state_id}/validator_balances
- Get validator balances from state.GET /eth/v1/beacon/states/{state_id}/committees
- Get all committees for a state.GET /eth/v1/beacon/states/{state_id}/sync_committees
- Get sync committees for a state.GET /eth/v1/beacon/states/{state_id}/randao
- Get the RANDAO mix for some epoch in a specified state.GET /eth/v1/beacon/headers
- Get block headers.GET /eth/v1/beacon/headers/{block_id}
- Get block header.POST /eth/v1/beacon/bLinded_blocks
- Publish a signed block.POST /eth/v2/beacon/bLinded_blocks
- Publish a signed block.POST /eth/v1/beacon/blocks
- Publish a signed block.POST /eth/v2/beacon/blocks
- Publish a signed block.GET /eth/v1/beacon/blocks/{block_id}
- Get block.GET /eth/v2/beacon/blocks/{block_id}
- Get block.GET /eth/v1/beacon/blocks/{block_id}/root
- Get block root.GET /eth/v1/beacon/blocks/{block_id}/attestations
- Get block attestations.GET /eth/v1/beacon/blob_sidecars/{block_id}
- Get blob sidecars.POST /eth/v1/beacon/rewards/sync_committee/{block_id}
- Get sync committee rewards.GET /eth/v1/beacon/deposit_snapshot
- Get Deposit Tree Snapshot. (Deprecated after Electra)GET /eth/v1/beacon/rewards/blocks/{block_id}
- Get block rewards.POST /eth/v1/beacon/rewards/attestations/{epoch}
- Get attestations rewards.GET /eth/v1/beacon/bLinded_blocks/{block_id}
- Get blinded block.GET /eth/v1/beacon/light_client/bootstrap/{block_root}
- Get 'LightClientBootstrap' structure for a requested block root.GET /eth/v1/beacon/light_client/updates
- Get 'LightClientUpdate' instances in a requested sync committee period range.GET /eth/v1/beacon/light_client/finality_update
- Get the latest known 'LightClientFinalityUpdate'.GET /eth/v1/beacon/light_client/optimistic_update
- Get the latest known 'LightClientOptimisticUpdate'.GET /eth/v1/beacon/pool/attestations
- Get Attestations from operations pool.POST /eth/v1/beacon/pool/attestations
- Submit Attestation objects to node.GET /eth/v1/beacon/pool/attester_slashings
- Get AttesterSlashings from operations pool.POST /eth/v1/beacon/pool/attester_slashings
- Submit AttesterSlashing object to node's pool.GET /eth/v1/beacon/pool/proposer_slashings
- Get ProposerSlashings from operations pool.POST /eth/v1/beacon/pool/proposer_slashings
- Submit ProposerSlashing object to node's pool.POST /eth/v1/beacon/pool/sync_committees
- Submit sync committee signatures to nodeGET /eth/v1/beacon/pool/sync_committees
- Get sync committee signatures from operations pool.POST /eth/v1/beacon/pool/voluntary_exits
- Submit SignedVoluntaryExit object to node's pool.GET /eth/v1/beacon/pool/voluntary_exits
- Get SignedVoluntaryExit from operations pool.GET /eth/v1/beacon/pool/bls_to_execution_changes
- Get SignedBLSToExecutionChange from operations pool.POST /eth/v1/beacon/pool/bls_to_execution_changes
- Submit SignedBLSToExecutionChange object to node's pool.Builder
GET /eth/v1/builder/states/{state_id}/expected_withdrawals
- Get the withdrawals that are to be included for the block built on the specified state.Config
GET /eth/v1/config/fork_schedule
- Get scheduled upcoming forks.GET /eth/v1/config/spec
- Get spec params.GET /eth/v1/config/deposit_contract
- Get deposit contract address.Debug
GET /eth/v2/debug/beacon/states/{state_id}
- Get full BeaconState object.GET /eth/v2/debug/beacon/heads
- Get fork choice leaves.GET /eth/v1/debug/fork_choice
- Get fork choice array.Events
GET /eth/v1/events
- Subscribe to beacon node events.Node
GET /eth/v1/node/identity
- Get node network identity.GET /eth/v1/node/peers
- Get node network peers.GET /eth/v1/node/peers/{peer_id}
- Get peer.GET /eth/v1/node/peer_count
- Get peer count.GET /eth/v1/node/version
- Get version string of the running beacon node.GET /eth/v1/node/syncing
- Get node syncing status.GET /eth/v1/node/health
- Get health check.Validator
POST /eth/v1/validator/duties/attester/{epoch}
- Get attester duties.GET /eth/v1/validator/duties/proposer/{epoch}
- Get block proposers duties.POST /eth/v1/validator/duties/sync/{epoch}
- Get sync committee duties.GET /eth/v2/validator/blocks/{slot}
- Produce a new block, without signature. (DEPRECATED!)GET /eth/v3/validator/blocks/{slot}
- Produce a new block, without signature.GET /eth/v1/validator/blinded_blocks/{slot}
- Produce a new blinded block, without signature. (DEPRECATED!)GET /eth/v1/validator/attestation_data
- Produce an attestation data.GET /eth/v1/validator/aggregate_attestation
- Get aggregated attestation.POST /eth/v1/validator/aggregate_and_proofs
- Publish multiple aggregate and proofs.POST /eth/v1/validator/beacon_committee_subscriptions
- Signal beacon node to prepare for a committee subnet.POST /eth/v1/validator/sync_committee_subscriptions
- Subscribe to sync committee subnets.POST /eth/v1/validator/beacon_committee_selections
- Determine if a distributed validator has been selected to aggregate attestations.GET /eth/v1/validator/sync_committee_contribution
- Produce a sync committee contribution.POST /eth/v1/validator/sync_committee_selections
- Determine if a distributed validator has been selected to make a sync committee contribution.POST /eth/v1/validator/contribution_and_proofs
- Publish multiple contribution and proofs.POST /eth/v1/validator/prepare_beacon_proposer
- Provide beacon node with proposals for the given validators.POST /eth/v1/validator/register_validator
- Provide beacon node with registrations for the given validators to the external builder network.GET /eth/v1/validator/liveness/{epoch}
- Indicates if a validator has been observed on the network.Rewards
POST /eth/v1/beacon/rewards/sync_committee/{block_id}
- Get sync committee rewards.GET /eth/v1/beacon/rewards/blocks/{block_id}
- Get block rewards.POST /eth/v1/beacon/rewards/attestations/{epoch}
- Get attestations rewards.