Gnosis Beacon
Available for Premium users only.
Gnosis Beacon API is available on Web3 API platform (opens in a new tab) upon switching on the Beacon toggle.
The Beacon Chain is a consensus layer that introduced a proof-of-stake (opens in a new tab) to Ethereum. The Beacon Chain mechanism is responsible for creating new blocks, making sure those new blocks are valid, and rewarding validators with ETH for keeping the network secure.
In order for your Web3 application to interact with the Beacon Chain — either by reading blockchain data or sending transactions to the network — it must connect to a Beacon node. Developers interact with the blockchain using the methods provided by the API.
Beacon API uses the REST interface for querying, responses come in JSON format (opens in a new tab).
Methods supported
Beacon:
GET /eth/v1/beacon/genesis
— retrieves the details of the chain's genesis.GET /eth/v1/beacon/states/{state_id}/root
— retrieves the state SSZ HashTreeRoot.GET /eth/v1/beacon/states/{state_id}/fork
— retrieves the Fork object for a requested state.GET /eth/v1/beacon/states/{state_id}/finality_checkpoints
— retrieves state finality checkpoints.GET /eth/v1/beacon/states/{state_id}/validators
— retrieves validators from state.GET /eth/v1/beacon/states/{state_id}/validators/{validator_id}
— retrieves the validator from state by ID.GET /eth/v1/beacon/states/{state_id}/validator_balances
— retrieves validator balances from state.GET /eth/v1/beacon/states/{state_id}/committees
— retrieves all committees for a state.GET /eth/v1/beacon/states/{state_id}/sync_committees
— retrieves sync committees for a state.GET /eth/v1/beacon/headers
— retrieves block headers.GET /eth/v1/beacon/headers/{block_id}
— retrieves a block header.POST /eth/v1/beacon/blocks
— publishes a signed block.POST /eth/v1/beacon/blinded_blocks
— publishes a signed block.GET /eth/v2/beacon/blocks/{block_id}
— retrieves a block.GET /eth/v1/beacon/blocks/{block_id}/root
— retrieves a block root.GET /eth/v1/beacon/blocks/{block_id}/attestations
— retrieves block attestations.GET /eth/v1/beacon/pool/attestations
— retrieves attestations from the operations pool.POST /eth/v1/beacon/pool/attestations
— submits attestation objects to the node.GET /eth/v1/beacon/pool/attester_slashings
— retrieves attester slashings from the operations pool.POST /eth/v1/beacon/pool/attester_slashings
— submits the AttesterSlashing object to the node's pool.GET /eth/v1/beacon/pool/proposer_slashings
— retrieves proposer slashings from the operations pool.POST /eth/v1/beacon/pool/proposer_slashings
— submits the ProposerSlashing object to the node's pool.POST /eth/v1/beacon/pool/sync_committees
— submits sync committee signatures to the node.GET /eth/v1/beacon/pool/voluntary_exits
— retrieves SignedVoluntaryExit from the operations pool.POST /eth/v1/beacon/pool/voluntary_exits
— submits the SignedVoluntaryExit object to the node's pool.
Config:
GET /eth/v1/config/fork_schedule
— retrieves scheduled upcoming forks.GET /eth/v1/config/spec
— retrieves spec parameters.GET /eth/v1/config/deposit_contract
— retrieves a deposit contract address.
Debug:
GET /eth/v2/debug/beacon/states/{state_id}
— retrieves the full BeaconState object.GET /eth/v2/debug/beacon/heads
— retrieves fork choice leaves.
Events:
GET /eth/v1/events
— subscribes to Beacon node events.
Node:
GET /eth/v1/node/peers
— retrieves node network peers.GET /eth/v1/node/peers/{peer_id}
— retrieves a peer.GET /eth/v1/node/peer_count
— retrieves peer count.GET /eth/v1/node/version
— retrieves a version string of the running Beacon node.GET /eth/v1/node/syncing
— retrieves a node syncing status.GET /eth/v1/node/health
— retrieves health check.
Validator:
POST /eth/v1/validator/duties/attester/{epoch}
— retrieves attester duties.GET /eth/v1/validator/duties/proposer/{epoch}
— retrieves block proposer duties.POST /eth/v1/validator/duties/sync/{epoch}
— retrieves sync committee duties.GET /eth/v1/validator/blocks/{slot}
— produces a new block, without signature.GET /eth/v1/validator/blinded_blocks/{slot}
— produces a new block, without signature.GET /eth/v1/validator/attestation_data
— produces attestation data.GET /eth/v1/validator/aggregate_attestation
— retrieves aggregated attestation.POST /eth/v1/validator/aggregate_and_proofs
— publishes multiple aggregate and proofs.POST /eth/v1/validator/beacon_committee_subscriptions
— signals the Beacon node to prepare for a committee subnet.POST /eth/v1/validator/sync_committee_subscriptions
— subscribes to sync committee subnets.GET /eth/v1/validator/sync_committee_contribution
— produces a sync committee contribution.POST /eth/v1/validator/contribution_and_proofs
— publishes multiple contribution and proofs.POST /eth/v1/validator/prepare_beacon_proposer
— provides the Beacon node with proposals for the given validators.POST /eth/v1/validator/register_validator
— provides the Beacon node with registrations for the given validators to the external builder network.
ValidatorRequiredApi:
GET /eth/v1/beacon/genesis
— retrieves details of the chain's genesis.GET /eth/v1/beacon/states/{state_id}/fork
— retrieves the Fork object for a requested state.GET /eth/v1/beacon/states/{state_id}/validators/{validator_id}
— retrieves the validator from state by ID.POST /eth/v1/beacon/blocks
— publishes a signed block.POST /eth/v1/beacon/blinded_blocks
— publishes a signed block.POST /eth/v1/beacon/pool/attestations
— submits attestation objects to the node.POST /eth/v1/beacon/pool/sync_committees
— submits sync committee signatures to the node.GET /eth/v1/node/syncing
— retrieves a node syncing status.GET /eth/v1/config/spec
— retrieves spec parameters.POST /eth/v1/validator/duties/attester/{epoch}
— retrieves attester duties.GET /eth/v1/validator/duties/proposer/{epoch}
— retrieves block proposer duties.POST /eth/v1/validator/duties/sync/{epoch}
— retrieves sync committee duties.GET /eth/v1/validator/blocks/{slot}
— produces a new block, without signature.GET /eth/v1/validator/blinded_blocks/{slot}
— produces a new block, without signature.GET /eth/v1/validator/attestation_data
— produces attestation data.GET /eth/v1/validator/aggregate_attestation
— retrieves aggregated attestation.POST /eth/v1/validator/aggregate_and_proofs
— publishes multiple aggregate and proofs.POST /eth/v1/validator/beacon_committee_subscriptions
— signals the Beacon node to prepare for a committee subnet.POST /eth/v1/validator/sync_committee_subscriptions
— subscribes to sync committee subnets.GET /eth/v1/validator/sync_committee_contribution
— produces a sync committee contribution.POST /eth/v1/validator/contribution_and_proofs
— publishes multiple contribution and proofs.POST /eth/v1/validator/prepare_beacon_proposer
— provides the Beacon node with proposals for the given validators.GET /eth/v1/events
— subscribes to Beacon node events.
Beacon
GET /eth/v1/beacon/genesis
Retrieves the details of the chain's genesis.
Returns the details of the chain's genesis which can be used to identify chain.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/genesis" \
-H "Accept: application/json"
Response example
{
"data": {
"genesis_time": "1606824023",
"genesis_validators_root": "0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95",
"genesis_fork_version": "0x00000000"
}
}
GET /eth/v1/beacon/states/{state_id}/root
Retrieves the state SSZ HashTreeRoot.
Calculates HashTreeRoot for state with given 'stateId'. If stateId is root, same value will be returned.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/state/{state_id}/root" \
-H "Accept: application/json"
Request example
{
"execution_optimistic": false,
"data": {
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
GET /eth/v1/beacon/states/{state_id}/fork
Retrieves the Fork object for a requested state.
Retrieves the Fork (opens in a new tab) object for state with given 'stateId'.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/state/{state_id}/fork" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": {
"previous_version": "0x00000000",
"current_version": "0x00000000",
"epoch": "1"
}
}
GET /eth/v1/beacon/states/{state_id}/finality_checkpoints
Retrieves state finality checkpoints.
Returns finality checkpoints for state with given 'stateId'. In case finality is not yet achieved, checkpoint should return epoch 0 and ZERO_HASH as root.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/states/{state_id}/finality_checkpoints" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": {
"previous_justified": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"current_justified": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"finalized": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
GET /eth/v1/beacon/states/{state_id}/validators
Retrieves validators from state.
Returns filterable list of validators with their balance, status, and index.
Information will be returned for all indices or public key that match known validators. If an index or public key does not match any known validator, no information will be returned but this will not cause an error. There are no guarantees for the returned data in terms of ordering; both the index and public key are returned for each validator, and can be used to confirm for which inputs a response has been returned.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.id
(array[string]; query): either a hex encoded public key (any bytes48 with 0x prefix) or validator index.status
(array; query): a validator status specification (opens in a new tab); Available values :pending_initialized
,pending_queued
,active_ongoing
,active_exiting
,active_slashed
,exited_unslashed
,exited_slashed
,withdrawal_possible
,withdrawal_done
,active
,pending
,exited
,withdrawal
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your-token}/eth/v1/beacon/states/{state_id}/validators" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": [
{
"index": "1",
"balance": "1",
"status": "active_ongoing",
"validator": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"effective_balance": "1",
"slashed": false,
"activation_eligibility_epoch": "1",
"activation_epoch": "1",
"exit_epoch": "1",
"withdrawable_epoch": "1"
}
}
]
}
GET /eth/v1/beacon/states/{state_id}/validators/{validator_id}
Retrieves the validator from state by ID.
Returns validator specified by state and id or public key along with status and balance.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.validator_id
(string; path; required): either a hex encoded public key (any bytes48 with 0x prefix) or validator index.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/states/{state_id}/validators/{validator_id}" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": {
"index": "1",
"balance": "1",
"status": "active_ongoing",
"validator": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"effective_balance": "1",
"slashed": false,
"activation_eligibility_epoch": "1",
"activation_epoch": "1",
"exit_epoch": "1",
"withdrawable_epoch": "1"
}
}
}
GET /eth/v1/beacon/states/{state_id}/validator_balances
Retrieves validator balances from state.
Returns filterable list of validators balances.
Balances will be returned for all indices or public key that match known validators. If an index or public key does not match any known validator, no balance will be returned but this will not cause an error. There are no guarantees for the returned data in terms of ordering; the index and is returned for each balance, and can be used to confirm for which inputs a response has been returned.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.id
(array[string]; query): either a hex encoded public key (any bytes48 with 0x prefix) or validator index.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/states/{state_id}/validator_balances" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": [
{
"index": "1",
"balance": "1"
}
]
}
GET /eth/v1/beacon/states/{state_id}/committees
Retrieves all committees for a state.
Retrieves the committees for the given state.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.epoch
(string; query): fetches committees for the given epoch; if not present then the committees for the epoch of the state will be obtained.index
(string; query): restricts returned values to those matching the supplied committee index.slot
(string; query): restricts returned values to those matching the supplied slot.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/states/{state_id}/committees" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": [
{
"index": "1",
"slot": "1",
"validators": [
"1"
]
}
]
}
GET /eth/v1/beacon/states/{state_id}/sync_committees
Retrieves sync committees for a state.
Retrieves the sync committees for the given state.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.epoch
(string; query): fetches sync committees for the given epoch; if not present then the sync committees for the epoch of the state will be obtained.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/states/{state_id}/sync_committees" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": {
"validators": [
"1"
],
"validator_aggregates": [
[
"1"
]
]
}
}
GET /eth/v1/beacon/headers
Retrieves block headers.
Retrieves block headers matching given query. By default, it will fetch current head slot blocks.
Parameters
slot
(string; query): a slot.parent_root
(string; query): a parent root.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/your_token/eth/v1/beacon/headers" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": [
{
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"canonical": true,
"header": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
]
}
GET /eth/v1/beacon/headers/{block_id}
Retrieves a block header.
Retrieves a block header for a given block ID.
Parameters
block_id
(string; path; required): a block identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,<slot>
,<hex encoded blockRoot with 0x prefix>
.
Example : head
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/headers/{block_id}" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": {
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"canonical": true,
"header": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
}
POST /eth/v1/beacon/blocks
Publishes a signed block.
Instructs the beacon node to broadcast a newly signed beacon block to the beacon network, to be included in the beacon chain. The beacon node is not required to validate the signed BeaconBlock, and a successful response (20X) only indicates that the broadcast has been successful. The beacon node is expected to integrate the new block into its state, and therefore validate the block internally, however blocks which fail the validation are still broadcast but a different status code is returned (202).
Parameters
Eth-Consensus-Version
(header): a version of the block being submitted, if using SSZ encoding. Available values :phase0
,altair
,bellatrix
.<request body>
(required): theSignedBeaconBlock
object composed of theBeaconBlock
object (produced by beacon node) and validator signature.
{
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0xdEFeAFdc312b725d00Dd16b4A627fCBfa6B8aAF1d8AF7bCfd82bbFca700A0645",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/blocks" \
-H "Eth-Consensus-Version: bellatrix" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{your_request_body}'
Responses
-
Code 200
: The block was validated successfully and has been broadcast. It has also been integrated into the beacon node's database. -
Code 202
: The block failed validation, but was successfully broadcast anyway. It was not integrated into the beacon node's database. -
Code 400
: TheSignedBeaconBlock
object is invalid.
{
"code": 400,
"message": "Invalid block: missing signature"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
POST /eth/v1/beacon/blinded_blocks
Publishes a signed block.
Instructs the beacon node to use the components of the SignedBlindedBeaconBlock
to construct and publish a SignedBeaconBlock
by swapping out the transactions_root
for the corresponding full list of transactions
. The beacon node should broadcast a newly constructed SignedBeaconBlock
to the beacon network, to be included in the beacon chain. The beacon node is not required to validate the signed BeaconBlock
, and a successful response (20X) only indicates that the broadcast has been successful. The beacon node is expected to integrate the new block into its state, and therefore validate the block internally, however blocks which fail the validation are still broadcast but a different status code is returned (202). Pre-Bellatrix, this endpoint will accept a SignedBeaconBlock
.
Parameters
Eth-Consensus-Version
(header): a version of the block being submitted, if using SSZ encoding. Available values :phase0
,altair
,bellatrix
.<request body>
(required): theSignedBlindedBeaconBlock
object composed ofBlindedBeaconBlock
object (produced by beacon node) and validator signature.
{
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0x81cdF3DbaE67fBbE10CAc8Bcd8B28d4DDDc65D9a74f3921693676fccF8BeCe9B",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/blinded_blocks" \
-H "Eth-Consensus-Version: bellatrix" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{your_request_body}'
Responses
Code 200
: The block was validated successfully and has been broadcast. It has also been integrated into the beacon node's database.Code 202
: The block failed validation, but was successfully broadcast anyway. It was not integrated into the beacon node's database.Code 400
: TheSignedBlindedBeaconBlock
object is invalid.
{
"code": 400,
"message": "Invalid block: missing signature"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v2/beacon/blocks/{block_id}
Retrieves a block.
Retrieves block details for given block id. Depending on Accept
header it can be returned either as json or as bytes serialized by SSZ.
Parameters
block_id
(string; path; required): a block identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,<slot>
,<hex encoded blockRoot with 0x prefix>
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v2/beacon/blocks/{block_id}" \
-H "Accept: application/json"
Responses
Code 200
: Success.
Note: The Eth-Consensus-Version
header is required in response so client can deserialize returned json or ssz data more effectively.
{
"version": "phase0",
"execution_optimistic": false,
"data": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0xdcbCcb77eD0d3ecDee90fc6efC1402cDc68CD4203d0FCeC25b07CCa5a8C34A2d",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
Code 400
: The block ID supplied could not be parsed.
{
"code": 400,
"message": "Invalid block ID: current"
}
Code 404
: Block not found.
{
"code": 404,
"message": "Block not found"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/beacon/blocks/{block_id}/root
Retrieves a block root.
Retrieves hashTreeRoot of BeaconBlock/BeaconBlockHeader
Parameters
block_id
(string; path; required): a block identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,<slot>
,<hex encoded blockRoot with 0x prefix>
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/blocks/{block_id}/root" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"execution_optimistic": false,
"data": {
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
Code 400
: The block ID supplied could not be parsed.
{
"code": 400,
"message": "Invalid block ID: current"
}
Code 404
: Block not found.
{
"code": 404,
"message": "Block not found"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/beacon/blocks/{block_id}/attestations
Retrieves block attestations.
Retrieves attestation included in requested block.
Parameters
block_id
(string; path; required): a block identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,<slot>
,<hex encoded blockRoot with 0x prefix>
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your-token}/eth/v1/beacon/blocks/{block_id}/attestations" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"execution_optimistic": false,
"data": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
]
}
Code 400
: The block ID supplied could not be parsed.
{
"code": 400,
"message": "Invalid block ID: current"
}
Code 404
: Block not found.
{
"code": 404,
"message": "Block not found"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/beacon/pool/attestations
Retrieves attestations from the operations pool.
Retrieves attestations known by the node but not necessarily incorporated into any block.
Parameters
slot
(string; query): a slot.committee_index
(string; query): a committee index.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your-token}/eth/v1/beacon/pool/attestations" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
]
}
Code 400
: The slot or committee index could not be parsed.
{
"code": 400,
"message": "Invalid slot: current"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/beacon/pool/attestations
Submits attestation objects to the node.
Submits Attestation objects to the node. Each attestation in the request body is processed individually.
If an attestation is validated successfully the node MUST publish that attestation on the appropriate subnet.
If one or more attestations fail validation the node MUST return a 400 error with details of which attestations have failed, and why.
Parameters
<request body>
(required):
[
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/attestations" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Attestations are stored in pool and broadcast on appropriate subnet.Code 400
: Errors with one or more attestations.
{
"code": 400,
"message": "some failures",
"failures": [
{
"index": 3,
"message": "invalid signature"
}
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/beacon/pool/attester_slashings
Retrieves attester slashings from the operations pool.
Retrieves attester slashings known by the node but not necessarily incorporated into any block.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/attester_slashings" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/beacon/pool/attester_slashings
Submits the AttesterSlashing object to the node's pool.
Submits AttesterSlashing object to node's pool and if passes validation node MUST broadcast it to network.
Parameters
<request body>
(required):
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/attester_slashings" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.Code 400
: Invalid attester slashing.
{
"code": 400,
"message": "Invalid attester slashing, it will never pass validation so it's rejected"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/beacon/pool/proposer_slashings
Retrieves proposer slashings from the operations pool.
Retrieves proposer slashings known by the node but not necessarily incorporated into any block
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/proposer_slashings" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/beacon/pool/proposer_slashings
Submits the ProposerSlashing object to the node's pool.
Submits ProposerSlashing object to node's pool and if passes validation node MUST broadcast it to network.
Parameters
<request body>
(required):
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/proposer_slashings" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.Code 400
: Invalid proposer slashing.
{
"code": 400,
"message": "Invalid proposer slashing, it will never pass validation so it's rejected"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/beacon/pool/sync_committees
Submits sync committee signatures to the node.
Submits sync committee signature objects to the node.
Sync committee signatures are not present in phase0, but are required for Altair networks.
If a sync committee signature is validated successfully the node MUST publish that sync committee signature on all applicable subnets.
If one or more sync committee signatures fail validation the node MUST return a 400 error with details of which sync committee signatures have failed, and why.
Parameters
<request body>
(required):
[
{
"slot": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"validator_index": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/sync_committees" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Sync committee signatures are stored in pool and broadcast on appropriate subnet.Code 400
: Errors with one or more sync committee signatures.
{
"code": 400,
"message": "some failures",
"failures": [
{
"index": 3,
"message": "invalid signature"
}
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/beacon/pool/voluntary_exits
Retrieves SignedVoluntaryExit from the operations pool.
Retrieves voluntary exits known by the node but not necessarily incorporated into any block.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/voluntary_exits" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/beacon/pool/voluntary_exits
Submits the SignedVoluntaryExit object to the node's pool.
Submits SignedVoluntaryExit object to node's pool and if passes validation node MUST broadcast it to network.
Parameters
<request body>
(required):
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/voluntary_exits" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Voluntary exit is stored in node and broadcasted to network.Code 400
: Invalid voluntary exit.
{
"code": 400,
"message": "Invalid voluntary exit, it will never pass validation so it's rejected"
}
- Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Config
GET /eth/v1/config/fork_schedule
Retrieves scheduled upcoming forks.
Retrieve all forks, past present and future, of which this node is aware.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/config/fork_schedule" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": [
{
"previous_version": "0x00000000",
"current_version": "0x00000000",
"epoch": "1"
}
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/config/spec
Retrieves spec parameters.
Retrieve specification configuration used on this node. The configuration should include:
- Constants for all hard forks known by the beacon node, for example the phase 0 (opens in a new tab) and altair (opens in a new tab) values.
- Presets for all hard forks supplied to the beacon node, for example the phase 0 (opens in a new tab) and altair (opens in a new tab) values.
- Configuration for the beacon node, for example the mainnet (opens in a new tab) values.
Values are returned with the following format:
- Any value starting with 0x in the spec is returned as a hex string.
- Numeric values are returned as a quoted integer.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/config/spec" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"DEPOSIT_CONTRACT_ADDRESS": "0x00000000219ab540356cBB839Cbe05303d7705Fa",
"DEPOSIT_NETWORK_ID": "1",
"DOMAIN_AGGREGATE_AND_PROOF": "0x06000000",
"INACTIVITY_PENALTY_QUOTIENT": "67108864",
"INACTIVITY_PENALTY_QUOTIENT_ALTAIR": "50331648"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/config/deposit_contract
Retrieves a deposit contract address.
Retrieve Eth1 deposit contract address and chain ID.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/config/deposit_contract" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"chain_id": "1",
"address": "0x1Db3439a222C519ab44bb1144fC28167b4Fa6EE6"
}
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Debug
GET /eth/v2/debug/beacon/states/{state_id}
Retrieves the full BeaconState object.
Returns full BeaconState object for given stateId. Depending on Accept
header it can be returned either as json or as bytes serialized by SSZ.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v2/debug/beacon/states/{state_id}" \
-H "Accept: application/json"
Responses
Code 200
: Success.
Note: The Eth-Consensus-Version
header is required in response so client can deserialize returned json or ssz data more effectively.
{
"version": "phase0",
"execution_optimistic": false,
"data": {
"genesis_time": "1",
"genesis_validators_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"slot": "1",
"fork": {
"previous_version": "0x00000000",
"current_version": "0x00000000",
"epoch": "1"
},
"latest_block_header": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"block_roots": [],
"slashings": [],
"previous_epoch_attestations": [
{
"aggregation_bits": "0x2ccfbd524ECbedfc70c91BE08b5668fA4ebdfD773B1fFe1daAbfC912c3cD4b2C93E1",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
},
"inclusion_delay": "1",
"proposer_index": "1"
}
],
"current_epoch_attestations": [
{
"aggregation_bits": "0xF9DD8ABe17ae0baDA640Bb0d8c4e81a349D3a",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
},
"inclusion_delay": "1",
"proposer_index": "1"
}
],
"justification_bits": "0x01",
"previous_justified_checkpoint": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"current_justified_checkpoint": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"finalized_checkpoint": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
Code 400
: Invalid state ID.
{
"code": 400,
"message": "Invalid state ID: current"
}
Code 404
: State not found.
{
"code": 404,
"message": "State not found"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v2/debug/beacon/heads
Retrieves fork choice leaves.
Retrieves all possible chain heads (leaves of fork choice tree).
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v2/debug/beacon/heads" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": [
{
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"slot": "1",
"execution_optimistic": false
}
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Events
GET /eth/v1/events
Subscribes to Beacon node events.
Provides endpoint to subscribe to beacon node Server-Sent-Events stream. Consumers should use eventsource (opens in a new tab) implementation to listen on those events.
Servers may send SSE comments beginning with :
for any purpose, including to keep the event stream connection alive in the presence of proxy servers.
Parameters
topics
(array[string]; query; required): event types to subscribe to; available values :head
,block
,attestation
,voluntary_exit
,finalized_checkpoint
,chain_reorg
,contribution_and_proof
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/events" \
-H "Accept: text/event-stream"
Responses
Code 200
: Opened SSE stream.
Head event:
The node has finished processing, resulting in a new head. previous_duty_dependent_root is get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch - 1) - 1)
and current_duty_dependent_root
is get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1)
. Both dependent roots use the genesis block root in the case of underflow.
event: head
data: {"slot":"10", "block":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "state":"0x600e852a08c1200654ddf11025f1ceacb3c2e74bdd5c630cde0838b2591b69f9", "epoch_transition":false, "previous_duty_dependent_root":"0x5e0043f107cb57913498fbf2f99ff55e730bf1e151f02f221e977c91a90a0e91", "current_duty_dependent_root":"0x5e0043f107cb57913498fbf2f99ff55e730bf1e151f02f221e977c91a90a0e91", "execution_optimistic": false}
Block event:
The node has received a valid block (from P2P or API).
event: block
data: {"slot":"10", "block":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "execution_optimistic": false}
Attestation event:
The node has received a valid attestation (from P2P or API).
event: attestation
data: {"aggregation_bits":"0x01", "signature":"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505", "data":{"slot":"1", "index":"1", "beacon_block_root":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", "source":{"epoch":"1", "root":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"}, "target":{"epoch":"1", "root":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"}}}
Voluntary exit event:
The node has received a valid voluntary exit (from P2P or API).
event: voluntary_exit
data: {"message":{"epoch":"1", "validator_index":"1"}, "signature":"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"}
Finalized checkpoint event:
Finalized checkpoint has been updated.
event: finalized_checkpoint
data: {"block":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "state":"0x600e852a08c1200654ddf11025f1ceacb3c2e74bdd5c630cde0838b2591b69f9", "epoch":"2", "execution_optimistic": false }
Chain reorg event:
The node has reorganized its chain.
event: chain_reorg
data: {"slot":"200", "depth":"50", "old_head_block":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "new_head_block":"0x76262e91970d375a19bfe8a867288d7b9cde43c8635f598d93d39d041706fc76", "old_head_state":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "new_head_state":"0x600e852a08c1200654ddf11025f1ceacb3c2e74bdd5c630cde0838b2591b69f9", "epoch":"2", "execution_optimistic": false}
Contribution and proof event:
The node has received a valid sync committee SignedContributionAndProof (from P2P or API).
event: contribution_and_proof
data: {"message": {"aggregator_index": "997", "contribution": {"slot": "168097", "beacon_block_root": "0x56f1fd4262c08fa81e27621c370e187e621a67fc80fe42340b07519f84b42ea1", "subcommittee_index": "0", "aggregation_bits": "0xffffffffffffffffffffffffffffffff", "signature": "0x85ab9018e14963026476fdf784cc674da144b3dbdb47516185438768774f077d882087b90ad642469902e782a8b43eed0cfc1b862aa9a473b54c98d860424a702297b4b648f3f30bdaae8a8b7627d10d04cb96a2cc8376af3e54a9aa0c8145e3"}, "selection_proof": "0x87c305f04bfe5db27c2b19fc23e00d7ac496ec7d3e759cbfdd1035cb8cf6caaa17a36a95a08ba78c282725e7b66a76820ca4eb333822bd399ceeb9807a0f2926c67ce67cfe06a0b0006838203b493505a8457eb79913ce1a3bcd1cc8e4ef30ed"}, "signature": "0xac118511474a94f857300b315c50585c32a713e4452e26a6bb98cdb619936370f126ed3b6bb64469259ee92e69791d9e12d324ce6fd90081680ce72f39d85d50b0ff977260a8667465e613362c6d6e6e745e1f9323ec1d6f16041c4e358839ac"}
Node
GET /eth/v1/node/peers
Retrieves node network peers.
Retrieves data about the node's network peers. By default, this returns all peers. Multiple query params are combined using AND conditions.
Parameters
state
(array[string]; query): available values :disconnected
,connecting
,connected
,disconnecting
.direction
(array[string]; query): available values :inbound
,outbound
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/node/peers" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": [
{
"peer_id": "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N",
"enr": "enr:-IS4QHCYrYZbAKWCBRlAy5zzaDZXJBGkcnh4MHcBFZntXNFrdvJjX04jRzjzCBOonrkTfj499SZuOh8R33Ls8RRcy5wBgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPKY0yuDUmstAHYpMa2_oxVtw0RW_QAdpzBQA8yWM0xOIN1ZHCCdl8",
"last_seen_p2p_address": "/ip4/7.7.7.7/tcp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N",
"state": "disconnected",
"direction": "inbound"
}
],
"meta": {
"count": 1
}
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/node/peers/{peer_id}
Retrieves a peer.
Retrieves data about the given peer.
Parameters
peer_id
(string; path; required): a peer ID; example:QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/node/peers/{peer_id}" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"peer_id": "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N",
"enr": "enr:-IS4QHCYrYZbAKWCBRlAy5zzaDZXJBGkcnh4MHcBFZntXNFrdvJjX04jRzjzCBOonrkTfj499SZuOh8R33Ls8RRcy5wBgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPKY0yuDUmstAHYpMa2_oxVtw0RW_QAdpzBQA8yWM0xOIN1ZHCCdl8",
"last_seen_p2p_address": "/ip4/7.7.7.7/tcp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N",
"state": "disconnected",
"direction": "inbound"
}
}
Code 400
: The peer ID supplied could not be parsed.
{
"code": 400,
"message": "Invalid peer ID: localhost"
}
Code 404
: Peer not found.
{
"code": 404,
"message": "Peer not found"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/node/peer_count
Retrieves peer count.
Retrieves number of known peers.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/node/peer_count" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"disconnected": "12",
"connecting": "34",
"connected": "56",
"disconnecting": "5"
}
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/node/version
Retrieves a version string of the running Beacon node.
Requests that the beacon node identify information about its implementation in a format similar to an HTTP User-Agent (opens in a new tab) field.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/node/version" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"version": "Lighthouse/v0.1.5 (Linux x86_64)"
}
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/node/syncing
Retrieves a node syncing status.
Requests the beacon node to describe if it's currently syncing or not, and if it is, what block it is up to.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/node/syncing" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"head_slot": "1",
"sync_distance": "1",
"is_syncing": true,
"is_optimistic": true
}
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/node/health
Retrieves health check.
Returns node health status in http status codes. Useful for load balancers.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/node/health"
Responses
Code 200
: Node is ready.Code 206
: Node is syncing but can serve incomplete data.Code 503
: Node not initialized or having issues.
Validator
POST /eth/v1/validator/duties/attester/{epoch}
Retrieves attester duties.
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.
Parameters
epoch
(string; path; required): should only be allowed one epoch ahead.<request body>
(required): an array of the validator indices for which to obtain the duties:
[
"1"
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/duties/attester/{epoch}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.
{
"dependent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"execution_optimistic": false,
"data": [
{
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"validator_index": "1",
"committee_index": "1",
"committee_length": "1",
"committees_at_slot": "1",
"validator_committee_index": "1",
"slot": "1"
}
]
}
Code 400
: Invalid epoch or index.
{
"code": 400,
"message": "Invalid epoch: -2"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/duties/proposer/{epoch}
Retrieves block proposer duties.
Request beacon node to provide all validators that are scheduled to propose a block in the given epoch. Duties should only need to be checked once per epoch, however a chain reorganization could occur that results in a change of duties. For full safety, you should monitor head events and confirm the dependent root in this response matches:
- 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.
Parameters
epoch
(string; path; required); an epoch.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/duties/proposer/{epoch}" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"dependent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"execution_optimistic": false,
"data": [
{
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"validator_index": "1",
"slot": "1"
}
]
}
Code 400
: Invalid epoch.
{
"code": 400,
"message": "Invalid epoch: -2"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
POST /eth/v1/validator/duties/sync/{epoch}
Retrieves sync committee duties.
Requests the beacon node to provide a set of sync committee duties for a particular epoch.
Parameters
epoch
(string; path; required):epoch
//EPOCHS_PER_SYNC_COMMITTEE_PERIOD <= current_epoch
//EPOCHS_PER_SYNC_COMMITTEE_PERIOD + 1
<request body>
(required): an array of the validator indices for which to obtain the duties:
[
"1"
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/duties/sync/{epoch}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.
{
"execution_optimistic": false,
"data": [
{
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"validator_index": "1",
"validator_sync_committee_indices": [
"1"
]
}
]
}
Code 400
: Invalid epoch or index.
{
"code": 400,
"message": "Invalid epoch: -2"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/blocks/{slot}
Produces a new block, without signature.
Requests a beacon node to produce a valid block, which can then be signed by a validator.
Metadata in the response indicates the type of block produced, and the supported types of block will be added to as forks progress.
Parameters
slot
(string; path; required): the slot for which the block should be proposed.randao_reveal
(string; hex; query; required): the validator's randao reveal value.graffiti
(string; hex; query): an arbitrary data validator to include in the block.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/blocks/{slot}" \
-H "Accept: application/json"
Responses
Code 200
: Success.
Note: The Eth-Consensus-Version
header is required in response so client can deserialize returned json or ssz data more effectively.
{
"version": "phase0",
"data": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0xbF0eF8805DE094355C99fD34Df183ADB5BB153f5dac2eD83bee6eEd2dEf05cFC",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
}
}
Code 400
: Invalid block production request.
{
"code": 400,
"message": "Invalid request to produce a block"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/blinded_blocks/{slot}
Produces a new blinded block, without signature.
Requests a beacon node to produce a valid blinded block, which can then be signed by a validator. A blinded block is a block with only a transactions root, rather than a full transactions list.
Metadata in the response indicates the type of block produced, and the supported types of block will be added to as forks progress.
Pre-Bellatrix, this endpoint will return a BeaconBlock
.
Parameters
slot
(string; path; required): the slot for which the block should be proposed.randao_reveal
(string; hex; query; required): the validator's randao reveal value.graffiti
(string; hex; query): an arbitrary data validator to include in the block.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/blinded_blocks/{slot}" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"version": "bellatrix",
"data": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0x2F86DB21b8b1C3465689AaeBB3cE1A4F7C79F09F0dA82444eec71f1cCbBC7fb3",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
}
}
Code 400
: Invalid block production request.
{
"code": 400,
"message": "Invalid request to produce a block"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/attestation_data
Produces attestation data.
Requests that the beacon node to produce an AttestationData.
Parameters
slot
(string; query; required): the slot for which an attestation data should be created.committee_index
(string; query; required): the committee index for which an attestation data should be created.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/attestation_data" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/aggregate_attestation
Retrieves aggregated attestation.
Aggregates all attestations matching given attestation data root and slot.
Parameters
attestation_data_root
(string; query; required): HashTreeRoot of AttestationData that validator wants aggregated.slot
(string; query; required): a slot.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/aggregate_attestation" \
-H "Accept: application/json"
Responses
Code 200
: Success. Returns aggregatedAttestation
object with sameAttestationData
root.
{
"data": {
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 404
: Not found.
{
"code": 404,
"message": "Requested item not found"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/validator/aggregate_and_proofs
Publishes multiple aggregate and proofs.
Verifies given aggregate and proofs and publishes them on appropriate gossipsub topic.
Parameters
<request body>
(required):
[
{
"message": {
"aggregator_index": "1",
"aggregate": {
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"selection_proof": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/aggregate_and_proofs" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/validator/beacon_committee_subscriptions
Signals the Beacon node to prepare for a committee subnet.
After beacon node receives this request, search using discv5 for peers related to this subnet and replace current peers with those ones if necessary. If validator is_aggregator
, beacon node must:
- Announce subnet topic subscription on gossipsub.
- Aggregate attestations received on that subnet.
Parameters
<request body>
:
[
{
"validator_index": "1",
"committee_index": "1",
"committees_at_slot": "1",
"slot": "1",
"is_aggregator": true
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/beacon_committee_subscriptions" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success. Slot signature is valid and beacon node has prepared the attestation subnet.
Note that we cannot be certain the Beacon node will find peers for that subnet for various reasons.
Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
POST /eth/v1/validator/sync_committee_subscriptions
Subscribes to sync committee subnets.
Subscribe to a number of sync committee subnets.
Sync committees are not present in phase0, but are required for Altair networks.
Subscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.
Parameters
<request body>
:
[
{
"validator_index": "1",
"sync_committee_indices": [
"1"
],
"until_epoch": "1"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/sync_committee_subscriptions" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/validator/sync_committee_contribution
Produces a sync committee contribution.
Requests that the beacon node to produce a sync committee contribution.
Parameters
slot
(string; query; required): the slot for which a sync committee contribution should be created.subcommittee_index
(string; query; required): the subcommittee index for which to produce the contribution.beacon_block_root
(string; query; required): the block root for which to produce the contribution.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/sync_committee_contribution" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"slot": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"subcommittee_index": "1",
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 404
: Not found.
{
"code": 404,
"message": "Requested item not found"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
POST /eth/v1/validator/contribution_and_proofs
Publishes multiple contribution and proofs.
Publishes multiple signed sync committee contribution and proofs.
Parameters
<request body>
:
[
{
"message": {
"aggregator_index": "1",
"selection_proof": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"contribution": {
"slot": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"subcommittee_index": "1",
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/contribution_and_proofs" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/validator/prepare_beacon_proposer
Provides the Beacon node with proposals for the given validators.
Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index will persist through the epoch in which the call is submitted and for a further two epochs after that, or until the beacon node restarts. It is expected that validator clients will send this information periodically, for example each epoch, to ensure beacon nodes have correct and timely fee recipient information.
Note that there is no guarantee that the beacon node will use the supplied fee recipient when creating a block proposal, so on receipt of a proposed block the validator should confirm that it finds the fee recipient within the block acceptable before signing it.
Also note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch.
Parameters
<request body>
:
[
{
"validator_index": "1",
"fee_recipient": "0xabcf8e0d4e9587369b2301d0790347320302cc09"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/prepare_beacon_proposer" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success. Preparation information has been received.Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/validator/register_validator
Provides the Beacon node with registrations for the given validators to the external builder network.
Prepares the beacon node for engaging with external builders. The information will be sent by the beacon node to the builder network. It is expected that the validator client will send this information periodically to ensure the beacon node has correct and timely registration information to provide to builders. The validator client should not sign blinded beacon blocks that do not adhere to their latest fee recipient and gas limit preferences.
Note that requests containing currently inactive or unknown validator pubkeys will be accepted, as they may become active at a later epoch.
Parameters
<request body>
:
[
{
"message": {
"fee_recipient": "0xabcf8e0d4e9587369b2301d0790347320302cc09",
"gas_limit": "1",
"timestamp": "1",
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/register_validator" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success. Registration information has been received.Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
ValidatorRequiredApi
GET /eth/v1/beacon/genesis
Retrieves the details of the chain's genesis.
Returns the details of the chain's genesis which can be used to identify chain.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/genesis" \
-H "Accept: application/json"
Response example
{
"data": {
"genesis_time": "1606824023",
"genesis_validators_root": "0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95",
"genesis_fork_version": "0x00000000"
}
}
GET /eth/v1/beacon/states/{state_id}/fork
Retrieves the Fork object for a requested state.
Retrieves the Fork (opens in a new tab) object for state with given 'stateId'.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/state/{state_id}/fork" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": {
"previous_version": "0x00000000",
"current_version": "0x00000000",
"epoch": "1"
}
}
GET /eth/v1/beacon/states/{state_id}/validators/{validator_id}
Retrieves the validator from state by ID.
Returns validator specified by state and id or public key along with status and balance.
Parameters
state_id
(string; path; required): state identifier. Can be one of:head
(canonical head in node's view),genesis
,finalized
,justified
,<slot>
,<hex encoded stateRoot with 0x prefix>
.
Example:head
.validator_id
(string; path; required): either a hex encoded public key (any bytes48 with 0x prefix) or validator index.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/states/{state_id}/validators/{validator_id}" \
-H "Accept: application/json"
Response example
{
"execution_optimistic": false,
"data": {
"index": "1",
"balance": "1",
"status": "active_ongoing",
"validator": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"effective_balance": "1",
"slashed": false,
"activation_eligibility_epoch": "1",
"activation_epoch": "1",
"exit_epoch": "1",
"withdrawable_epoch": "1"
}
}
}
POST /eth/v1/beacon/blocks
Publishes a signed block.
Instructs the beacon node to broadcast a newly signed beacon block to the beacon network, to be included in the beacon chain. The beacon node is not required to validate the signed BeaconBlock, and a successful response (20X) only indicates that the broadcast has been successful. The beacon node is expected to integrate the new block into its state, and therefore validate the block internally, however blocks which fail the validation are still broadcast but a different status code is returned (202).
Parameters
Eth-Consensus-Version
(header): a version of the block being submitted, if using SSZ encoding. Available values :phase0
,altair
,bellatrix
.<request body>
(required): theSignedBeaconBlock
object composed of theBeaconBlock
object (produced by beacon node) and validator signature.
{
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0xdEFeAFdc312b725d00Dd16b4A627fCBfa6B8aAF1d8AF7bCfd82bbFca700A0645",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/blocks" \
-H "Eth-Consensus-Version: bellatrix" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{your_request_body}'
Responses
-
Code 200
: The block was validated successfully and has been broadcast. It has also been integrated into the beacon node's database. -
Code 202
: The block failed validation, but was successfully broadcast anyway. It was not integrated into the beacon node's database. -
Code 400
: TheSignedBeaconBlock
object is invalid.
{
"code": 400,
"message": "Invalid block: missing signature"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
POST /eth/v1/beacon/blinded_blocks
Publishes a signed block.
Instructs the beacon node to use the components of the SignedBlindedBeaconBlock
to construct and publish a SignedBeaconBlock
by swapping out the transactions_root
for the corresponding full list of transactions
. The beacon node should broadcast a newly constructed SignedBeaconBlock
to the beacon network, to be included in the beacon chain. The beacon node is not required to validate the signed BeaconBlock
, and a successful response (20X) only indicates that the broadcast has been successful. The beacon node is expected to integrate the new block into its state, and therefore validate the block internally, however blocks which fail the validation are still broadcast but a different status code is returned (202). Pre-Bellatrix, this endpoint will accept a SignedBeaconBlock
.
Parameters
Eth-Consensus-Version
(header): a version of the block being submitted, if using SSZ encoding. Available values :phase0
,altair
,bellatrix
.<request body>
(required): theSignedBlindedBeaconBlock
object composed ofBlindedBeaconBlock
object (produced by beacon node) and validator signature.
{
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0x81cdF3DbaE67fBbE10CAc8Bcd8B28d4DDDc65D9a74f3921693676fccF8BeCe9B",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/blinded_blocks" \
-H "Eth-Consensus-Version: bellatrix" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{your_request_body}'
Responses
Code 200
: The block was validated successfully and has been broadcast. It has also been integrated into the beacon node's database.Code 202
: The block failed validation, but was successfully broadcast anyway. It was not integrated into the beacon node's database.Code 400
: TheSignedBlindedBeaconBlock
object is invalid.
{
"code": 400,
"message": "Invalid block: missing signature"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
POST /eth/v1/beacon/pool/attestations
Submits attestation objects to the node.
Submits Attestation objects to the node. Each attestation in the request body is processed individually.
If an attestation is validated successfully the node MUST publish that attestation on the appropriate subnet.
If one or more attestations fail validation the node MUST return a 400 error with details of which attestations have failed, and why.
Parameters
<request body>
(required):
[
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/attestations" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Attestations are stored in pool and broadcast on appropriate subnet.Code 400
: Errors with one or more attestations.
{
"code": 400,
"message": "some failures",
"failures": [
{
"index": 3,
"message": "invalid signature"
}
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/beacon/pool/sync_committees
Submits sync committee signatures to the node.
Submits sync committee signature objects to the node.
Sync committee signatures are not present in phase0, but are required for Altair networks.
If a sync committee signature is validated successfully the node MUST publish that sync committee signature on all applicable subnets.
If one or more sync committee signatures fail validation the node MUST return a 400 error with details of which sync committee signatures have failed, and why.
Parameters
<request body>
(required):
[
{
"slot": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"validator_index": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/beacon/pool/sync_committees" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Sync committee signatures are stored in pool and broadcast on appropriate subnet.Code 400
: Errors with one or more sync committee signatures.
{
"code": 400,
"message": "some failures",
"failures": [
{
"index": 3,
"message": "invalid signature"
}
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/node/syncing
Retrieves a node syncing status.
Requests the beacon node to describe if it's currently syncing or not, and if it is, what block it is up to.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/node/syncing" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"head_slot": "1",
"sync_distance": "1",
"is_syncing": true,
"is_optimistic": true
}
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/config/spec
Retrieves spec parameters.
Retrieve specification configuration used on this node. The configuration should include:
- Constants for all hard forks known by the beacon node, for example the phase 0 (opens in a new tab) and altair (opens in a new tab) values.
- Presets for all hard forks supplied to the beacon node, for example the phase 0 (opens in a new tab) and altair (opens in a new tab) values.
- Configuration for the beacon node, for example the mainnet (opens in a new tab) values.
Values are returned with the following format:
- Any value starting with 0x in the spec is returned as a hex string.
- Numeric values are returned as a quoted integer.
Parameters
None.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/config/spec" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"DEPOSIT_CONTRACT_ADDRESS": "0x00000000219ab540356cBB839Cbe05303d7705Fa",
"DEPOSIT_NETWORK_ID": "1",
"DOMAIN_AGGREGATE_AND_PROOF": "0x06000000",
"INACTIVITY_PENALTY_QUOTIENT": "67108864",
"INACTIVITY_PENALTY_QUOTIENT_ALTAIR": "50331648"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/validator/duties/attester/{epoch}
Retrieves attester duties.
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.
Parameters
epoch
(string; path; required): should only be allowed one epoch ahead.<request body>
(required): an array of the validator indices for which to obtain the duties:
[
"1"
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/duties/attester/{epoch}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.
{
"dependent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"execution_optimistic": false,
"data": [
{
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"validator_index": "1",
"committee_index": "1",
"committee_length": "1",
"committees_at_slot": "1",
"validator_committee_index": "1",
"slot": "1"
}
]
}
Code 400
: Invalid epoch or index.
{
"code": 400,
"message": "Invalid epoch: -2"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/duties/proposer/{epoch}
Retrieves block proposer duties.
Request beacon node to provide all validators that are scheduled to propose a block in the given epoch. Duties should only need to be checked once per epoch, however a chain reorganization could occur that results in a change of duties. For full safety, you should monitor head events and confirm the dependent root in this response matches:
- 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.
Parameters
epoch
(string; path; required); an epoch.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/duties/proposer/{epoch}" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"dependent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"execution_optimistic": false,
"data": [
{
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"validator_index": "1",
"slot": "1"
}
]
}
Code 400
: Invalid epoch.
{
"code": 400,
"message": "Invalid epoch: -2"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
POST /eth/v1/validator/duties/sync/{epoch}
Retrieves sync committee duties.
Requests the beacon node to provide a set of sync committee duties for a particular epoch.
Parameters
epoch
(string; path; required):epoch
//EPOCHS_PER_SYNC_COMMITTEE_PERIOD <= current_epoch
//EPOCHS_PER_SYNC_COMMITTEE_PERIOD + 1
<request body>
(required): an array of the validator indices for which to obtain the duties:
[
"1"
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/duties/sync/{epoch}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.
{
"execution_optimistic": false,
"data": [
{
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"validator_index": "1",
"validator_sync_committee_indices": [
"1"
]
}
]
}
Code 400
: Invalid epoch or index.
{
"code": 400,
"message": "Invalid epoch: -2"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/blocks/{slot}
Produces a new block, without signature.
Requests a beacon node to produce a valid block, which can then be signed by a validator.
Metadata in the response indicates the type of block produced, and the supported types of block will be added to as forks progress.
Parameters
slot
(string; path; required): the slot for which the block should be proposed.randao_reveal
(string; hex; query; required): the validator's randao reveal value.graffiti
(string; hex; query): an arbitrary data validator to include in the block.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/blocks/{slot}" \
-H "Accept: application/json"
Responses
Code 200
: Success.
Note: The Eth-Consensus-Version
header is required in response so client can deserialize returned json or ssz data more effectively.
{
"version": "phase0",
"data": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0xbF0eF8805DE094355C99fD34Df183ADB5BB153f5dac2eD83bee6eEd2dEf05cFC",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
}
}
Code 400
: Invalid block production request.
{
"code": 400,
"message": "Invalid request to produce a block"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/blinded_blocks/{slot}
Produces a new blinded block, without signature.
Requests a beacon node to produce a valid blinded block, which can then be signed by a validator. A blinded block is a block with only a transactions root, rather than a full transactions list.
Metadata in the response indicates the type of block produced, and the supported types of block will be added to as forks progress.
Pre-Bellatrix, this endpoint will return a BeaconBlock
.
Parameters
slot
(string; path; required): the slot for which the block should be proposed.randao_reveal
(string; hex; query; required): the validator's randao reveal value.graffiti
(string; hex; query): an arbitrary data validator to include in the block.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/blinded_blocks/{slot}" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"version": "bellatrix",
"data": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0x2F86DB21b8b1C3465689AaeBB3cE1A4F7C79F09F0dA82444eec71f1cCbBC7fb3",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
}
}
}
Code 400
: Invalid block production request.
{
"code": 400,
"message": "Invalid request to produce a block"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/attestation_data
Produces attestation data.
Requests that the beacon node to produce an AttestationData.
Parameters
slot
(string; query; required): the slot for which an attestation data should be created.committee_index
(string; query; required): the committee index for which an attestation data should be created.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/attestation_data" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
GET /eth/v1/validator/aggregate_attestation
Retrieves aggregated attestation.
Aggregates all attestations matching given attestation data root and slot.
Parameters
attestation_data_root
(string; query; required): HashTreeRoot of AttestationData that validator wants aggregated.slot
(string; query; required): a slot.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/aggregate_attestation" \
-H "Accept: application/json"
Responses
Code 200
: Success. Returns aggregatedAttestation
object with sameAttestationData
root.
{
"data": {
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 404
: Not found.
{
"code": 404,
"message": "Requested item not found"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/validator/aggregate_and_proofs
Publishes multiple aggregate and proofs.
Verifies given aggregate and proofs and publishes them on appropriate gossipsub topic.
Parameters
<request body>
(required):
[
{
"message": {
"aggregator_index": "1",
"aggregate": {
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"selection_proof": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/aggregate_and_proofs" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/validator/beacon_committee_subscriptions
Signals the Beacon node to prepare for a committee subnet.
After beacon node receives this request, search using discv5 for peers related to this subnet and replace current peers with those ones if necessary. If validator is_aggregator
, beacon node must:
- Announce subnet topic subscription on gossipsub.
- Aggregate attestations received on that subnet.
Parameters
<request body>
:
[
{
"validator_index": "1",
"committee_index": "1",
"committees_at_slot": "1",
"slot": "1",
"is_aggregator": true
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/beacon_committee_subscriptions" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success. Slot signature is valid and beacon node has prepared the attestation subnet.
Note that we cannot be certain the Beacon node will find peers for that subnet for various reasons.
Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
POST /eth/v1/validator/sync_committee_subscriptions
Subscribes to sync committee subnets.
Subscribe to a number of sync committee subnets.
Sync committees are not present in phase0, but are required for Altair networks.
Subscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.
Parameters
<request body>
:
[
{
"validator_index": "1",
"sync_committee_indices": [
"1"
],
"until_epoch": "1"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/sync_committee_subscriptions" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/validator/sync_committee_contribution
Produces a sync committee contribution.
Requests that the beacon node to produce a sync committee contribution.
Parameters
slot
(string; query; required): the slot for which a sync committee contribution should be created.subcommittee_index
(string; query; required): the subcommittee index for which to produce the contribution.beacon_block_root
(string; query; required): the block root for which to produce the contribution.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/sync_committee_contribution" \
-H "Accept: application/json"
Responses
Code 200
: Success.
{
"data": {
"slot": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"subcommittee_index": "1",
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 404
: Not found.
{
"code": 404,
"message": "Requested item not found"
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
Code 503
: Beacon node is currently syncing, try again later.
{
"code": 503,
"message": "Beacon node is currently syncing and not serving request on that endpoint"
}
POST /eth/v1/validator/contribution_and_proofs
Publishes multiple contribution and proofs.
Publishes multiple signed sync committee contribution and proofs.
Parameters
<request body>
:
[
{
"message": {
"aggregator_index": "1",
"selection_proof": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"contribution": {
"slot": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"subcommittee_index": "1",
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/contribution_and_proofs" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success.Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
POST /eth/v1/validator/prepare_beacon_proposer
Provides the Beacon node with proposals for the given validators.
Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index will persist through the epoch in which the call is submitted and for a further two epochs after that, or until the beacon node restarts. It is expected that validator clients will send this information periodically, for example each epoch, to ensure beacon nodes have correct and timely fee recipient information.
Note that there is no guarantee that the beacon node will use the supplied fee recipient when creating a block proposal, so on receipt of a proposed block the validator should confirm that it finds the fee recipient within the block acceptable before signing it.
Also note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch.
Parameters
<request body>
:
[
{
"validator_index": "1",
"fee_recipient": "0xabcf8e0d4e9587369b2301d0790347320302cc09"
}
]
Request example
curl -X POST "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/validator/prepare_beacon_proposer" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{request body}'
Responses
Code 200
: Success. Preparation information has been received.Code 400
: Invalid request syntax.
{
"code": 400,
"message": "string",
"stacktraces": [
"string"
]
}
Code 500
: Beacon node internal error.
{
"code": 500,
"message": "Internal server error"
}
GET /eth/v1/events
Subscribes to Beacon node events.
Provides endpoint to subscribe to beacon node Server-Sent-Events stream. Consumers should use eventsource (opens in a new tab) implementation to listen on those events.
Servers may send SSE comments beginning with :
for any purpose, including to keep the event stream connection alive in the presence of proxy servers.
Parameters
topics
(array[string]; query; required): event types to subscribe to; available values :head
,block
,attestation
,voluntary_exit
,finalized_checkpoint
,chain_reorg
,contribution_and_proof
.
Request example
curl -X GET "https://rpc.ankr.com/premium-http/gnosis_beacon/{your_token}/eth/v1/events" \
-H "Accept: text/event-stream"
Responses
Code 200
: Opened SSE stream.
Head event:
The node has finished processing, resulting in a new head. previous_duty_dependent_root is get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch - 1) - 1)
and current_duty_dependent_root
is get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1)
. Both dependent roots use the genesis block root in the case of underflow.
event: head
data: {"slot":"10", "block":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "state":"0x600e852a08c1200654ddf11025f1ceacb3c2e74bdd5c630cde0838b2591b69f9", "epoch_transition":false, "previous_duty_dependent_root":"0x5e0043f107cb57913498fbf2f99ff55e730bf1e151f02f221e977c91a90a0e91", "current_duty_dependent_root":"0x5e0043f107cb57913498fbf2f99ff55e730bf1e151f02f221e977c91a90a0e91", "execution_optimistic": false}
Block event:
The node has received a valid block (from P2P or API).
event: block
data: {"slot":"10", "block":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "execution_optimistic": false}
Attestation event:
The node has received a valid attestation (from P2P or API).
event: attestation
data: {"aggregation_bits":"0x01", "signature":"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505", "data":{"slot":"1", "index":"1", "beacon_block_root":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", "source":{"epoch":"1", "root":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"}, "target":{"epoch":"1", "root":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"}}}
Voluntary exit event:
The node has received a valid voluntary exit (from P2P or API).
event: voluntary_exit
data: {"message":{"epoch":"1", "validator_index":"1"}, "signature":"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"}
Finalized checkpoint event:
Finalized checkpoint has been updated.
event: finalized_checkpoint
data: {"block":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "state":"0x600e852a08c1200654ddf11025f1ceacb3c2e74bdd5c630cde0838b2591b69f9", "epoch":"2", "execution_optimistic": false }
Chain reorg event:
The node has reorganized its chain.
event: chain_reorg
data: {"slot":"200", "depth":"50", "old_head_block":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "new_head_block":"0x76262e91970d375a19bfe8a867288d7b9cde43c8635f598d93d39d041706fc76", "old_head_state":"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf", "new_head_state":"0x600e852a08c1200654ddf11025f1ceacb3c2e74bdd5c630cde0838b2591b69f9", "epoch":"2", "execution_optimistic": false}
Contribution and proof event:
The node has received a valid sync committee SignedContributionAndProof (from P2P or API).
event: contribution_and_proof
data: {"message": {"aggregator_index": "997", "contribution": {"slot": "168097", "beacon_block_root": "0x56f1fd4262c08fa81e27621c370e187e621a67fc80fe42340b07519f84b42ea1", "subcommittee_index": "0", "aggregation_bits": "0xffffffffffffffffffffffffffffffff", "signature": "0x85ab9018e14963026476fdf784cc674da144b3dbdb47516185438768774f077d882087b90ad642469902e782a8b43eed0cfc1b862aa9a473b54c98d860424a702297b4b648f3f30bdaae8a8b7627d10d04cb96a2cc8376af3e54a9aa0c8145e3"}, "selection_proof": "0x87c305f04bfe5db27c2b19fc23e00d7ac496ec7d3e759cbfdd1035cb8cf6caaa17a36a95a08ba78c282725e7b66a76820ca4eb333822bd399ceeb9807a0f2926c67ce67cfe06a0b0006838203b493505a8457eb79913ce1a3bcd1cc8e4ef30ed"}, "signature": "0xac118511474a94f857300b315c50585c32a713e4452e26a6bb98cdb619936370f126ed3b6bb64469259ee92e69791d9e12d324ce6fd90081680ce72f39d85d50b0ff977260a8667465e613362c6d6e6e745e1f9323ec1d6f16041c4e358839ac"}