api

package
v1.24.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2026 License: GPL-3.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func APIConsensusClients added in v1.17.0

func APIConsensusClients(w http.ResponseWriter, r *http.Request)

APIConsensusClients returns consensus client node information as JSON @Summary Get consensus clients information @Description Returns a list of all connected consensus clients with their node information, including PeerDAS support. Sensitive information (PeerID, NodeID, ENR) is only included if ShowSensitivePeerInfos is enabled in the configuration. @Tags clients @Accept json @Produce json @Success 200 {object} APIConsensusClientsResponse @Failure 429 {object} map[string]string "Rate limit exceeded" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/clients/consensus [get] @ID getConsensusClients

func APIConsolidationRequestsV1 added in v1.19.0

func APIConsolidationRequestsV1(w http.ResponseWriter, r *http.Request)

APIConsolidationRequests returns a list of consolidation requests with filters @Summary Get consolidation requests list @Description Returns a list of consolidation requests (EL triggered) with detailed information and filtering options @Tags consolidation_requests @Accept json @Produce json @Param limit query int false "Number of consolidation requests to return (max 100)" @Param offset query int false "Offset for pagination" @Param min_slot query int false "Minimum slot number" @Param max_slot query int false "Maximum slot number" @Param source_address query string false "Filter by source address" @Param min_src_index query int false "Minimum source validator index" @Param max_src_index query int false "Maximum source validator index" @Param src_validator_name query string false "Filter by source validator name" @Param min_tgt_index query int false "Minimum target validator index" @Param max_tgt_index query int false "Maximum target validator index" @Param tgt_validator_name query string false "Filter by target validator name" @Param with_orphaned query int false "Include orphaned requests (2=orphaned only, 1=include all, 0=exclude orphaned)" @Param public_key query string false "Filter by public key" @Success 200 {object} APIConsolidationRequestsResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/consolidation_requests [get] @ID getConsolidationRequests

func APIDasGuardianMassScan added in v1.18.0

func APIDasGuardianMassScan(w http.ResponseWriter, r *http.Request)

APIDasGuardianMassScan performs a DAS Guardian scan on all available nodes @Summary Scan all nodes using DAS Guardian @Description Performs DAS Guardian scans on all available consensus client nodes in parallel @Tags das-guardian @Accept json @Produce json @Param request body APIDasGuardianMassScanRequest true "Mass scan parameters" @Success 200 {object} APIDasGuardianMassScanResponse @Failure 400 {object} map[string]string "Invalid request" @Failure 429 {object} map[string]string "Rate limit exceeded" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/das-guardian/mass-scan [post] @ID massDasGuardianScan

func APIDasGuardianScan added in v1.18.0

func APIDasGuardianScan(w http.ResponseWriter, r *http.Request)

APIDasGuardianScan performs a DAS Guardian scan on a given ENR @Summary Scan a node using DAS Guardian @Description Performs a comprehensive scan of a beacon node using eth-das-guardian to check P2P connectivity, fork digest validity, head accuracy, and custody information @Tags das-guardian @Accept json @Produce json @Param request body APIDasGuardianScanRequest true "Node ENR to scan" @Success 200 {object} APIDasGuardianScanResponse @Failure 400 {object} map[string]string "Invalid request" @Failure 429 {object} map[string]string "Rate limit exceeded" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/das-guardian/scan [post] @ID scanDasGuardian

func APIDepositsIncludedV1 added in v1.19.0

func APIDepositsIncludedV1(w http.ResponseWriter, r *http.Request)

APIDepositsIncludedV1 returns a list of deposits that have been included in blocks @Summary Get deposits included in blocks @Description Returns a list of deposits that have been successfully included in beacon chain blocks with comprehensive filtering @Tags deposits @Accept json @Produce json @Param limit query int false "Number of deposits to return (max 100)" @Param offset query int false "Offset for pagination" @Param min_index query int false "Minimum deposit index" @Param max_index query int false "Maximum deposit index" @Param public_key query string false "Filter by validator public key (with or without 0x prefix)" @Param validator_name query string false "Filter by validator name" @Param min_amount query int false "Minimum deposit amount in gwei" @Param max_amount query int false "Maximum deposit amount in gwei" @Param with_orphaned query int false "Include orphaned deposits (0=canonical only, 1=include all, 2=orphaned only)" @Param address query string false "Filter by depositor address" @Param with_valid query int false "Filter by signature validity (0=invalid only, 1=valid only, 2=all)" @Param cred_type query []int false "Filter by withdrawal credential type prefix byte (0-3). Repeat the parameter to include multiple types, e.g. cred_type=1&cred_type=2." collectionFormat(multi) @Success 200 {object} APIDepositsIncludedResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/deposits/included [get] @ID getDepositsIncluded

func APIDepositsQueueV1 added in v1.19.0

func APIDepositsQueueV1(w http.ResponseWriter, r *http.Request)

APIDepositsQueueV1 returns a list of queued deposits @Summary Get deposit queue @Description Returns a list of deposits in the queue waiting to be processed (Electra only) with comprehensive filtering @Tags deposits @Accept json @Produce json @Param limit query int false "Number of deposits to return (max 100)" @Param offset query int false "Offset for pagination" @Param min_index query int false "Minimum deposit index" @Param max_index query int false "Maximum deposit index" @Param public_key query string false "Filter by validator public key (with or without 0x prefix)" @Param min_amount query int false "Minimum deposit amount in gwei" @Param max_amount query int false "Maximum deposit amount in gwei" @Success 200 {object} APIDepositsQueueResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/deposits/queue [get] @ID getDepositsQueue

func APIDepositsTransactionsV1 added in v1.19.0

func APIDepositsTransactionsV1(w http.ResponseWriter, r *http.Request)

APIDepositsTransactionsV1 returns a list of deposit transactions @Summary Get deposit transactions @Description Returns a list of deposit transactions that have been initiated on the execution layer with comprehensive filtering @Tags deposits @Accept json @Produce json @Param limit query int false "Number of deposits to return (max 100)" @Param offset query int false "Offset for pagination" @Param min_index query int false "Minimum deposit index" @Param max_index query int false "Maximum deposit index" @Param public_key query string false "Filter by validator public key (with or without 0x prefix)" @Param validator_name query string false "Filter by validator name" @Param min_amount query int false "Minimum deposit amount in gwei" @Param max_amount query int false "Maximum deposit amount in gwei" @Param with_orphaned query int false "Include orphaned deposits (0=canonical only, 1=include all, 2=orphaned only)" @Param address query string false "Filter by transaction sender address" @Param target_address query string false "Filter by transaction target address" @Param with_valid query int false "Filter by signature validity (0=invalid only, 1=valid only, 2=all)" @Success 200 {object} APIDepositsTransactionsResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/deposits/transactions [get] @ID getDepositsTransactions

func APIEpochDutiesV1 added in v1.24.4

func APIEpochDutiesV1(w http.ResponseWriter, r *http.Request)

APIEpochDutiesV1 returns the attester committees for every slot in an epoch @Summary Get epoch attester duties @Description Returns the attester committees for every slot in the specified epoch. Committee members are global validator indices in committee order. @Tags Epoch @Produce json @Param epoch path int true "Epoch number" @Param dependent_root query string false "Resolve duties on the fork with this committee-shuffling dependent root (0x-prefixed hex)" @Param block_root query string false "Resolve duties on the fork that this block root sits on (0x-prefixed hex)" @Success 200 {object} APIEpochDutiesResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 404 {object} map[string]string "Duties not available" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/epoch/{epoch}/duties [get] @ID getEpochDuties @Security BearerAuth

func APIEpochsV1 added in v1.19.0

func APIEpochsV1(w http.ResponseWriter, r *http.Request)

APIEpochs returns a list of epochs with filters @Summary Get epochs list @Description Returns a list of epochs with detailed information and statistics @Tags epochs @Accept json @Produce json @Param epoch query int false "First epoch to display" @Param limit query int false "Number of epochs to return (max 100)" @Success 200 {object} APIEpochsResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/epochs [get] @ID getEpochs

func APIExecutionClients added in v1.17.0

func APIExecutionClients(w http.ResponseWriter, r *http.Request)

APIExecutionClients returns execution client node information as JSON @Summary Get execution clients information @Description Returns a list of all connected execution clients with their node information. Sensitive information (IP addresses, ports, enode) is only included if ShowSensitivePeerInfos is enabled in the configuration. @Tags clients @Accept json @Produce json @Success 200 {object} APIExecutionClientsResponse @Failure 429 {object} map[string]string "Rate limit exceeded" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/clients/execution [get] @ID getExecutionClients

func APIMevBlocksV1 added in v1.19.0

func APIMevBlocksV1(w http.ResponseWriter, r *http.Request)

APIMevBlocksV1 returns a list of MEV blocks with filters @Summary Get MEV blocks @Description Returns a list of MEV blocks with relay information and comprehensive filtering @Tags mev_blocks @Accept json @Produce json @Param limit query int false "Number of MEV blocks to return (max 100)" @Param offset query int false "Offset for pagination" @Param min_slot query int false "Minimum slot number" @Param max_slot query int false "Maximum slot number" @Param min_index query int false "Minimum proposer validator index" @Param max_index query int false "Maximum proposer validator index" @Param validator_name query string false "Filter by proposer validator name" @Param relays query string false "Filter by MEV relays (comma-separated relay IDs)" @Param proposed query string false "Filter by proposed status (comma-separated: 0=not proposed, 1=proposed, 2=orphaned)" @Success 200 {object} APIMevBlocksResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/mev_blocks [get] @ID getMevBlocks

func APINetworkClientHeadForksV1 added in v1.20.4

func APINetworkClientHeadForksV1(w http.ResponseWriter, r *http.Request)

APINetworkClientHeadForksV1 returns consensus client head fork information. @Summary Get consensus client head forks @Description Returns information about consensus client head forks, showing which clients are on which chain head. Useful for detecting chain splits from the client perspective. @Tags network @Produce json @Success 200 {object} APIClientHeadForksResponse @Failure 500 {object} map[string]string "Internal server error" @Router /v1/network/client_head_forks [get] @ID getNetworkClientHeadForks

func APINetworkFastConfirmationV1 added in v1.24.2

func APINetworkFastConfirmationV1(w http.ResponseWriter, r *http.Request)

APINetworkFastConfirmationV1 returns the safe block from the fast confirmation rule. @Summary Get fast confirmation (safe block) status @Description Returns the network-wide safe block derived from the fast confirmation rule (fast_confirmation event stream), plus the per-client fast confirmation status. Clients that don't support the fast confirmation rule are listed with fcr_enabled=false. @Tags network @Produce json @Success 200 {object} APIFastConfirmationResponse @Failure 500 {object} map[string]string "Internal server error" @Router /v1/network/fast_confirmation [get] @ID getNetworkFastConfirmation

func APINetworkForksV1 added in v1.19.0

func APINetworkForksV1(w http.ResponseWriter, r *http.Request)

APINetworkForksV1 returns information about network forks including BPO forks and fork digests @Summary Get network forks @Description Returns comprehensive information about past, current, and future network forks including consensus forks and BPO (Block Parameter Override) forks with fork digests @Tags network @Accept json @Produce json @Success 200 {object} APINetworkForksResponse @Failure 500 {object} map[string]string "Internal server error" @Router /v1/network/forks [get] @ID getNetworkForks

func APINetworkOverviewV1 added in v1.19.0

func APINetworkOverviewV1(w http.ResponseWriter, r *http.Request)

APINetworkOverviewV1 returns comprehensive network state overview @Summary Get network overview @Description Returns comprehensive network state information including network info, current state, checkpoints, validator stats, queue stats, fork information and a health snapshot with finality status, validator counts and provenance-aware participation data @Tags network @Accept json @Produce json @Success 200 {object} APINetworkOverviewResponse @Failure 500 {object} ApiResponse "Server Error" @Router /v1/network/overview [get] @ID getNetworkOverview

func APINetworkSplitsV1 added in v1.19.0

func APINetworkSplitsV1(w http.ResponseWriter, r *http.Request)

