Skip to content

Beacon Chain API

import { Aside } from ‘@astrojs/starlight/components’;

The Ethereum Beacon Chain API provides access to the Consensus Layer through standard REST endpoints. Unlike EVM JSON-RPC methods, the Beacon API uses RESTful HTTP requests (GET/POST) with JSON responses.

ProtocolURL
HTTPS (Public)https://eth-beacon.blockreq.com/v1/rpc/public
HTTPS (Private)https://eth-beacon.blockreq.com/v1/rpc/{API_KEY}

Beacon API endpoints are appended to the base URL:

https://eth-beacon.blockreq.com/v1/rpc/public/{beacon_path}

For example, to get the node version:

https://eth-beacon.blockreq.com/v1/rpc/public/eth/v1/node/version
Terminal window
curl https://eth-beacon.blockreq.com/v1/rpc/public/eth/v1/node/version
{
"data": {
"version": "Prysm/v5.x.x ..."
}
}
Terminal window
curl https://eth-beacon.blockreq.com/v1/rpc/public/eth/v1/beacon/headers
Terminal window
curl https://eth-beacon.blockreq.com/v1/rpc/public/eth/v1/beacon/states/head/finality_checkpoints
const BASE_URL = "https://eth-beacon.blockreq.com/v1/rpc/public";
// Get node syncing status
const res = await fetch(`${BASE_URL}/eth/v1/node/syncing`);
const data = await res.json();
console.log("Syncing:", data.data);
// Get genesis info
const genesis = await fetch(`${BASE_URL}/eth/v1/beacon/genesis`);
const genesisData = await genesis.json();
console.log("Genesis time:", genesisData.data.genesis_time);
MethodEndpointDescription
GET/eth/v1/node/versionNode software version
GET/eth/v1/node/syncingSyncing status
GET/eth/v1/node/healthNode health check
GET/eth/v1/node/identityNode network identity
GET/eth/v1/node/peersConnected peers
GET/eth/v1/node/peer_countPeer count
MethodEndpointDescription
GET/eth/v1/beacon/genesisGenesis details
GET/eth/v1/beacon/headersBlock headers
GET/eth/v1/beacon/headers/{block_id}Specific block header
GET/eth/v2/beacon/blocks/{block_id}Block by slot/root
GET/eth/v1/beacon/blocks/{block_id}/rootBlock root
GET/eth/v1/beacon/blocks/{block_id}/attestationsBlock attestations
GET/eth/v1/beacon/blob_sidecars/{block_id}Blob sidecars (EIP-4844)
GET/eth/v1/beacon/deposit_snapshotDeposit snapshot
MethodEndpointDescription
GET/eth/v1/beacon/states/{state_id}/rootState root
GET/eth/v1/beacon/states/{state_id}/forkState fork data
GET/eth/v1/beacon/states/{state_id}/finality_checkpointsFinality checkpoints
GET/eth/v1/beacon/states/{state_id}/validatorsAll validators
GET/eth/v1/beacon/states/{state_id}/validators/{validator_id}Single validator
GET/eth/v1/beacon/states/{state_id}/validator_balancesValidator balances
GET/eth/v1/beacon/states/{state_id}/committeesEpoch committees
GET/eth/v1/beacon/states/{state_id}/sync_committeesSync committees
GET/eth/v1/beacon/states/{state_id}/randaoRANDAO value
MethodEndpointDescription
GET/eth/v1/config/specChain specification
GET/eth/v1/config/fork_scheduleFork schedule
GET/eth/v1/config/deposit_contractDeposit contract address
MethodEndpointDescription
GET/eth/v1/validator/duties/attester/{epoch}Attester duties
GET/eth/v1/validator/duties/proposer/{epoch}Proposer duties
POST/eth/v1/validator/duties/sync/{epoch}Sync committee duties
GET/eth/v1/validator/attestation_dataAttestation data
GET/eth/v1/validator/aggregate_attestationAggregate attestation
GET/eth/v1/validator/sync_committee_contributionSync committee contribution
GET/eth/v3/validator/blocks/{slot}Produce block
MethodEndpointDescription
GET/eth/v1/beacon/pool/attestationsPool attestations
GET/eth/v1/beacon/pool/attester_slashingsAttester slashings
GET/eth/v1/beacon/pool/proposer_slashingsProposer slashings
GET/eth/v1/beacon/pool/voluntary_exitsVoluntary exits
GET/eth/v1/beacon/pool/sync_committeesSync committee messages
GET/eth/v1/beacon/pool/bls_to_execution_changesBLS to execution changes
MethodEndpointDescription
GET/eth/v2/debug/beacon/states/{state_id}Full beacon state
GET/eth/v2/debug/beacon/headsFork choice heads
GET/eth/v1/debug/fork_choiceFull fork choice
MethodEndpointDescription
GET/eth/v1/eventsServer-Sent Events stream
EVM JSON-RPCBeacon API
ProtocolJSON-RPC 2.0REST (HTTP GET/POST)
Format{"jsonrpc":"2.0","method":"...","params":[...]}URL path + query params
Response{"result": ...}{"data": ...}
WebSocket❌ (SSE instead)
Try ItInteractive playgroundcurl / fetch examples