Documentation
¶
Index ¶
- func APIConsensusClients(w http.ResponseWriter, r *http.Request)
- func APIConsolidationRequestsV1(w http.ResponseWriter, r *http.Request)
- func APIDasGuardianMassScan(w http.ResponseWriter, r *http.Request)
- func APIDasGuardianScan(w http.ResponseWriter, r *http.Request)
- func APIDepositsIncludedV1(w http.ResponseWriter, r *http.Request)
- func APIDepositsQueueV1(w http.ResponseWriter, r *http.Request)
- func APIDepositsTransactionsV1(w http.ResponseWriter, r *http.Request)
- func APIEpochsV1(w http.ResponseWriter, r *http.Request)
- func APIExecutionClients(w http.ResponseWriter, r *http.Request)
- func APIMevBlocksV1(w http.ResponseWriter, r *http.Request)
- func APINetworkForksV1(w http.ResponseWriter, r *http.Request)
- func APINetworkOverviewV1(w http.ResponseWriter, r *http.Request)
- func APINetworkSplitsV1(w http.ResponseWriter, r *http.Request)
- func APISlashingsV1(w http.ResponseWriter, r *http.Request)
- func APISlotV1(w http.ResponseWriter, r *http.Request)
- func APISlotsV1(w http.ResponseWriter, r *http.Request)
- func APIValidatorNamesV1(w http.ResponseWriter, r *http.Request)
- func APIValidatorsActivityV1(w http.ResponseWriter, r *http.Request)
- func APIValidatorsV1(w http.ResponseWriter, r *http.Request)
- func APIVoluntaryExitsV1(w http.ResponseWriter, r *http.Request)
- func APIWithdrawalRequestsV1(w http.ResponseWriter, r *http.Request)
- func ApiEpochV1(w http.ResponseWriter, r *http.Request)
- func ApiValidatorByEth1AddressV1(w http.ResponseWriter, r *http.Request)
- func ApiValidatorDepositsV1(w http.ResponseWriter, r *http.Request)
- func ApiValidatorGetV1(w http.ResponseWriter, r *http.Request)
- func ApiValidatorPostV1(w http.ResponseWriter, r *http.Request)
- func ApiWithdrawalCredentialsValidatorsV1(w http.ResponseWriter, r *http.Request)
- func SendOKResponse(j *json.Encoder, route string, data []interface{})
- type APICheckpoints
- type APIConsensusClientMetadata
- type APIConsensusClientNodeInfo
- type APIConsensusClientsResponse
- type APIConsolidationRequestInfo
- type APIConsolidationRequestTxDetails
- type APIConsolidationRequestsData
- type APIConsolidationRequestsResponse
- type APICurrentState
- type APIDasGuardianEvalResult
- type APIDasGuardianMassScanRequest
- type APIDasGuardianMassScanResponse
- type APIDasGuardianMetadata
- type APIDasGuardianScanRequest
- type APIDasGuardianScanResponse
- type APIDasGuardianScanResult
- type APIDasGuardianStatus
- type APIDepositIncludedInfo
- type APIDepositQueueInfo
- type APIDepositTransactionInfo
- type APIDepositsIncludedData
- type APIDepositsIncludedResponse
- type APIDepositsQueueData
- type APIDepositsQueueResponse
- type APIDepositsTransactionsData
- type APIDepositsTransactionsResponse
- type APIEpochInfo
- type APIEpochResponseV1
- type APIEpochsData
- type APIEpochsResponse
- type APIExecutionClientNodeInfo
- type APIExecutionClientsResponse
- type APIMassNodeResult
- type APIMevBlockInfo
- type APIMevBlockRelayInfo
- type APIMevBlocksData
- type APIMevBlocksResponse
- type APINetworkForkInfo
- type APINetworkForksData
- type APINetworkForksResponse
- type APINetworkInfo
- type APINetworkOverviewData
- type APINetworkOverviewResponse
- type APINetworkSplitInfo
- type APINetworkSplitsData
- type APINetworkSplitsResponse
- type APIQueueStats
- type APISlashingInfo
- type APISlashingsData
- type APISlashingsResponse
- type APISlotData
- type APISlotListItem
- type APISlotResponse
- type APISlotsData
- type APISlotsResponse
- type APIValidatorActivityGroup
- type APIValidatorInfo
- type APIValidatorNameInfo
- type APIValidatorNamesData
- type APIValidatorNamesRequest
- type APIValidatorNamesResponse
- type APIValidatorStats
- type APIValidatorsActivityData
- type APIValidatorsActivityResponse
- type APIValidatorsData
- type APIValidatorsResponse
- type APIVoluntaryExitInfo
- type APIVoluntaryExitsData
- type APIVoluntaryExitsResponse
- type APIWithdrawalRequestInfo
- type APIWithdrawalRequestTxDetails
- type APIWithdrawalRequestsData
- type APIWithdrawalRequestsResponse
- type ApiResponse
- type ApiValidatorDepositsResponseV1
- type ApiValidatorEth1ResponseV1
- type ApiValidatorRequestV1
- type ApiValidatorResponseV1
- type ApiWithdrawalCredentialsResponseV1
- type IndexerBeacon
- type SlotResult
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)" @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 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 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, and fork information @Tags network @Accept json @Produce json @Success 200 {object} APINetworkOverviewResponse @Failure 500 {object} map[string]string "Internal 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 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 start_slot query int false "Start slot for pagination (inclusive)" @Param limit query int false "Number of results to return (max 100, 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 (default: 3 if names available, else 1)" @Param search query string false "Search term for group names (supports regex)" @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 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 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 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 ¶
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 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"`
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"`
SecondsPerSlot uint64 `json:"seconds_per_slot"`
SecondsPerEpoch uint64 `json:"seconds_per_epoch"`
}
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"`
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 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"`
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"`
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 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"`
}
APINetworkOverviewData contains comprehensive network state information
type APINetworkOverviewResponse ¶ added in v1.19.0
type APINetworkOverviewResponse struct {
Status string `json:"status"`
Data *APINetworkOverviewData `json:"data"`
}
APINetworkOverviewResponse represents the response structure for network overview
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 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 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 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"`
NextSlot *uint64 `json:"next_slot,omitempty"`
}
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"`
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 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 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 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 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
Source Files
¶
- api_clients_cl.go
- api_clients_el.go
- api_das_guardian.go
- api_das_guardian_mass.go
- consolidation_requests_v1.go
- deposits_included_v1.go
- deposits_queue_v1.go
- deposits_transactions_v1.go
- epoch_v1.go
- epochs_v1.go
- general.go
- handler.go
- mev_blocks_v1.go
- network_forks_v1.go
- network_overview_v1.go
- network_splits_v1.go
- slashings_v1.go
- slot_v1.go
- slots_v1.go
- validator_deposits_v1.go
- validator_eth1_v1.go
- validator_names_v1.go
- validator_v1.go
- validator_withdrawalcredentials_v1.go
- validators_activity_v1.go
- validators_v1.go
- voluntary_exits_v1.go
- withdrawal_requests_v1.go