APINetworkSplitsV1 returns information about active network splits/forks @Summary Get network splits @Description Returns information about active network forks/splits, their participation rates, and head blocks @Tags network @Accept json @Produce json @Param with_stale query bool false "Include stale forks with no voting weight (default: false)" @Success 200 {object} APINetworkSplitsResponse @Failure 500 {object} map[string]string "Internal server error" @Router /v1/network/splits [get] @ID getNetworkSplits

func APISlashingsV1 added in v1.19.0

func APISlashingsV1(w http.ResponseWriter, r *http.Request)

APISlashings returns a list of slashings with filters @Summary Get slashings list @Description Returns a list of slashings with detailed information and filtering options @Tags slashings @Accept json @Produce json @Param limit query int false "Number of slashings to return (max 100)" @Param page query int false "Page number (starts at 1)" @Param min_slot query int false "Minimum slot number" @Param max_slot query int false "Maximum slot number" @Param min_index query int false "Minimum validator index" @Param max_index query int false "Maximum validator index" @Param validator_name query string false "Filter by validator name" @Param slasher_name query string false "Filter by slasher name" @Param reason query int false "Filter by slashing reason" @Param with_orphaned query int false "Include orphaned slashings (0=exclude, 1=include, 2=only orphaned)" @Success 200 {object} APISlashingsResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/slashings [get] @ID getSlashings

func APISlotBidsV1 added in v1.22.6

func APISlotBidsV1(w http.ResponseWriter, r *http.Request)

APISlotBidsV1 returns all execution payload bids submitted for a slot (ePBS, EIP-7732) @Summary Get execution payload bids for a slot @Description Returns all execution payload bids submitted for a slot (ePBS, gloas+), including bids targeting other forks or deeper ancestors (reorg bids). Each bid is classified against the slot's actual block parent chain. @Tags Slot @Produce json @Param slotOrHash path string true "Slot number or block root (0x-prefixed hex)" @Success 200 {object} APISlotBidsResponse @Failure 400 {object} map[string]string "Invalid slot number or root format" @Failure 404 {object} map[string]string "Slot not found" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/slot/{slotOrHash}/bids [get] @ID getSlotBids

func APISlotBlockAccessListV1 added in v1.22.6

func APISlotBlockAccessListV1(w http.ResponseWriter, r *http.Request)

APISlotBlockAccessListV1 returns the EIP-7928 block access list for a slot @Summary Get block access list for a slot @Description Returns the EIP-7928 block access list (BAL) decoded for a specific slot. @Tags Slot @Produce json @Param slotOrHash path string true "Slot number or block root (0x-prefixed hex)" @Success 200 {object} APISlotBlockAccessListResponse @Failure 400 {object} map[string]string "Invalid slot number or root format" @Failure 404 {object} map[string]string "Slot not found" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/slot/{slotOrHash}/block_access_list [get] @ID getSlotBlockAccessList

func APISlotCommitteesV1 added in v1.24.4

func APISlotCommitteesV1(w http.ResponseWriter, r *http.Request)

APISlotCommitteesV1 returns the attester committees for a slot @Summary Get slot attester committees @Description Returns the attester committees for the specified slot. Committee members are global validator indices in committee order. @Tags Slot @Produce json @Param slot path int true "Slot number" @Param committee query string false "Comma-separated list of committee indices to filter by" @Param dependent_root query string false "Resolve committees on the fork with this committee-shuffling dependent root (0x-prefixed hex)" @Param block_root query string false "Resolve committees on the fork that this block root sits on (0x-prefixed hex)" @Success 200 {object} APISlotCommitteesResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 404 {object} map[string]string "Committees not available" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/slot/{slot}/committees [get] @ID getSlotCommittees @Security BearerAuth

func APISlotInclusionListsV1 added in v1.22.6

func APISlotInclusionListsV1(w http.ResponseWriter, r *http.Request)

APISlotInclusionListsV1 returns the EIP-7805 inclusion lists for a slot. @Summary Get inclusion lists for a slot @Description Returns the cached EIP-7805 inclusion lists for a slot, with each transaction @Description marked as included or not based on whether it appears in the slot's block transactions. @Tags Slot @Produce json @Param slotOrHash path string true "Slot number or block root (0x-prefixed hex)" @Success 200 {object} APISlotInclusionListsResponse @Failure 400 {object} map[string]string "Invalid slot number or root format" @Failure 404 {object} map[string]string "Slot not found" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/slot/{slotOrHash}/inclusion_lists [get] @ID getSlotInclusionLists

func APISlotPayloadHeaderV1 added in v1.22.6

func APISlotPayloadHeaderV1(w http.ResponseWriter, r *http.Request)

APISlotPayloadHeaderV1 returns the gloas+ signed execution payload bid (header) for a slot. @Summary Get the execution payload header for a slot @Description Returns the gloas+ signed execution payload bid (header) included in a block, @Description plus its observed payload status (canonical / orphaned). Pre-gloas blocks return @Description has_payload_header=false. @Tags Slot @Produce json @Param slotOrHash path string true "Slot number or block root (0x-prefixed hex)" @Success 200 {object} APISlotPayloadHeaderResponse @Failure 400 {object} map[string]string "Invalid slot number or root format" @Failure 404 {object} map[string]string "Slot not found" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/slot/{slotOrHash}/payload_header [get] @ID getSlotPayloadHeader

func APISlotPtcVotesV1 added in v1.22.6

func APISlotPtcVotesV1(w http.ResponseWriter, r *http.Request)

APISlotPtcVotesV1 returns the PTC (Payload Timeliness Committee) votes contained in a slot. @Summary Get PTC votes for a slot @Description Returns the PTC (Payload Timeliness Committee) payload attestations included in a gloas+ block. @Description The attestations target the previous slot, mirroring what is shown on the slot page. @Tags Slot @Produce json @Param slotOrHash path string true "Slot number or block root (0x-prefixed hex)" @Param dependent_root query string false "Resolve the PTC on the fork with this committee-shuffling dependent root (0x-prefixed hex)" @Param block_root query string false "Resolve the PTC on the fork that this block root sits on (0x-prefixed hex)" @Success 200 {object} APISlotPtcVotesResponse @Failure 400 {object} map[string]string "Invalid slot number or root format" @Failure 404 {object} map[string]string "Slot not found" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/slot/{slotOrHash}/ptc_votes [get] @ID getSlotPtcVotes

func APISlotV1 added in v1.18.0

func APISlotV1(w http.ResponseWriter, r *http.Request)

APISlotV1 returns information about a specific slot by slot number or block root @Summary Get slot information @Description Returns detailed information about a specific slot from the database. Accepts either slot number or block root (0x-prefixed hex) @Tags Slot @Produce json @Param slotOrHash path string true "Slot number or block root (0x-prefixed hex)" @Success 200 {object} APISlotResponse @Failure 400 {object} map[string]string "Invalid slot number or root format" @Failure 404 {object} map[string]string "Slot not found" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/slot/{slotOrHash} [get] @ID getSlot

func APISlotsV1 added in v1.19.0

func APISlotsV1(w http.ResponseWriter, r *http.Request)

APISlotsV1 returns a list of slots with filters @Summary Get filtered slots list @Description Returns a list of slots with various filtering options, sorted by slot number descending @Tags Slot @Produce json @Param graffiti query string false "Filter by graffiti" @Param graffiti_invert query bool false "Invert graffiti filter" @Param extra_data query string false "Filter by extra data" @Param extra_data_invert query bool false "Invert extra data filter" @Param proposer query string false "Filter by proposer index" @Param proposer_name query string false "Filter by proposer name" @Param proposer_invert query bool false "Invert proposer filter" @Param with_orphaned query int false "Include orphaned blocks (0=exclude, 1=include, 2=only orphaned)" @Param with_missing query int false "Include missing blocks (0=exclude, 1=include, 2=only missing)" @Param min_sync query float32 false "Minimum sync aggregate participation (0-100)" @Param max_sync query float32 false "Maximum sync aggregate participation (0-100)" @Param min_exec_time query int false "Minimum execution time in ms" @Param max_exec_time query int false "Maximum execution time in ms" @Param min_tx_count query int false "Minimum transaction count" @Param max_tx_count query int false "Maximum transaction count" @Param min_blob_count query int false "Minimum blob count" @Param max_blob_count query int false "Maximum blob count" @Param fork_ids query string false "Comma-separated list of fork IDs" @Param min_slot query int false "Minimum slot number to return (inclusive)" @Param max_slot query int false "Maximum slot number to return (inclusive)" @Param page query int false "Page number for pagination (0-indexed, default 0)" @Param limit query int false "Number of results to return (max 1000, default 100)" @Success 200 {object} APISlotsResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/slots [get] @ID getSlots

func APIValidatorNamesV1 added in v1.19.0

func APIValidatorNamesV1(w http.ResponseWriter, r *http.Request)

APIValidatorNamesV1 returns validator names for given indices or public keys Supports both GET (with query params) and POST (with JSON body) requests @Summary Get validator names @Description Returns validator names for given validator indices or public keys. Supports GET with query params or POST with JSON body for large lists. @Tags validator_names @Accept json @Produce json @Param indices query string false "Comma-separated list of validator indices (GET only)" @Param pubkeys query string false "Comma-separated list of validator public keys (GET only, with or without 0x prefix)" @Param body body APIValidatorNamesRequest false "Request body for POST requests with indices and/or pubkeys arrays" @Success 200 {object} APIValidatorNamesResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/validator_names [get] @Router /v1/validator_names [post] @ID getValidatorNames

func APIValidatorsActivityV1 added in v1.19.0

func APIValidatorsActivityV1(w http.ResponseWriter, r *http.Request)

APIValidatorsActivityV1 returns aggregated validator activity stats @Summary Get validators activity statistics @Description Returns aggregated validator activity statistics with grouping and filtering options @Tags validators @Accept json @Produce json @Param limit query int false "Number of groups to return (max 1000, default 50)" @Param page query int false "Page number (starts at 1)" @Param group query int false "Grouping option: 1=by 100k indexes, 2=by 10k indexes, 3=by validator names, 4=by withdrawal address (default: 3 if names available, else 1)" @Param search query string false "Search term for group names, withdrawal addresses, or withdrawal credentials (supports regex for non-exact address searches)" @Param order query string false "Sort order: group, group-d, count, count-d, active, active-d, online, online-d, offline, offline-d, exited, exited-d, slashed, slashed-d (default: group)" @Success 200 {object} APIValidatorsActivityResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/validators/activity [get] @ID getValidatorsActivity

func APIValidatorsStatusV1 added in v1.24.4

func APIValidatorsStatusV1(w http.ResponseWriter, r *http.Request)

APIValidatorsStatusV1 returns the status of validators in bulk Supports both GET (with query params) and POST (with JSON body) requests @Summary Get validator status in bulk @Description Returns status, slashed flag and lifecycle epochs for up to 10000 validators by index. Supports GET with query params or POST with JSON body for large lists. Unknown indices are omitted from the response. @Tags validators @Accept json @Produce json @Param indices query string false "Comma-separated list of validator indices (GET only)" @Param body body APIValidatorsStatusRequest false "Request body for POST requests with indices array" @Success 200 {object} APIValidatorsStatusResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/validators/status [get] @Router /v1/validators/status [post] @ID getValidatorsStatus @Security BearerAuth

func APIValidatorsV1 added in v1.19.0

func APIValidatorsV1(w http.ResponseWriter, r *http.Request)

APIValidators returns a list of validators with filters @Summary Get validators list @Description Returns a list of validators with detailed information and filtering options @Tags validators @Accept json @Produce json @Param limit query int false "Number of validators to return (max 1000)" @Param page query int false "Page number (starts at 1)" @Param pubkey query string false "Filter by public key" @Param index query string false "Filter by validator index" @Param name query string false "Filter by validator name" @Param status query string false "Filter by validator status (comma-separated)" @Param withdrawal query string false "Filter by withdrawal address or withdrawal credentials" @Param order query string false "Sort order: index, index-d, pubkey, pubkey-d, balance, balance-d, activation, activation-d, exit, exit-d" @Success 200 {object} APIValidatorsResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/validators [get] @ID getValidators

func APIVoluntaryExitsV1 added in v1.19.0

func APIVoluntaryExitsV1(w http.ResponseWriter, r *http.Request)

APIVoluntaryExits returns a list of voluntary exits with filters @Summary Get voluntary exits list @Description Returns a list of voluntary exits with detailed information and filtering options @Tags voluntary_exits @Accept json @Produce json @Param limit query int false "Number of voluntary exits to return (max 100)" @Param page query int false "Page number (starts at 1)" @Param min_slot query int false "Minimum slot number" @Param max_slot query int false "Maximum slot number" @Param min_index query int false "Minimum validator index" @Param max_index query int false "Maximum validator index" @Param validator_name query string false "Filter by validator name" @Param with_orphaned query int false "Include orphaned exits (1=include, 0=exclude)" @Success 200 {object} APIVoluntaryExitsResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/voluntary_exits [get] @ID getVoluntaryExits

func APIWithdrawalRequestsV1 added in v1.19.0

func APIWithdrawalRequestsV1(w http.ResponseWriter, r *http.Request)

APIWithdrawalRequests returns a list of withdrawal requests with filters @Summary Get withdrawal requests list @Description Returns a list of withdrawal requests (EL triggered) with detailed information and filtering options @Tags withdrawal_requests @Accept json @Produce json @Param limit query int false "Number of withdrawal requests to return (max 100)" @Param offset query int false "Offset for pagination" @Param min_slot query int false "Minimum slot number" @Param max_slot query int false "Maximum slot number" @Param source_address query string false "Filter by source address" @Param min_index query int false "Minimum validator index" @Param max_index query int false "Maximum validator index" @Param validator_name query string false "Filter by validator name" @Param with_orphaned query int false "Include orphaned requests (1=include, 0=exclude)" @Param type query int false "Filter by type (1=withdrawals, 2=exits)" @Param public_key query string false "Filter by public key" @Success 200 {object} APIWithdrawalRequestsResponse @Failure 400 {object} map[string]string "Invalid parameters" @Failure 500 {object} map[string]string "Internal server error" @Router /v1/withdrawal_requests [get] @ID getWithdrawalRequests

func ApiEpochHealthV1 added in v1.24.1

func ApiEpochHealthV1(w http.ResponseWriter, r *http.Request)

ApiEpochHealthV1 godoc @Summary Get epoch health by number, latest, finalized @Tags Epoch @Description Returns the vote, proposal and payload participation rates for an epoch. The chain is only fully healthy when all three reach 100%. Post-ePBS (EIP-7732) payloads are revealed separately from beacon blocks and may be missing. @Produce json @Param epoch path string true "Epoch number, the string latest or the string finalized" @Success 200 {object} ApiResponse{data=APIEpochHealthResponseV1} "Success" @Failure 400 {object} ApiResponse "Failure" @Failure 500 {object} ApiResponse "Server Error" @Router /v1/epoch/{epoch}/health [get] @ID getEpochHealth

func ApiEpochV1

func ApiEpochV1(w http.ResponseWriter, r *http.Request)

ApiEpoch godoc @Summary Get epoch by number, latest, finalized @Tags Epoch @Description Returns information for a specified epoch by the epoch number or an epoch tag (can be latest or finalized) @Produce json @Param epoch path string true "Epoch number, the string latest or the string finalized" @Success 200 {object} ApiResponse{data=APIEpochResponseV1} "Success" @Failure 400 {object} ApiResponse "Failure" @Failure 500 {object} ApiResponse "Server Error" @Router /v1/epoch/{epoch} [get] @ID getEpoch

func ApiValidatorByEth1AddressV1

func ApiValidatorByEth1AddressV1(w http.ResponseWriter, r *http.Request)

ApiValidatorByEth1Address godoc @Summary Get all validators that belong to an eth1 address @Tags Validator @Produce json @Param eth1address path string true "Eth1 address from which the validator deposits were sent". @Param limit query string false "Limit the number of results (default: 2000)" @Param offset query string false "Offset the results (default: 0)" @Success 200 {object} ApiResponse{data=[]ApiValidatorEth1ResponseV1} @Failure 400 {object} ApiResponse @Router /v1/validator/eth1/{eth1address} [get] @ID getValidatorByEth1Address

func ApiValidatorDepositsV1 added in v1.16.0

func ApiValidatorDepositsV1(w http.ResponseWriter, r *http.Request)

ApiValidatorDepositsV1 godoc @Summary Get validator execution layer deposits @Description Get all eth1 deposits for up to 100 validators @Tags Validators @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} api.ApiResponse{data=[]api.ApiValidatorDepositsResponseV1} @Failure 400 {object} api.ApiResponse @Router /v1/validator/{indexOrPubkey}/deposits [get] @ID getValidatorDeposits

func ApiValidatorGetV1

func ApiValidatorGetV1(w http.ResponseWriter, r *http.Request)

ApiValidator godoc @Summary Get up to 100 validators @Tags Validator @Description Searching for too many validators based on their pubkeys will lead to a "URI too long" error @Produce json @Param indexOrPubkey path string true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} ApiResponse{data=[]ApiValidatorResponseV1} @Failure 400 {object} ApiResponse @Router /v1/validator/{indexOrPubkey} [get] @ID getValidator

func ApiValidatorPostV1

func ApiValidatorPostV1(w http.ResponseWriter, r *http.Request)

ApiValidator godoc @Summary Get up to 100 validators @Tags Validator @Description This POST endpoint exists because the GET endpoint can lead to a "URI too long" error when searching for too many validators based on their pubkeys. @Produce json @Param indexOrPubkey body ApiValidatorRequestV1 true "Up to 100 validator indicesOrPubkeys, comma separated" @Success 200 {object} ApiResponse{data=[]ApiValidatorResponseV1} @Failure 400 {object} ApiResponse @Router /v1/validator [post] @ID getValidatorPost

func ApiWithdrawalCredentialsValidatorsV1

func ApiWithdrawalCredentialsValidatorsV1(w http.ResponseWriter, r *http.Request)

ApiWithdrawalCredentialsValidators godoc @Summary Get all validators that have a specific withdrawal credentials @Tags Validator @Produce json @Param withdrawalCredentialsOrEth1address path string true "Provide a withdrawal credential or an eth1 address with an optional 0x prefix". It can also be a valid ENS name. @Param limit query int false "Limit the number of results, maximum: 200" default(10) @Param offset query int false "Offset the number of results" default(0) @Success 200 {object} ApiResponse{data=[]ApiWithdrawalCredentialsResponseV1} @Failure 400 {object} ApiResponse @Router /v1/validator/withdrawalCredentials/{withdrawalCredentialsOrEth1address} [get] @ID getWithdrawalCredentialsValidators

func SendOKResponse

func SendOKResponse(j *json.Encoder, route string, data []interface{})

Types

type APICheckpoints added in v1.19.0

type APICheckpoints struct {
	FinalizedEpoch int64  `json:"finalized_epoch"`
	FinalizedRoot  string `json:"finalized_root,omitempty"`
	JustifiedEpoch int64  `json:"justified_epoch"`
	JustifiedRoot  string `json:"justified_root,omitempty"`
}

APICheckpoints contains finalization and justification information

type APIClientHeadFork added in v1.20.4

type APIClientHeadFork struct {
	HeadSlot    uint64                   `json:"head_slot"`
	HeadRoot    string                   `json:"head_root"`
	Clients     []*APIClientHeadForkPeer `json:"clients"`
	ClientCount uint64                   `json:"client_count"`
}

APIClientHeadFork represents a single head fork with its associated clients.

type APIClientHeadForkPeer added in v1.20.4

type APIClientHeadForkPeer struct {
	Index       int       `json:"index"`
	Name        string    `json:"name"`
	Version     string    `json:"version"`
	Status      string    `json:"status"`
	HeadSlot    uint64    `json:"head_slot"`
	Distance    uint64    `json:"distance"`
	LastRefresh time.Time `json:"last_refresh"`
	LastError   string    `json:"last_error,omitempty"`
}

APIClientHeadForkPeer represents a consensus client on a particular fork head.

type APIClientHeadForksData added in v1.20.4

type APIClientHeadForksData struct {
	Forks     []*APIClientHeadFork `json:"forks"`
	ForkCount uint64               `json:"fork_count"`
}

APIClientHeadForksData contains information about consensus client head forks.

type APIClientHeadForksResponse added in v1.20.4

type APIClientHeadForksResponse struct {
	Status string                  `json:"status"`
	Data   *APIClientHeadForksData `json:"data"`
}

APIClientHeadForksResponse represents the response for the client head forks endpoint.

type APIConsensusClientMetadata added in v1.18.0

type APIConsensusClientMetadata struct {
	Attnets           string `json:"attnets,omitempty"`
	Syncnets          string `json:"syncnets,omitempty"`
	SeqNumber         string `json:"seq_number,omitempty"`
	CustodyGroupCount string `json:"custody_group_count,omitempty"` // MetadataV3 field for Fulu
}

APIConsensusClientMetadata represents the metadata from the node identity

type APIConsensusClientNodeInfo added in v1.17.0

type APIConsensusClientNodeInfo struct {
	ClientName    string                      `json:"client_name"`
	ClientType    string                      `json:"client_type"`
	Version       string                      `json:"version"`
	PeerID        string                      `json:"peer_id"`
	NodeID        string                      `json:"node_id"`
	ENR           string                      `json:"enr"`
	ENRDecoded    map[string]interface{}      `json:"enr_decoded,omitempty"`
	HeadSlot      uint64                      `json:"head_slot"`
	HeadRoot      string                      `json:"head_root"`
	FcrEnabled    bool                        `json:"fcr_enabled"`
	SafeSlot      uint64                      `json:"safe_slot,omitempty"`
	SafeRoot      string                      `json:"safe_root,omitempty"`
	Status        string                      `json:"status"`
	PeerCount     uint32                      `json:"peer_count"`
	PeersInbound  uint32                      `json:"peers_inbound"`
	PeersOutbound uint32                      `json:"peers_outbound"`
	LastRefresh   time.Time                   `json:"last_refresh"`
	LastError     string                      `json:"last_error,omitempty"`
	DataColumns   []uint64                    `json:"data_columns"`
	Metadata      *APIConsensusClientMetadata `json:"metadata,omitempty"`
}

APIConsensusClientNodeInfo represents the response structure for consensus client node info

type APIConsensusClientsResponse added in v1.17.0

type APIConsensusClientsResponse struct {
	Clients []APIConsensusClientNodeInfo `json:"clients"`
	Count   int                          `json:"count"`
}

APIConsensusClientsResponse represents the full API response

type APIConsolidationRequestInfo added in v1.19.0

type APIConsolidationRequestInfo struct {
	SourceAddress        string                            `json:"source_address"`
	SourcePublicKey      string                            `json:"source_public_key"`
	SourceValidatorIndex uint64                            `json:"source_validator_index,omitempty"`
	SourceValidatorName  string                            `json:"source_validator_name,omitempty"`
	SourceValidatorValid bool                              `json:"source_validator_valid"`
	TargetPublicKey      string                            `json:"target_public_key"`
	TargetValidatorIndex uint64                            `json:"target_validator_index,omitempty"`
	TargetValidatorName  string                            `json:"target_validator_name,omitempty"`
	TargetValidatorValid bool                              `json:"target_validator_valid"`
	IsIncluded           bool                              `json:"is_included"`
	SlotNumber           uint64                            `json:"slot_number,omitempty"`
	SlotRoot             string                            `json:"slot_root,omitempty"`
	Time                 int64                             `json:"time,omitempty"`
	Status               uint64                            `json:"status"` // 0=pending, 1=included, 2=orphaned
	Result               uint8                             `json:"result,omitempty"`
	ResultMessage        string                            `json:"result_message,omitempty"`
	TxStatus             uint64                            `json:"tx_status"` // 0=pending, 1=confirmed, 2=orphaned
	TransactionHash      string                            `json:"transaction_hash,omitempty"`
	TransactionDetails   *APIConsolidationRequestTxDetails `json:"transaction_details,omitempty"`
}

APIConsolidationRequestInfo represents information about a single consolidation request

type APIConsolidationRequestTxDetails added in v1.19.0

type APIConsolidationRequestTxDetails struct {
	BlockNumber uint64 `json:"block_number"`
	BlockHash   string `json:"block_hash"`
	BlockTime   int64  `json:"block_time"`
	TxOrigin    string `json:"tx_origin"`
	TxTarget    string `json:"tx_target"`
	TxHash      string `json:"tx_hash"`
}

APIConsolidationRequestTxDetails represents transaction details for a consolidation request

type APIConsolidationRequestsData added in v1.19.0

type APIConsolidationRequestsData struct {
	ConsolidationRequests []*APIConsolidationRequestInfo `json:"consolidation_requests"`
	Count                 uint64                         `json:"count"`
	TotalRequests         uint64                         `json:"total_requests"`
	TotalPending          uint64                         `json:"total_pending"`
}

APIConsolidationRequestsData contains the consolidation requests data

type APIConsolidationRequestsResponse added in v1.19.0

type APIConsolidationRequestsResponse struct {
	Status string                        `json:"status"`
	Data   *APIConsolidationRequestsData `json:"data"`
}

APIConsolidationRequestsResponse represents the response structure for consolidation requests list

type APICurrentState added in v1.19.0

type APICurrentState struct {
	CurrentSlot          uint64  `json:"current_slot"`
	CurrentEpoch         uint64  `json:"current_epoch"`
	CurrentEpochProgress float64 `json:"current_epoch_progress"`
	SlotsPerEpoch        uint64  `json:"slots_per_epoch"`
	SlotDurationMs       uint64  `json:"slot_duration_ms"`
	EpochDurationMs      uint64  `json:"epoch_duration_ms"`
}

APICurrentState contains current network state

type APIDasGuardianEvalResult added in v1.18.0

type APIDasGuardianEvalResult struct {
	NodeID           string     `json:"node_id"`
	Slots            []uint64   `json:"slots"`
	ColumnIdx        []uint64   `json:"column_idx"`
	DownloadedResult [][]string `json:"downloaded_result"`
	ValidKzg         [][]string `json:"valid_kzg"`
	ValidColumn      [][]bool   `json:"valid_column"`
	ValidSlot        []bool     `json:"valid_slot"`
	Error            string     `json:"error,omitempty"`
}

APIDasGuardianEvalResult represents the DAS evaluation results

type APIDasGuardianMassScanRequest added in v1.18.0

type APIDasGuardianMassScanRequest struct {
	Slots       []uint64 `json:"slots,omitempty"`        // Optional slot numbers to scan
	RandomMode  string   `json:"random_mode,omitempty"`  // Random slot selection mode: "non_missed", "with_blobs", "available"
	RandomCount int32    `json:"random_count,omitempty"` // Number of random slots to select (default: 4)
}

APIDasGuardianMassScanRequest represents the request body for mass DAS Guardian scan

type APIDasGuardianMassScanResponse added in v1.18.0

type APIDasGuardianMassScanResponse struct {
	Success bool                          `json:"success"`
	Error   string                        `json:"error,omitempty"`
	Slots   []uint64                      `json:"slots,omitempty"`   // The slots that were scanned
	Results map[string]*APIMassNodeResult `json:"results,omitempty"` // ENR -> node result
}

APIDasGuardianMassScanResponse represents the response from mass DAS Guardian scan

type APIDasGuardianMetadata added in v1.18.0

type APIDasGuardianMetadata struct {
	SeqNumber         uint64 `json:"seq_number"`
	Attnets           string `json:"attnets"`
	Syncnets          string `json:"syncnets"`
	CustodyGroupCount uint64 `json:"custody_group_count"`
}

APIDasGuardianMetadata represents the beacon node metadata

type APIDasGuardianScanRequest added in v1.18.0

type APIDasGuardianScanRequest struct {
	ENR         string   `json:"enr"`
	Slots       []uint64 `json:"slots,omitempty"`        // Optional slot numbers to scan
	RandomMode  string   `json:"random_mode,omitempty"`  // Random slot selection mode: "non_missed", "with_blobs", "available"
	RandomCount int32    `json:"random_count,omitempty"` // Number of random slots to select (default: 4)
}

APIDasGuardianScanRequest represents the request body for DAS Guardian scan

type APIDasGuardianScanResponse added in v1.18.0

type APIDasGuardianScanResponse struct {
	Success bool                      `json:"success"`
	Error   string                    `json:"error,omitempty"`
	Result  *APIDasGuardianScanResult `json:"result,omitempty"`
}

APIDasGuardianScanResponse represents the response from DAS Guardian scan

type APIDasGuardianScanResult added in v1.18.0

type APIDasGuardianScanResult struct {
	// P2P Information
	Libp2pInfo map[string]interface{} `json:"libp2p_info"`

	// Status Information (from RemoteStatus)
	RemoteStatus *APIDasGuardianStatus `json:"remote_status,omitempty"`

	// Metadata (from RemoteMetadata)
	RemoteMetadata *APIDasGuardianMetadata `json:"remote_metadata,omitempty"`

	// DAS Evaluation Result
	EvalResult *APIDasGuardianEvalResult `json:"eval_result,omitempty"`
}

APIDasGuardianScanResult represents the scan result details

type APIDasGuardianStatus added in v1.18.0

type APIDasGuardianStatus struct {
	ForkDigest     string `json:"fork_digest"`
	FinalizedRoot  string `json:"finalized_root"`
	FinalizedEpoch uint64 `json:"finalized_epoch"`
	HeadRoot       string `json:"head_root"`
	HeadSlot       uint64 `json:"head_slot"`
	EarliestSlot   uint64 `json:"earliest_slot"`
}

APIDasGuardianStatus represents the beacon node status

type APIDepositIncludedInfo added in v1.19.0

type APIDepositIncludedInfo struct {
	Index                 uint64 `json:"index,omitempty"`
	SlotNumber            uint64 `json:"slot_number,omitempty"`
	SlotRoot              string `json:"slot_root,omitempty"`
	Time                  int64  `json:"time"`
	BlockNumber           uint64 `json:"block_number,omitempty"`
	PublicKey             string `json:"public_key"`
	ValidatorIndex        int64  `json:"validator_index"`
	ValidatorName         string `json:"validator_name,omitempty"`
	Amount                uint64 `json:"amount"`
	WithdrawalCredentials string `json:"withdrawal_credentials"`
	TxHash                string `json:"tx_hash,omitempty"`
	TxOrigin              string `json:"tx_origin,omitempty"`
	TxTarget              string `json:"tx_target,omitempty"`
	Orphaned              bool   `json:"orphaned"`
	Valid                 bool   `json:"valid,omitempty"`
}

APIDepositIncludedInfo represents information about a single deposit included in blocks

type APIDepositQueueInfo added in v1.19.0

type APIDepositQueueInfo struct {
	Index                 uint64 `json:"index,omitempty"`
	QueuePosition         uint64 `json:"queue_position"`
	EstimatedTime         int64  `json:"estimated_time"`
	PublicKey             string `json:"public_key"`
	ValidatorIndex        int64  `json:"validator_index"`
	ValidatorName         string `json:"validator_name,omitempty"`
	ValidatorStatus       string `json:"validator_status"`
	Amount                uint64 `json:"amount"`
	WithdrawalCredentials string `json:"withdrawal_credentials"`
	Postponed             bool   `json:"postponed"`
	TxHash                string `json:"tx_hash,omitempty"`
	TxOrigin              string `json:"tx_origin,omitempty"`
	TxTarget              string `json:"tx_target,omitempty"`
	BlockNumber           uint64 `json:"block_number,omitempty"`
	BlockHash             string `json:"block_hash,omitempty"`
	Time                  int64  `json:"time,omitempty"`
	ValidatorLiveness     uint8  `json:"validator_liveness,omitempty"`
	ValidatorLivenessMax  uint8  `json:"validator_liveness_max,omitempty"`
}

APIDepositQueueInfo represents information about a single queued deposit

type APIDepositTransactionInfo added in v1.19.0

type APIDepositTransactionInfo struct {
	Index                 uint64 `json:"index"`
	BlockNumber           uint64 `json:"block_number"`
	BlockHash             string `json:"block_hash,omitempty"`
	Time                  int64  `json:"time"`
	PublicKey             string `json:"public_key"`
	ValidatorIndex        int64  `json:"validator_index"`
	ValidatorName         string `json:"validator_name,omitempty"`
	ValidatorStatus       string `json:"validator_status"`
	Amount                uint64 `json:"amount"`
	WithdrawalCredentials string `json:"withdrawal_credentials"`
	TxHash                string `json:"tx_hash"`
	TxOrigin              string `json:"tx_origin"`
	TxTarget              string `json:"tx_target"`
	Orphaned              bool   `json:"orphaned"`
	Valid                 bool   `json:"valid"`
	ValidatorLiveness     uint8  `json:"validator_liveness,omitempty"`
	ValidatorLivenessMax  uint8  `json:"validator_liveness_max,omitempty"`
}

APIDepositTransactionInfo represents information about a single deposit transaction

type APIDepositsIncludedData added in v1.19.0

type APIDepositsIncludedData struct {
	Deposits     []*APIDepositIncludedInfo `json:"deposits"`
	Count        uint64                    `json:"count"`
	TotalCount   uint64                    `json:"total_count"`
	CurrentEpoch uint64                    `json:"current_epoch"`
}

APIDepositsIncludedData contains the deposits included data

type APIDepositsIncludedResponse added in v1.19.0

type APIDepositsIncludedResponse struct {
	Status string                   `json:"status"`
	Data   *APIDepositsIncludedData `json:"data"`
}

APIDepositsIncludedResponse represents the response structure for deposits included in blocks

type APIDepositsQueueData added in v1.19.0

type APIDepositsQueueData struct {
	Deposits             []*APIDepositQueueInfo `json:"deposits"`
	Count                uint64                 `json:"count"`
	TotalCount           uint64                 `json:"total_count"`
	CurrentEpoch         uint64                 `json:"current_epoch"`
	IsElectra            bool                   `json:"is_electra"`
	TotalNewValidators   uint64                 `json:"total_new_validators,omitempty"`
	TotalAmount          uint64                 `json:"total_amount,omitempty"`
	EstimatedProcessTime *int64                 `json:"estimated_process_time,omitempty"`
}

APIDepositsQueueData contains the deposit queue data

type APIDepositsQueueResponse added in v1.19.0

type APIDepositsQueueResponse struct {
	Status string                `json:"status"`
	Data   *APIDepositsQueueData `json:"data"`
}

APIDepositsQueueResponse represents the response structure for deposit queue

type APIDepositsTransactionsData added in v1.19.0

type APIDepositsTransactionsData struct {
	Deposits     []*APIDepositTransactionInfo `json:"deposits"`
	Count        uint64                       `json:"count"`
	TotalCount   uint64                       `json:"total_count"`
	CurrentEpoch uint64                       `json:"current_epoch"`
}

APIDepositsTransactionsData contains the deposit transactions data

type APIDepositsTransactionsResponse added in v1.19.0

type APIDepositsTransactionsResponse struct {
	Status string                       `json:"status"`
	Data   *APIDepositsTransactionsData `json:"data"`
}

APIDepositsTransactionsResponse represents the response structure for deposit transactions

type APIEpochDutiesData added in v1.24.4

type APIEpochDutiesData struct {
	Epoch             uint64                    `json:"epoch"`
	DependentRoot     string                    `json:"dependent_root,omitempty"`
	CommitteesPerSlot uint64                    `json:"committees_per_slot"`
	Slots             []*APIEpochDutiesSlotInfo `json:"slots"`
}

APIEpochDutiesData contains the attester committees for all slots of an epoch

type APIEpochDutiesResponse added in v1.24.4

type APIEpochDutiesResponse struct {
	Status string              `json:"status"`
	Data   *APIEpochDutiesData `json:"data"`
}

APIEpochDutiesResponse represents the response structure for epoch attester duties

type APIEpochDutiesSlotInfo added in v1.24.4

type APIEpochDutiesSlotInfo struct {
	Slot       uint64     `json:"slot"`
	Proposer   uint64     `json:"proposer"`
	Committees [][]uint64 `json:"committees"`
}

APIEpochDutiesSlotInfo contains the attester committees of a single slot. The position in the committees array is the committee index, the values are global validator indices in committee order.

type APIEpochHealthResponseV1 added in v1.24.1

type APIEpochHealthResponseV1 struct {
	Epoch                 uint64  `json:"epoch"`
	Ts                    uint64  `json:"ts"`
	Finalized             bool    `json:"finalized"`
	EligibleEther         uint64  `json:"eligible_ether"`
	VotedEther            uint64  `json:"voted_ether"`
	VoteParticipation     float64 `json:"vote_participation"`
	ProposedBlocks        uint64  `json:"proposed_blocks"`
	ProposalParticipation float64 `json:"proposal_participation"`
	ProposedPayloads      uint64  `json:"proposed_payloads"`
	PayloadParticipation  float64 `json:"payload_participation"`
	Slots                 uint64  `json:"slots"`
	Healthy               bool    `json:"healthy"`
}

APIEpochHealthResponseV1 reports the three participation rates that together describe the health of an epoch. Post-ePBS (EIP-7732) a beacon block can be proposed while its execution payload is missing, so payload participation is tracked separately from proposal participation. The chain is only fully healthy for an epoch when all three rates reach 100%.

type APIEpochInfo added in v1.19.0

type APIEpochInfo struct {
	Epoch                 uint64  `json:"epoch"`
	Finalized             bool    `json:"finalized"`
	VotingFinalized       bool    `json:"voting_finalized"`
	VotingJustified       bool    `json:"voting_justified"`
	Validators            uint64  `json:"validators"`
	ValidatorBalance      uint64  `json:"validator_balance"`
	EligibleEther         uint64  `json:"eligible_ether"`
	TargetVoted           uint64  `json:"target_voted"`
	HeadVoted             uint64  `json:"head_voted"`
	TotalVoted            uint64  `json:"total_voted"`
	VoteParticipation     float64 `json:"vote_participation"`
	Attestations          uint64  `json:"attestations"`
	Deposits              uint64  `json:"deposits"`
	DepositsAmount        uint64  `json:"deposits_amount"`
	ProposerSlashings     uint64  `json:"proposer_slashings"`
	AttesterSlashings     uint64  `json:"attester_slashings"`
	Exits                 uint64  `json:"exits"`
	WithdrawalsCount      uint64  `json:"withdrawals_count"`
	WithdrawalsAmount     uint64  `json:"withdrawals_amount"`
	BLSChanges            uint64  `json:"bls_changes"`
	SyncParticipation     float64 `json:"sync_participation"`
	ProposedBlocks        uint64  `json:"proposed_blocks"`
	MissedBlocks          uint64  `json:"missed_blocks"`
	OrphanedBlocks        uint64  `json:"orphaned_blocks"`
	ProposedPayloads      uint64  `json:"proposed_payloads"`
	MissedPayloads        uint64  `json:"missed_payloads"`
	MinSyncCommitteeSize  uint64  `json:"min_sync_committee_size,omitempty"`
	MaxSyncCommitteeSize  uint64  `json:"max_sync_committee_size,omitempty"`
	WithdrawalRequests    uint64  `json:"withdrawal_requests,omitempty"`
	ConsolidationRequests uint64  `json:"consolidation_requests,omitempty"`
}

APIEpochInfo represents information about a single epoch

type APIEpochResponseV1

type APIEpochResponseV1 struct {
	Epoch                   uint64 `json:"epoch"`
	Ts                      uint64 `json:"ts"`
	AttestationsCount       uint64 `json:"attestationscount"`
	AttesterSlashingsCount  uint64 `json:"attesterslashingscount"`
	AverageValidatorBalance uint64 `json:"averagevalidatorbalance"`
	BlocksCount             uint64 `json:"blockscount"`
	DepositsCount           uint64 `json:"depositscount"`
	EligibleEther           uint64 `json:"eligibleether"`
	Finalized               bool   `json:"finalized"`
	GlobalParticipationRate uint64 `json:"globalparticipationrate"`
	MissedBlocks            uint64 `json:"missedblocks"`
	OrphanedBlocks          uint64 `json:"orphanedblocks"`
	ProposedBlocks          uint64 `json:"proposedblocks"`
	ProposedPayloads        uint64 `json:"proposedpayloads"`
	MissedPayloads          uint64 `json:"missedpayloads"`
	ProposerSlashingsCount  uint64 `json:"proposerslashingscount"`
	ScheduledBlocks         uint64 `json:"scheduledblocks"`
	TotalValidatorBalance   uint64 `json:"totalvalidatorbalance"`
	ValidatorsCount         uint64 `json:"validatorscount"`
	VoluntaryExitsCount     uint64 `json:"voluntaryexitscount"`
	VotedEther              uint64 `json:"votedether"`
	RewardsExported         uint64 `json:"rewards_exported"`
	WithdrawalCount         uint64 `json:"withdrawalcount"`
}

type APIEpochsData added in v1.19.0

type APIEpochsData struct {
	Epochs         []*APIEpochInfo `json:"epochs"`
	EpochCount     uint64          `json:"epoch_count"`
	FirstEpoch     uint64          `json:"first_epoch"`
	LastEpoch      uint64          `json:"last_epoch"`
	TotalEpochs    uint64          `json:"total_epochs"`
	CurrentEpoch   uint64          `json:"current_epoch"`
	FinalizedEpoch uint64          `json:"finalized_epoch"`
}

APIEpochsData contains the epochs data

type APIEpochsResponse added in v1.19.0

type APIEpochsResponse struct {
	Status string         `json:"status"`
	Data   *APIEpochsData `json:"data"`
}

APIEpochsResponse represents the response structure for epochs list

type APIExecutionClientNodeInfo added in v1.17.0

type APIExecutionClientNodeInfo struct {
	ClientName string    `json:"client_name"`
	NodeID     string    `json:"node_id"`
	Enode      string    `json:"enode"`
	IP         string    `json:"ip"`
	Port       int       `json:"port"`
	Version    string    `json:"version"`
	Status     string    `json:"status"`
	LastUpdate time.Time `json:"last_update"`
}

APIExecutionClientNodeInfo represents the response structure for execution client node info

type APIExecutionClientsResponse added in v1.17.0

type APIExecutionClientsResponse struct {
	Clients []APIExecutionClientNodeInfo `json:"clients"`
	Count   int                          `json:"count"`
}

APIExecutionClientsResponse represents the full API response

type APIFastConfirmationClient added in v1.24.2

type APIFastConfirmationClient struct {
	Index                int        `json:"index"`
	Name                 string     `json:"name"`
	Status               string     `json:"status"`
	FcrEnabled           bool       `json:"fcr_enabled"`
	SafeSlot             uint64     `json:"safe_slot,omitempty"`
	SafeRoot             string     `json:"safe_root,omitempty"`
	LastFastConfirmation *time.Time `json:"last_fast_confirmation,omitempty"`
}

APIFastConfirmationClient represents the fast confirmation status of a single consensus client.

type APIFastConfirmationData added in v1.24.2

type APIFastConfirmationData struct {
	FcrEnabled           bool                         `json:"fcr_enabled"`
	SafeSlot             uint64                       `json:"safe_slot"`
	SafeRoot             string                       `json:"safe_root,omitempty"`
	SafeEpoch            uint64                       `json:"safe_epoch"`
	LastFastConfirmation *time.Time                   `json:"last_fast_confirmation,omitempty"`
	Clients              []*APIFastConfirmationClient `json:"clients"`
	ClientCount          uint64                       `json:"client_count"`
}

APIFastConfirmationData contains the network-wide safe block derived from the fast confirmation rule and the per-client fast confirmation status.

type APIFastConfirmationResponse added in v1.24.2

type APIFastConfirmationResponse struct {
	Status string                   `json:"status"`
	Data   *APIFastConfirmationData `json:"data"`
}

APIFastConfirmationResponse represents the response for the fast confirmation endpoint.

type APIMassNodeResult added in v1.18.0

type APIMassNodeResult struct {
	Success           bool                   `json:"success"`
	Error             string                 `json:"error,omitempty"`
	NodeAlias         string                 `json:"node_alias,omitempty"`
	ValidColumns      [][]bool               `json:"valid_columns,omitempty"`   // Per-slot array of column validity
	TotalColumns      int                    `json:"total_columns"`             // Total number of columns per slot
	SlotResults       map[uint64]*SlotResult `json:"slot_results,omitempty"`    // Slot -> result details
	CustodyGroupCount uint64                 `json:"custody_group_count"`       // CGC from node metadata
	CustodyColumns    []uint64               `json:"custody_columns,omitempty"` // Custody column indices
	EarliestSlot      uint64                 `json:"earliest_slot"`             // Earliest available slot from node status
}

APIMassNodeResult represents the scan result for a single node in mass scan

type APIMevBlockInfo added in v1.19.0

type APIMevBlockInfo struct {
	SlotNumber     uint64                  `json:"slot_number"`
	BlockHash      string                  `json:"block_hash"`
	BlockNumber    uint64                  `json:"block_number"`
	Time           int64                   `json:"time"`
	ValidatorIndex uint64                  `json:"validator_index"`
	ValidatorName  string                  `json:"validator_name,omitempty"`
	BuilderPubkey  string                  `json:"builder_pubkey,omitempty"`
	Proposed       uint8                   `json:"proposed"` // 0=not proposed, 1=proposed, 2=orphaned
	Relays         []*APIMevBlockRelayInfo `json:"relays"`
	FeeRecipient   string                  `json:"fee_recipient"`
	TxCount        uint32                  `json:"tx_count"`
	BlobCount      uint64                  `json:"blob_count"`
	GasUsed        uint64                  `json:"gas_used"`
	BlockValue     uint64                  `json:"block_value_gwei"`
}

APIMevBlockInfo represents information about a single MEV block

type APIMevBlockRelayInfo added in v1.19.0

type APIMevBlockRelayInfo struct {
	RelayId   uint8  `json:"relay_id"`
	RelayName string `json:"relay_name"`
}

APIMevBlockRelayInfo represents information about a MEV relay for a block

type APIMevBlocksData added in v1.19.0

type APIMevBlocksData struct {
	MevBlocks  []*APIMevBlockInfo `json:"mev_blocks"`
	Count      uint64             `json:"count"`
	TotalCount uint64             `json:"total_count"`
}

APIMevBlocksData contains the MEV blocks data

type APIMevBlocksResponse added in v1.19.0

type APIMevBlocksResponse struct {
	Status string            `json:"status"`
	Data   *APIMevBlocksData `json:"data"`
}

APIMevBlocksResponse represents the response structure for MEV blocks list

type APINetworkForkInfo added in v1.19.0

type APINetworkForkInfo struct {
	Name             string  `json:"name"`
	Version          *string `json:"version,omitempty"` // nil for BPO forks
	Epoch            uint64  `json:"epoch"`
	Active           bool    `json:"active"`
	Scheduled        bool    `json:"scheduled"`
	Time             int64   `json:"time,omitempty"`
	Type             string  `json:"type"` // "consensus" or "bpo"
	ForkDigest       string  `json:"fork_digest"`
	MaxBlobsPerBlock *uint64 `json:"max_blobs_per_block,omitempty"` // only for BPO forks
}

APINetworkForkInfo represents information about a single network fork

type APINetworkForksData added in v1.19.0

type APINetworkForksData struct {
	ConfigName     string                `json:"config_name"`
	CurrentEpoch   uint64                `json:"current_epoch"`
	FinalizedEpoch int64                 `json:"finalized_epoch"`
	Forks          []*APINetworkForkInfo `json:"forks"`
	Count          uint64                `json:"count"`
}

APINetworkForksData contains the network forks data

type APINetworkForksResponse added in v1.19.0

type APINetworkForksResponse struct {
	Status string               `json:"status"`
	Data   *APINetworkForksData `json:"data"`
}

APINetworkForksResponse represents the response structure for network forks

type APINetworkInfo added in v1.19.0

type APINetworkInfo struct {
	NetworkName           string `json:"network_name"`
	ConfigName            string `json:"config_name"`
	DepositContract       string `json:"deposit_contract"`
	WithdrawalContract    string `json:"withdrawal_contract"`
	ConsolidationContract string `json:"consolidation_contract"`
	GenesisTime           int64  `json:"genesis_time"`
	GenesisRoot           string `json:"genesis_root"`
	GenesisValidatorsRoot string `json:"genesis_validators_root"`
}

APINetworkInfo contains basic network information

type APINetworkOverviewData added in v1.19.0

type APINetworkOverviewData struct {
	NetworkInfo           *APINetworkInfo            `json:"network_info"`
	CurrentState          *APICurrentState           `json:"current_state"`
	Checkpoints           *APICheckpoints            `json:"checkpoints"`
	ValidatorStats        *APIValidatorStats         `json:"validator_stats"`
	QueueStats            *APIQueueStats             `json:"queue_stats,omitempty"`
	Forks                 []*APINetworkForkInfo      `json:"forks"`
	IsSynced              bool                       `json:"is_synced"`
	CurrentSlot           uint64                     `json:"current_slot"`
	CurrentEpoch          uint64                     `json:"current_epoch"`
	FinalizedEpoch        uint64                     `json:"finalized_epoch"`
	EpochsSinceFinality   uint64                     `json:"epochs_since_finality"`
	Finalizing            bool                       `json:"finalizing"`
	ActiveValidatorCount  uint64                     `json:"active_validator_count"`
	TotalValidatorCount   uint64                     `json:"total_validator_count"`
	PendingValidatorCount uint64                     `json:"pending_validator_count"`
	ExitedValidatorCount  uint64                     `json:"exited_validator_count"`
	DataQualityWarnings   []string                   `json:"data_quality_warnings"`
	Participation         *APINetworkParticipation   `json:"participation,omitempty"`
	RawAggregates         *APINetworkRawAggregates   `json:"raw_aggregates,omitempty"`
	Metadata              APINetworkOverviewMetadata `json:"metadata"`
}

APINetworkOverviewData contains comprehensive network state information

type APINetworkOverviewMetadata added in v1.24.0

type APINetworkOverviewMetadata struct {
	SlotsPerEpoch uint64 `json:"slots_per_epoch"`
}

APINetworkOverviewMetadata contains metadata for interpreting the overview values

type APINetworkOverviewResponse added in v1.19.0

type APINetworkOverviewResponse struct {
	Status string                  `json:"status"`
	Data   *APINetworkOverviewData `json:"data,omitempty"`
}

APINetworkOverviewResponse represents the response structure for network overview

type APINetworkParticipation added in v1.24.0

type APINetworkParticipation struct {
	Rate          *float64 `json:"rate"`
	Source        string   `json:"source"`
	Complete      bool     `json:"complete"`
	IndexedSlots  uint64   `json:"indexed_slots"`
	ExpectedSlots uint64   `json:"expected_slots"`
	Warning       string   `json:"warning,omitempty"`
}

APINetworkParticipation contains provenance-aware participation data

type APINetworkRawAggregates added in v1.24.0

type APINetworkRawAggregates struct {
	GlobalParticipationRate float64 `json:"globalparticipationrate"`
	VoteParticipation       float64 `json:"vote_participation"`
	AttestationsIndexed     uint64  `json:"attestations_indexed"`
	IndexedSlots            uint64  `json:"indexed_slots"`
	ExpectedSlots           uint64  `json:"expected_slots"`
	Source                  string  `json:"source"`
	Complete                bool    `json:"complete"`
}

APINetworkRawAggregates contains raw aggregate values from the epoch vote index

type APINetworkSplitInfo added in v1.19.0

type APINetworkSplitInfo struct {
	ForkId                 string    `json:"fork_id"`
	HeadSlot               uint64    `json:"head_slot"`
	HeadRoot               string    `json:"head_root"`
	HeadBlockHash          string    `json:"head_block_hash,omitempty"`
	HeadExecutionNumber    uint64    `json:"head_execution_number,omitempty"`
	TotalChainWeight       uint64    `json:"total_chain_weight"`
	LastEpochVotes         []uint64  `json:"last_epoch_votes"`
	LastEpochParticipation []float64 `json:"last_epoch_participation"`
	IsCanonical            bool      `json:"is_canonical"`
}

APINetworkSplitInfo represents information about a single network split/fork

type APINetworkSplitsData added in v1.19.0

type APINetworkSplitsData struct {
	CurrentEpoch   uint64                 `json:"current_epoch"`
	CurrentSlot    uint64                 `json:"current_slot"`
	FinalizedEpoch int64                  `json:"finalized_epoch"`
	FinalizedRoot  string                 `json:"finalized_root"`
	Splits         []*APINetworkSplitInfo `json:"splits"`
}

APINetworkSplitsData contains information about active network forks/splits

type APINetworkSplitsResponse added in v1.19.0

type APINetworkSplitsResponse struct {
	Status string                `json:"status"`
	Data   *APINetworkSplitsData `json:"data"`
}

APINetworkSplitsResponse represents the response structure for network splits

type APIQueueStats added in v1.19.0

type APIQueueStats struct {
	EnteringValidatorCount        uint64 `json:"entering_validator_count"`
	ExitingValidatorCount         uint64 `json:"exiting_validator_count"`
	EnteringEtherAmount           uint64 `json:"entering_ether_amount"`
	EtherChurnPerDay              uint64 `json:"ether_churn_per_day"`
	DepositEstimatedTimeToProcess uint64 `json:"deposit_estimated_time"`
	ExitEstimatedTimeToProcess    uint64 `json:"exit_estimated_time"`
}

APIQueueStats contains queue statistics (Electra era)

type APISlashingInfo added in v1.19.0

type APISlashingInfo struct {
	SlotNumber             uint64 `json:"slot_number"`
	SlotRoot               string `json:"slot_root"`
	Time                   int64  `json:"time"`
	Orphaned               bool   `json:"orphaned"`
	Reason                 uint8  `json:"reason"`
	ValidatorIndex         uint64 `json:"validator_index"`
	ValidatorName          string `json:"validator_name,omitempty"`
	ValidatorStatus        string `json:"validator_status"`
	ValidatorBalance       uint64 `json:"validator_balance,omitempty"`
	SlasherIndex           uint64 `json:"slasher_index"`
	SlasherName            string `json:"slasher_name,omitempty"`
	ValidatorLiveness      uint8  `json:"validator_liveness,omitempty"`
	ValidatorLivenessTotal uint8  `json:"validator_liveness_total,omitempty"`
}

APISlashingInfo represents information about a single slashing

type APISlashingsData added in v1.19.0

type APISlashingsData struct {
	Slashings  []*APISlashingInfo `json:"slashings"`
	Count      uint64             `json:"count"`
	TotalCount uint64             `json:"total_count"`
	PageIndex  uint64             `json:"page_index"`
	TotalPages uint64             `json:"total_pages"`
}

APISlashingsData contains the slashings data

type APISlashingsResponse added in v1.19.0

type APISlashingsResponse struct {
	Status string            `json:"status"`
	Data   *APISlashingsData `json:"data"`
}

APISlashingsResponse represents the response structure for slashings list

type APISlotBid added in v1.22.6

type APISlotBid struct {
	ParentRoot   string `json:"parent_root"`
	ParentHash   string `json:"parent_hash"`
	BlockHash    string `json:"block_hash"`
	FeeRecipient string `json:"fee_recipient"`
	GasLimit     uint64 `json:"gas_limit"`
	BuilderIndex uint64 `json:"builder_index"`
	BuilderName  string `json:"builder_name,omitempty"`
	IsSelfBuilt  bool   `json:"is_self_built"`
	Slot         uint64 `json:"slot"`
	Value        uint64 `json:"value"`
	ElPayment    uint64 `json:"el_payment"`
	TotalValue   uint64 `json:"total_value"`
	IsWinning    bool   `json:"is_winning"`

	// Bid target classification relative to the slot's actual block parent chain.
	// ParentClass: "parent" (targets the block's actual beacon parent), "reorg" (targets a
	// deeper ancestor, orphaning ReorgDepth blocks), "orphaned" (targets a block outside
	// the block's chain), "unknown" (parent root not resolvable).
	ParentClass string `json:"parent_class"`
	// ParentFull: the bid builds on the targeted block's own payload (full) rather than an
	// earlier payload (empty).
	ParentFull bool   `json:"parent_full"`
	ReorgDepth uint64 `json:"reorg_depth,omitempty"`
	// ParentSlot is the slot of the targeted beacon parent block (0 if unknown).
	ParentSlot uint64 `json:"parent_slot,omitempty"`
	// ElParentSlot is the slot whose payload block hash matches the bid's parent hash,
	// i.e. the EL head the bid builds on (omitted if not resolvable).
	ElParentSlot *uint64 `json:"el_parent_slot,omitempty"`
	// ElParentUnrevealed: the bid's parent hash matches a committed payload hash that was
	// never revealed - such a bid can never become valid.
	ElParentUnrevealed bool `json:"el_parent_unrevealed,omitempty"`
	// CandidateKey is the buildoor-style candidate identifier (parent_full, parent_empty,
	// grandparent_full, grandparent_empty, ancestor-N_full/-empty); empty for orphaned-fork
	// and unknown-parent bids.
	CandidateKey string `json:"candidate_key,omitempty"`

	// Gossip visibility: SeenCount of SeenTotal connected clients observed the bid
	// on gossip. SeenTotal 0 = no observation data available for this bid.
	// Per-client details are served by the /slot/{slotOrHash}/bidseen page endpoint.
	SeenCount uint32 `json:"seen_count"`
	SeenTotal uint32 `json:"seen_total"`
}

APISlotBid represents a single execution payload bid (ePBS, EIP-7732)

type APISlotBidsData added in v1.22.6

type APISlotBidsData struct {
	Slot      uint64        `json:"slot"`
	BlockRoot string        `json:"block_root"`
	Count     uint64        `json:"count"`
	Bids      []*APISlotBid `json:"bids"`
}

APISlotBidsData represents the bids data for a slot

type APISlotBidsResponse added in v1.22.6

type APISlotBidsResponse struct {
	Status string           `json:"status"`
	Data   *APISlotBidsData `json:"data"`
}

APISlotBidsResponse represents the response for the slot bids endpoint

type APISlotBlockAccessListBalance added in v1.22.6

type APISlotBlockAccessListBalance struct {
	BlockAccessIndex uint16 `json:"block_access_index"`
	Balance          string `json:"balance"`
}

APISlotBlockAccessListBalance is a per-tx balance update for an account.

type APISlotBlockAccessListCode added in v1.22.6

type APISlotBlockAccessListCode struct {
	BlockAccessIndex uint16 `json:"block_access_index"`
	Code             string `json:"code"`
}

APISlotBlockAccessListCode is a per-tx code update for an account.

type APISlotBlockAccessListData added in v1.22.6

type APISlotBlockAccessListData struct {
	Slot      uint64                         `json:"slot"`
	BlockRoot string                         `json:"block_root"`
	Count     uint64                         `json:"count"`
	Accesses  []*APISlotBlockAccessListEntry `json:"accesses"`
}

APISlotBlockAccessListData represents the EIP-7928 block access list for a slot

type APISlotBlockAccessListEntry added in v1.22.6

type APISlotBlockAccessListEntry struct {
	Address        string                                `json:"address"`
	StorageChanges []*APISlotBlockAccessListStorageGroup `json:"storage_changes,omitempty"`
	StorageReads   []string                              `json:"storage_reads,omitempty"`
	BalanceChanges []*APISlotBlockAccessListBalance      `json:"balance_changes,omitempty"`
	NonceChanges   []*APISlotBlockAccessListNonce        `json:"nonce_changes,omitempty"`
	CodeChanges    []*APISlotBlockAccessListCode         `json:"code_changes,omitempty"`
}

APISlotBlockAccessListEntry is the per-account section of the BAL.

type APISlotBlockAccessListNonce added in v1.22.6

type APISlotBlockAccessListNonce struct {
	BlockAccessIndex uint16 `json:"block_access_index"`
	Nonce            uint64 `json:"nonce"`
}

APISlotBlockAccessListNonce is a per-tx nonce update for an account.

type APISlotBlockAccessListResponse added in v1.22.6

type APISlotBlockAccessListResponse struct {
	Status string                      `json:"status"`
	Data   *APISlotBlockAccessListData `json:"data"`
}

APISlotBlockAccessListResponse represents the response for the slot BAL endpoint

type APISlotBlockAccessListStorage added in v1.22.6

type APISlotBlockAccessListStorage struct {
	BlockAccessIndex uint16 `json:"block_access_index"`
	Value            string `json:"value"`
}

APISlotBlockAccessListStorage is a single storage write within a slot group.

type APISlotBlockAccessListStorageGroup added in v1.22.6

type APISlotBlockAccessListStorageGroup struct {
	Slot    string                           `json:"slot"`
	Changes []*APISlotBlockAccessListStorage `json:"changes"`
}

APISlotBlockAccessListStorageGroup groups the writes for a single storage slot.

type APISlotCommitteeInfo added in v1.24.4

type APISlotCommitteeInfo struct {
	Index      uint64   `json:"index"`
	Validators []uint64 `json:"validators"`
}

APISlotCommitteeInfo represents a single attester committee of a slot. Validators are global validator indices in committee order.

type APISlotCommitteesData added in v1.24.4

type APISlotCommitteesData struct {
	Slot       uint64                  `json:"slot"`
	Epoch      uint64                  `json:"epoch"`
	Committees []*APISlotCommitteeInfo `json:"committees"`
}

APISlotCommitteesData contains the attester committees of a single slot

type APISlotCommitteesResponse added in v1.24.4

type APISlotCommitteesResponse struct {
	Status string                 `json:"status"`
	Data   *APISlotCommitteesData `json:"data"`
}

APISlotCommitteesResponse represents the response structure for slot committees

type APISlotData added in v1.18.0

type APISlotData struct {
	AttestationsCount          uint64  `json:"attestationscount"`
	AttesterSlashingsCount     uint64  `json:"attesterslashingscount"`
	BlockRoot                  string  `json:"blockroot"`
	DepositsCount              uint64  `json:"depositscount"`
	Epoch                      uint64  `json:"epoch"`
	ExecBaseFeePerGas          uint64  `json:"exec_base_fee_per_gas"`
	ExecBlockHash              string  `json:"exec_block_hash"`
	ExecBlockNumber            uint64  `json:"exec_block_number"`
	ExecExtraData              string  `json:"exec_extra_data"`
	ExecFeeRecipient           string  `json:"exec_fee_recipient"`
	ExecGasLimit               uint64  `json:"exec_gas_limit"`
	ExecGasUsed                uint64  `json:"exec_gas_used"`
	ExecTransactionsCount      uint64  `json:"exec_transactions_count"`
	Graffiti                   string  `json:"graffiti"`
	GraffitiText               string  `json:"graffiti_text"`
	ParentRoot                 string  `json:"parentroot"`
	Proposer                   uint64  `json:"proposer"`
	ProposerSlashingsCount     uint64  `json:"proposerslashingscount"`
	Slot                       uint64  `json:"slot"`
	StateRoot                  string  `json:"stateroot"`
	Status                     string  `json:"status"`
	SyncAggregateParticipation float64 `json:"syncaggregate_participation"`
	VoluntaryExitsCount        uint64  `json:"voluntaryexitscount"`
	WithdrawalCount            uint64  `json:"withdrawalcount"`
	BlobCount                  uint64  `json:"blob_count"`
}

APISlotData represents detailed slot information

type APISlotInclusionList added in v1.22.6

type APISlotInclusionList struct {
	ValidatorIndex             uint64                             `json:"validator_index"`
	ValidatorName              string                             `json:"validator_name,omitempty"`
	InclusionListCommitteeRoot string                             `json:"inclusion_list_committee_root"`
	Signature                  string                             `json:"signature"`
	TransactionsCount          uint64                             `json:"transactions_count"`
	Transactions               []*APISlotInclusionListTransaction `json:"transactions"`
}

APISlotInclusionList is a single signed inclusion list (EIP-7805).

type APISlotInclusionListTransaction added in v1.22.6

type APISlotInclusionListTransaction struct {
	Index      uint64 `json:"index"`
	Hash       string `json:"hash"`
	From       string `json:"from,omitempty"`
	To         string `json:"to,omitempty"`
	Value      string `json:"value,omitempty"`
	Nonce      uint64 `json:"nonce"`
	GasLimit   uint64 `json:"gas_limit"`
	Type       uint8  `json:"type"`
	DataLen    uint64 `json:"data_len"`
	IsIncluded bool   `json:"is_included"`
	DecodeErr  string `json:"decode_error,omitempty"`
}

APISlotInclusionListTransaction describes one transaction in an inclusion list.

type APISlotInclusionListsData added in v1.22.6

type APISlotInclusionListsData struct {
	Slot           uint64                  `json:"slot"`
	BlockRoot      string                  `json:"block_root"`
	Count          uint64                  `json:"count"`
	InclusionLists []*APISlotInclusionList `json:"inclusion_lists"`
}

APISlotInclusionListsData groups the EIP-7805 inclusion lists for a slot.

type APISlotInclusionListsResponse added in v1.22.6

type APISlotInclusionListsResponse struct {
	Status string                     `json:"status"`
	Data   *APISlotInclusionListsData `json:"data"`
}

APISlotInclusionListsResponse represents the response for the slot inclusion lists endpoint.

type APISlotListItem added in v1.19.0

type APISlotListItem struct {
	Slot                       uint64                       `json:"slot"`
	Epoch                      uint64                       `json:"epoch"`
	Time                       time.Time                    `json:"time"`
	Finalized                  bool                         `json:"finalized"`
	Scheduled                  bool                         `json:"scheduled"`
	Status                     string                       `json:"status"`
	Proposer                   uint64                       `json:"proposer"`
	ProposerName               string                       `json:"proposer_name"`
	AttestationCount           uint64                       `json:"attestation_count"`
	DepositCount               uint64                       `json:"deposit_count"`
	ExitCount                  uint64                       `json:"exit_count"`
	ProposerSlashingCount      uint64                       `json:"proposer_slashing_count"`
	AttesterSlashingCount      uint64                       `json:"attester_slashing_count"`
	SyncAggregateParticipation float64                      `json:"sync_aggregate_participation"`
	EthTransactionCount        uint64                       `json:"eth_transaction_count"`
	BlobCount                  uint64                       `json:"blob_count"`
	WithEthBlock               bool                         `json:"with_eth_block"`
	EthBlockNumber             *uint64                      `json:"eth_block_number,omitempty"`
	Graffiti                   string                       `json:"graffiti"`
	GraffitiText               string                       `json:"graffiti_text"`
	ElExtraData                string                       `json:"el_extra_data"`
	GasUsed                    uint64                       `json:"gas_used"`
	GasLimit                   uint64                       `json:"gas_limit"`
	BlockSize                  uint64                       `json:"block_size"`
	BlockRoot                  string                       `json:"block_root"`
	ParentRoot                 string                       `json:"parent_root"`
	StateRoot                  string                       `json:"state_root"`
	RecvDelay                  *int32                       `json:"recv_delay,omitempty"`
	MinExecTime                *uint32                      `json:"min_exec_time,omitempty"`
	MaxExecTime                *uint32                      `json:"max_exec_time,omitempty"`
	AvgExecTime                *uint32                      `json:"avg_exec_time,omitempty"`
	ExecutionTimes             []models.ExecutionTimeDetail `json:"execution_times,omitempty"`
	IsMevBlock                 bool                         `json:"is_mev_block"`
	MevBlockRelays             string                       `json:"mev_block_relays,omitempty"`
}

APISlotListItem represents a single slot in the list

type APISlotPayloadHeaderData added in v1.22.6

type APISlotPayloadHeaderData struct {
	Slot               uint64   `json:"slot"`
	BlockRoot          string   `json:"block_root"`
	HasPayloadHeader   bool     `json:"has_payload_header"`
	PayloadStatus      uint16   `json:"payload_status"`
	PayloadStatusName  string   `json:"payload_status_name"`
	ParentBlockHash    string   `json:"parent_block_hash,omitempty"`
	ParentBlockRoot    string   `json:"parent_block_root,omitempty"`
	BlockHash          string   `json:"block_hash,omitempty"`
	GasLimit           uint64   `json:"gas_limit,omitempty"`
	BuilderIndex       uint64   `json:"builder_index"`
	BuilderName        string   `json:"builder_name,omitempty"`
	IsSelfBuilt        bool     `json:"is_self_built"`
	Value              uint64   `json:"value,omitempty"`
	BlobKZGCommitments []string `json:"blob_kzg_commitments,omitempty"`
	Signature          string   `json:"signature,omitempty"`
}

APISlotPayloadHeaderData wraps the gloas signed execution payload bid (header).

type APISlotPayloadHeaderResponse added in v1.22.6

type APISlotPayloadHeaderResponse struct {
	Status string                    `json:"status"`
	Data   *APISlotPayloadHeaderData `json:"data"`
}

APISlotPayloadHeaderResponse represents the response for the slot payload header endpoint.

type APISlotPtcAggregate added in v1.22.6

type APISlotPtcAggregate struct {
	PayloadPresent    bool                  `json:"payload_present"`
	BlobDataAvailable bool                  `json:"blob_data_available"`
	AggregationBits   string                `json:"aggregation_bits"`
	Signature         string                `json:"signature"`
	VoteCount         uint64                `json:"vote_count"`
	VotePercent       float64               `json:"vote_percent"`
	Validators        []APISlotPtcValidator `json:"validators"`
}

APISlotPtcAggregate represents a single PTC payload-attestation aggregate.

type APISlotPtcValidator added in v1.22.6

type APISlotPtcValidator struct {
	Index uint64 `json:"index"`
	Name  string `json:"name,omitempty"`
}

APISlotPtcValidator is a named validator entry.

type APISlotPtcVotesData added in v1.22.6

type APISlotPtcVotesData struct {
	Slot            uint64                 `json:"slot"`
	BlockRoot       string                 `json:"block_root"`
	VotedSlot       uint64                 `json:"voted_slot"`
	VotedBlockRoot  string                 `json:"voted_block_root,omitempty"`
	TotalPtcSize    uint64                 `json:"total_ptc_size"`
	VoteCount       uint64                 `json:"vote_count"`
	NonVoterCount   uint64                 `json:"non_voter_count"`
	NonVoterPercent float64                `json:"non_voter_percent"`
	Participation   float64                `json:"participation"`
	Aggregates      []*APISlotPtcAggregate `json:"aggregates"`
	NonVoters       []APISlotPtcValidator  `json:"non_voters"`
}

APISlotPtcVotesData represents the PTC vote summary for a slot.

type APISlotPtcVotesResponse added in v1.22.6

type APISlotPtcVotesResponse struct {
	Status string               `json:"status"`
	Data   *APISlotPtcVotesData `json:"data"`
}

APISlotPtcVotesResponse represents the response for the slot PTC votes endpoint.

type APISlotResponse added in v1.18.0

type APISlotResponse struct {
	Status string       `json:"status"`
	Data   *APISlotData `json:"data"`
}

APISlotResponse represents the response for slot information

type APISlotsData added in v1.19.0

type APISlotsData struct {
	Slots      []*APISlotListItem `json:"slots"`
	TotalCount int                `json:"total_count"`
	Page       uint64             `json:"page"`
	NextPage   *uint64            `json:"next_page,omitempty"`
	NextSlot   *uint64            `json:"next_slot,omitempty"` // Use with max_slot for cursor-based pagination
}

APISlotsData represents the slots list data

type APISlotsResponse added in v1.19.0

type APISlotsResponse struct {
	Status string        `json:"status"`
	Data   *APISlotsData `json:"data"`
}

APISlotsResponse represents the response for slots list endpoint

type APIValidatorActivityGroup added in v1.19.0

type APIValidatorActivityGroup struct {
	Group      string `json:"group"`
	Validators uint64 `json:"validators"`
	Activated  uint64 `json:"activated"`
	Online     uint64 `json:"online"`
	Offline    uint64 `json:"offline"`
	Exited     uint64 `json:"exited"`
	Slashed    uint64 `json:"slashed"`
}

APIValidatorActivityGroup represents a group of validators with their activity statistics

type APIValidatorInfo added in v1.19.0

type APIValidatorInfo struct {
	Index                uint64 `json:"index"`
	Name                 string `json:"name,omitempty"`
	PublicKey            string `json:"public_key"`
	Balance              uint64 `json:"balance"`
	EffectiveBalance     uint64 `json:"effective_balance"`
	Status               string `json:"status"`
	ActivationEpoch      uint64 `json:"activation_epoch,omitempty"`
	ActivationTime       int64  `json:"activation_time,omitempty"`
	ExitEpoch            uint64 `json:"exit_epoch,omitempty"`
	ExitTime             int64  `json:"exit_time,omitempty"`
	Slashed              bool   `json:"slashed"`
	WithdrawableEpoch    uint64 `json:"withdrawable_epoch"`
	WithdrawalAddress    string `json:"withdrawal_address,omitempty"`
	WithdrawalCreds      string `json:"withdrawal_credentials"`
	ValidatorLiveness    uint8  `json:"validator_liveness,omitempty"`
	ValidatorLivenessMax uint8  `json:"validator_liveness_max,omitempty"`
}

APIValidatorInfo represents information about a single validator

type APIValidatorNameInfo added in v1.19.0

type APIValidatorNameInfo struct {
	Index     uint64 `json:"index"`
	Name      string `json:"name,omitempty"`
	PublicKey string `json:"public_key"`
	Found     bool   `json:"found"`
}

APIValidatorNameInfo represents information about a single validator name lookup

type APIValidatorNamesData added in v1.19.0

type APIValidatorNamesData struct {
	ValidatorNames []*APIValidatorNameInfo `json:"validator_names"`
	Count          uint64                  `json:"count"`
}

APIValidatorNamesData contains the validator names data

type APIValidatorNamesRequest added in v1.19.0

type APIValidatorNamesRequest struct {
	Indices []uint64 `json:"indices,omitempty"`
	Pubkeys []string `json:"pubkeys,omitempty"`
}

APIValidatorNamesRequest represents the request body for POST requests

type APIValidatorNamesResponse added in v1.19.0

type APIValidatorNamesResponse struct {
	Status string                 `json:"status"`
	Data   *APIValidatorNamesData `json:"data"`
}

APIValidatorNamesResponse represents the response structure for validator names lookup

type APIValidatorStats added in v1.19.0

type APIValidatorStats struct {
	TotalBalance         uint64 `json:"total_balance"`
	TotalActiveBalance   uint64 `json:"total_active_balance"`
	ActiveValidatorCount uint64 `json:"active_validator_count"`
	AverageBalance       uint64 `json:"average_balance"`
	TotalEligibleEther   uint64 `json:"total_eligible_ether"`
}

APIValidatorStats contains validator statistics

type APIValidatorStatusInfo added in v1.24.4

type APIValidatorStatusInfo struct {
	Index             uint64 `json:"index"`
	Status            string `json:"status"`
	Slashed           bool   `json:"slashed"`
	ActivationEpoch   uint64 `json:"activation_epoch"`
	ExitEpoch         uint64 `json:"exit_epoch"`
	WithdrawableEpoch uint64 `json:"withdrawable_epoch"`
	EffectiveBalance  uint64 `json:"effective_balance"`
}

APIValidatorStatusInfo represents the status of a single validator. Unknown validator indices are omitted from the response.

type APIValidatorsActivityData added in v1.19.0

type APIValidatorsActivityData struct {
	Groups         []*APIValidatorActivityGroup `json:"groups"`
	GroupCount     uint64                       `json:"group_count"`
	TotalGroups    uint64                       `json:"total_groups"`
	PageIndex      uint64                       `json:"page_index"`
	TotalPages     uint64                       `json:"total_pages"`
	FirstGroup     uint64                       `json:"first_group"`
	LastGroup      uint64                       `json:"last_group"`
	CurrentEpoch   uint64                       `json:"current_epoch"`
	FinalizedEpoch uint64                       `json:"finalized_epoch"`

	// Filter and grouping options
	GroupBy    uint64 `json:"group_by"`
	SearchTerm string `json:"search_term,omitempty"`
	Sorting    string `json:"sorting"`
}

APIValidatorsActivityData contains the validators activity data

type APIValidatorsActivityResponse added in v1.19.0

type APIValidatorsActivityResponse struct {
	Status string                     `json:"status"`
	Data   *APIValidatorsActivityData `json:"data"`
}

APIValidatorsActivityResponse represents the response structure for validators activity

type APIValidatorsData added in v1.19.0

type APIValidatorsData struct {
	Validators     []*APIValidatorInfo `json:"validators"`
	Count          uint64              `json:"count"`
	TotalCount     uint64              `json:"total_count"`
	PageIndex      uint64              `json:"page_index"`
	TotalPages     uint64              `json:"total_pages"`
	FirstValidator uint64              `json:"first_validator"`
	LastValidator  uint64              `json:"last_validator"`
	CurrentEpoch   uint64              `json:"current_epoch"`
	FinalizedEpoch uint64              `json:"finalized_epoch"`
}

APIValidatorsData contains the validators data

type APIValidatorsResponse added in v1.19.0

type APIValidatorsResponse struct {
	Status string             `json:"status"`
	Data   *APIValidatorsData `json:"data"`
}

APIValidatorsResponse represents the response structure for validators list

type APIValidatorsStatusData added in v1.24.4

type APIValidatorsStatusData struct {
	Validators []*APIValidatorStatusInfo `json:"validators"`
	Count      uint64                    `json:"count"`
}

APIValidatorsStatusData contains the validator status data

type APIValidatorsStatusRequest added in v1.24.4

type APIValidatorsStatusRequest struct {
	Indices []uint64 `json:"indices"`
}

APIValidatorsStatusRequest represents the request body for POST requests

type APIValidatorsStatusResponse added in v1.24.4

type APIValidatorsStatusResponse struct {
	Status string                   `json:"status"`
	Data   *APIValidatorsStatusData `json:"data"`
}

APIValidatorsStatusResponse represents the response structure for bulk validator status lookup

type APIVoluntaryExitInfo added in v1.19.0

type APIVoluntaryExitInfo struct {
	SlotNumber             uint64 `json:"slot_number"`
	SlotRoot               string `json:"slot_root"`
	Time                   int64  `json:"time"`
	Orphaned               bool   `json:"orphaned"`
	ValidatorIndex         uint64 `json:"validator_index"`
	ValidatorName          string `json:"validator_name,omitempty"`
	ValidatorStatus        string `json:"validator_status"`
	ValidatorBalance       uint64 `json:"validator_balance,omitempty"`
	PublicKey              string `json:"public_key,omitempty"`
	WithdrawalCredentials  string `json:"withdrawal_credentials,omitempty"`
	ValidatorLiveness      uint8  `json:"validator_liveness,omitempty"`
	ValidatorLivenessTotal uint8  `json:"validator_liveness_total,omitempty"`
}

APIVoluntaryExitInfo represents information about a single voluntary exit

type APIVoluntaryExitsData added in v1.19.0

type APIVoluntaryExitsData struct {
	VoluntaryExits []*APIVoluntaryExitInfo `json:"voluntary_exits"`
	Count          uint64                  `json:"count"`
	TotalCount     uint64                  `json:"total_count"`
	PageIndex      uint64                  `json:"page_index"`
	TotalPages     uint64                  `json:"total_pages"`
}

APIVoluntaryExitsData contains the voluntary exits data

type APIVoluntaryExitsResponse added in v1.19.0

type APIVoluntaryExitsResponse struct {
	Status string                 `json:"status"`
	Data   *APIVoluntaryExitsData `json:"data"`
}

APIVoluntaryExitsResponse represents the response structure for voluntary exits list

type APIWithdrawalRequestInfo added in v1.19.0

type APIWithdrawalRequestInfo struct {
	SourceAddress      string                         `json:"source_address"`
	Amount             uint64                         `json:"amount"`
	PublicKey          string                         `json:"public_key"`
	ValidatorIndex     uint64                         `json:"validator_index,omitempty"`
	ValidatorName      string                         `json:"validator_name,omitempty"`
	ValidatorValid     bool                           `json:"validator_valid"`
	IsIncluded         bool                           `json:"is_included"`
	SlotNumber         uint64                         `json:"slot_number,omitempty"`
	SlotRoot           string                         `json:"slot_root,omitempty"`
	Time               int64                          `json:"time,omitempty"`
	Status             uint64                         `json:"status"` // 0=pending, 1=included, 2=orphaned
	Result             uint8                          `json:"result,omitempty"`
	ResultMessage      string                         `json:"result_message,omitempty"`
	TxStatus           uint64                         `json:"tx_status"` // 0=pending, 1=confirmed, 2=orphaned
	TransactionHash    string                         `json:"transaction_hash,omitempty"`
	TransactionDetails *APIWithdrawalRequestTxDetails `json:"transaction_details,omitempty"`
}

APIWithdrawalRequestInfo represents information about a single withdrawal request

type APIWithdrawalRequestTxDetails added in v1.19.0

type APIWithdrawalRequestTxDetails struct {
	BlockNumber uint64 `json:"block_number"`
	BlockHash   string `json:"block_hash"`
	BlockTime   int64  `json:"block_time"`
	TxOrigin    string `json:"tx_origin"`
	TxTarget    string `json:"tx_target"`
	TxHash      string `json:"tx_hash"`
}

APIWithdrawalRequestTxDetails represents transaction details for a withdrawal request

type APIWithdrawalRequestsData added in v1.19.0

type APIWithdrawalRequestsData struct {
	WithdrawalRequests []*APIWithdrawalRequestInfo `json:"withdrawal_requests"`
	Count              uint64                      `json:"count"`
	TotalRequests      uint64                      `json:"total_requests"`
	TotalPending       uint64                      `json:"total_pending"`
}

APIWithdrawalRequestsData contains the withdrawal requests data

type APIWithdrawalRequestsResponse added in v1.19.0

type APIWithdrawalRequestsResponse struct {
	Status string                     `json:"status"`
	Data   *APIWithdrawalRequestsData `json:"data"`
}

APIWithdrawalRequestsResponse represents the response structure for withdrawal requests list

type ApiResponse

type ApiResponse struct {
	Status string      `json:"status"`
	Data   interface{} `json:"data"`
}

type ApiValidatorDepositsResponseV1 added in v1.16.0

type ApiValidatorDepositsResponseV1 struct {
	Amount                uint64 `json:"amount"`
	BlockNumber           uint64 `json:"block_number"`
	BlockTS               uint64 `json:"block_ts"`
	FromAddress           string `json:"from_address"`
	MerkleTreeIndex       string `json:"merkletree_index"`
	PublicKey             string `json:"publickey"`
	Removed               bool   `json:"removed"`
	Signature             string `json:"signature"`
	TxHash                string `json:"tx_hash"`
	TxIndex               uint64 `json:"tx_index"`
	TxInput               string `json:"tx_input"`
	ValidSignature        bool   `json:"valid_signature"`
	WithdrawalCredentials string `json:"withdrawal_credentials"`
}

type ApiValidatorEth1ResponseV1

type ApiValidatorEth1ResponseV1 struct {
	PublicKey      string `json:"public_key"`
	ValidSignature bool   `json:"valid_signature"`
	ValidatorIndex uint64 `json:"validator_index"`
}

type ApiValidatorRequestV1 added in v1.17.0

type ApiValidatorRequestV1 struct {
	IndicesOrPubKey string `json:"indicesOrPubkey"`
}

type ApiValidatorResponseV1

type ApiValidatorResponseV1 struct {
	Activationeligibilityepoch uint64 `json:"activationeligibilityepoch"`
	Activationepoch            uint64 `json:"activationepoch"`
	Balance                    uint64 `json:"balance"`
	Effectivebalance           uint64 `json:"effectivebalance"`
	Exitepoch                  uint64 `json:"exitepoch"`
	Isonline                   bool   `json:"isonline"`
	Name                       string `json:"name"`
	Pubkey                     string `json:"pubkey"`
	Slashed                    bool   `json:"slashed"`
	Status                     string `json:"status"`
	Validatorindex             uint64 `json:"validatorindex"`
	Withdrawableepoch          uint64 `json:"withdrawableepoch"`
	Withdrawalcredentials      string `json:"withdrawalcredentials"`
}

type ApiWithdrawalCredentialsResponseV1

type ApiWithdrawalCredentialsResponseV1 struct {
	PublicKey      string `json:"publickey"`
	ValidatorIndex uint64 `json:"validatorindex"`
}

type IndexerBeacon added in v1.19.0

type IndexerBeacon interface {
	GetChainHeads() []*beacon.ChainHead
	GetBlocksByForkId(forkId beacon.ForkKey) []*beacon.Block
}

Helper function to get IndexerBeacon interface methods we need

type SlotResult added in v1.18.0

type SlotResult struct {
	ValidColumnCount int    `json:"valid_column_count"`
	TotalColumns     int    `json:"total_columns"`
	Error            string `json:"error,omitempty"`
}

SlotResult represents the scan result for a single slot

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL