{ "schemes": [ "http", "https" ], "swagger": "2.0", "info": { "description": "This is the API documentation for the Dora Explorer application.", "title": "Dora Explorer API", "contact": {}, "version": "1.0" }, "basePath": "/api", "paths": { "/v1/clients/consensus": { "get": { "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.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "clients" ], "summary": "Get consensus clients information", "operationId": "getConsensusClients", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIConsensusClientsResponse" } }, "429": { "description": "Rate limit exceeded", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/clients/execution": { "get": { "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.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "clients" ], "summary": "Get execution clients information", "operationId": "getExecutionClients", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIExecutionClientsResponse" } }, "429": { "description": "Rate limit exceeded", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/consolidation_requests": { "get": { "description": "Returns a list of consolidation requests (EL triggered) with detailed information and filtering options", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "consolidation_requests" ], "summary": "Get consolidation requests list", "operationId": "getConsolidationRequests", "parameters": [ { "type": "integer", "description": "Number of consolidation requests to return (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Offset for pagination", "name": "offset", "in": "query" }, { "type": "integer", "description": "Minimum slot number", "name": "min_slot", "in": "query" }, { "type": "integer", "description": "Maximum slot number", "name": "max_slot", "in": "query" }, { "type": "string", "description": "Filter by source address", "name": "source_address", "in": "query" }, { "type": "integer", "description": "Minimum source validator index", "name": "min_src_index", "in": "query" }, { "type": "integer", "description": "Maximum source validator index", "name": "max_src_index", "in": "query" }, { "type": "string", "description": "Filter by source validator name", "name": "src_validator_name", "in": "query" }, { "type": "integer", "description": "Minimum target validator index", "name": "min_tgt_index", "in": "query" }, { "type": "integer", "description": "Maximum target validator index", "name": "max_tgt_index", "in": "query" }, { "type": "string", "description": "Filter by target validator name", "name": "tgt_validator_name", "in": "query" }, { "type": "integer", "description": "Include orphaned requests (2=orphaned only, 1=include all, 0=exclude orphaned)", "name": "with_orphaned", "in": "query" }, { "type": "string", "description": "Filter by public key", "name": "public_key", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIConsolidationRequestsResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/das-guardian/mass-scan": { "post": { "description": "Performs DAS Guardian scans on all available consensus client nodes in parallel", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "das-guardian" ], "summary": "Scan all nodes using DAS Guardian", "operationId": "massDasGuardianScan", "parameters": [ { "description": "Mass scan parameters", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api.APIDasGuardianMassScanRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIDasGuardianMassScanResponse" } }, "400": { "description": "Invalid request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "429": { "description": "Rate limit exceeded", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/das-guardian/scan": { "post": { "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", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "das-guardian" ], "summary": "Scan a node using DAS Guardian", "operationId": "scanDasGuardian", "parameters": [ { "description": "Node ENR to scan", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api.APIDasGuardianScanRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIDasGuardianScanResponse" } }, "400": { "description": "Invalid request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "429": { "description": "Rate limit exceeded", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/deposits/included": { "get": { "description": "Returns a list of deposits that have been successfully included in beacon chain blocks with comprehensive filtering", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "deposits" ], "summary": "Get deposits included in blocks", "operationId": "getDepositsIncluded", "parameters": [ { "type": "integer", "description": "Number of deposits to return (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Offset for pagination", "name": "offset", "in": "query" }, { "type": "integer", "description": "Minimum deposit index", "name": "min_index", "in": "query" }, { "type": "integer", "description": "Maximum deposit index", "name": "max_index", "in": "query" }, { "type": "string", "description": "Filter by validator public key (with or without 0x prefix)", "name": "public_key", "in": "query" }, { "type": "string", "description": "Filter by validator name", "name": "validator_name", "in": "query" }, { "type": "integer", "description": "Minimum deposit amount in gwei", "name": "min_amount", "in": "query" }, { "type": "integer", "description": "Maximum deposit amount in gwei", "name": "max_amount", "in": "query" }, { "type": "integer", "description": "Include orphaned deposits (0=canonical only, 1=include all, 2=orphaned only)", "name": "with_orphaned", "in": "query" }, { "type": "string", "description": "Filter by depositor address", "name": "address", "in": "query" }, { "type": "integer", "description": "Filter by signature validity (0=invalid only, 1=valid only, 2=all)", "name": "with_valid", "in": "query" }, { "type": "array", "items": { "type": "integer" }, "collectionFormat": "multi", "description": "Filter by withdrawal credential type prefix byte (0-3). Repeat the parameter to include multiple types, e.g. cred_type=1\u0026cred_type=2.", "name": "cred_type", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIDepositsIncludedResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/deposits/queue": { "get": { "description": "Returns a list of deposits in the queue waiting to be processed (Electra only) with comprehensive filtering", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "deposits" ], "summary": "Get deposit queue", "operationId": "getDepositsQueue", "parameters": [ { "type": "integer", "description": "Number of deposits to return (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Offset for pagination", "name": "offset", "in": "query" }, { "type": "integer", "description": "Minimum deposit index", "name": "min_index", "in": "query" }, { "type": "integer", "description": "Maximum deposit index", "name": "max_index", "in": "query" }, { "type": "string", "description": "Filter by validator public key (with or without 0x prefix)", "name": "public_key", "in": "query" }, { "type": "integer", "description": "Minimum deposit amount in gwei", "name": "min_amount", "in": "query" }, { "type": "integer", "description": "Maximum deposit amount in gwei", "name": "max_amount", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIDepositsQueueResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/deposits/transactions": { "get": { "description": "Returns a list of deposit transactions that have been initiated on the execution layer with comprehensive filtering", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "deposits" ], "summary": "Get deposit transactions", "operationId": "getDepositsTransactions", "parameters": [ { "type": "integer", "description": "Number of deposits to return (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Offset for pagination", "name": "offset", "in": "query" }, { "type": "integer", "description": "Minimum deposit index", "name": "min_index", "in": "query" }, { "type": "integer", "description": "Maximum deposit index", "name": "max_index", "in": "query" }, { "type": "string", "description": "Filter by validator public key (with or without 0x prefix)", "name": "public_key", "in": "query" }, { "type": "string", "description": "Filter by validator name", "name": "validator_name", "in": "query" }, { "type": "integer", "description": "Minimum deposit amount in gwei", "name": "min_amount", "in": "query" }, { "type": "integer", "description": "Maximum deposit amount in gwei", "name": "max_amount", "in": "query" }, { "type": "integer", "description": "Include orphaned deposits (0=canonical only, 1=include all, 2=orphaned only)", "name": "with_orphaned", "in": "query" }, { "type": "string", "description": "Filter by transaction sender address", "name": "address", "in": "query" }, { "type": "string", "description": "Filter by transaction target address", "name": "target_address", "in": "query" }, { "type": "integer", "description": "Filter by signature validity (0=invalid only, 1=valid only, 2=all)", "name": "with_valid", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIDepositsTransactionsResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/epoch/{epoch}": { "get": { "description": "Returns information for a specified epoch by the epoch number or an epoch tag (can be latest or finalized)", "produces": [ "application/json" ], "tags": [ "Epoch" ], "summary": "Get epoch by number, latest, finalized", "operationId": "getEpoch", "parameters": [ { "type": "string", "description": "Epoch number, the string latest or the string finalized", "name": "epoch", "in": "path", "required": true } ], "responses": { "200": { "description": "Success", "schema": { "allOf": [ { "$ref": "#/definitions/api.ApiResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIEpochResponseV1" } } } ] } }, "400": { "description": "Failure", "schema": { "$ref": "#/definitions/api.ApiResponse" } }, "500": { "description": "Server Error", "schema": { "$ref": "#/definitions/api.ApiResponse" } } } } }, "/v1/epoch/{epoch}/duties": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Returns the attester committees for every slot in the specified epoch. Committee members are global validator indices in committee order.", "produces": [ "application/json" ], "tags": [ "Epoch" ], "summary": "Get epoch attester duties", "operationId": "getEpochDuties", "parameters": [ { "type": "integer", "description": "Epoch number", "name": "epoch", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIEpochDutiesResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Duties not available", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/epoch/{epoch}/health": { "get": { "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.", "produces": [ "application/json" ], "tags": [ "Epoch" ], "summary": "Get epoch health by number, latest, finalized", "operationId": "getEpochHealth", "parameters": [ { "type": "string", "description": "Epoch number, the string latest or the string finalized", "name": "epoch", "in": "path", "required": true } ], "responses": { "200": { "description": "Success", "schema": { "allOf": [ { "$ref": "#/definitions/api.ApiResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIEpochHealthResponseV1" } } } ] } }, "400": { "description": "Failure", "schema": { "$ref": "#/definitions/api.ApiResponse" } }, "500": { "description": "Server Error", "schema": { "$ref": "#/definitions/api.ApiResponse" } } } } }, "/v1/epochs": { "get": { "description": "Returns a list of epochs with detailed information and statistics", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "epochs" ], "summary": "Get epochs list", "operationId": "getEpochs", "parameters": [ { "type": "integer", "description": "First epoch to display", "name": "epoch", "in": "query" }, { "type": "integer", "description": "Number of epochs to return (max 100)", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIEpochsResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/mev_blocks": { "get": { "description": "Returns a list of MEV blocks with relay information and comprehensive filtering", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "mev_blocks" ], "summary": "Get MEV blocks", "operationId": "getMevBlocks", "parameters": [ { "type": "integer", "description": "Number of MEV blocks to return (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Offset for pagination", "name": "offset", "in": "query" }, { "type": "integer", "description": "Minimum slot number", "name": "min_slot", "in": "query" }, { "type": "integer", "description": "Maximum slot number", "name": "max_slot", "in": "query" }, { "type": "integer", "description": "Minimum proposer validator index", "name": "min_index", "in": "query" }, { "type": "integer", "description": "Maximum proposer validator index", "name": "max_index", "in": "query" }, { "type": "string", "description": "Filter by proposer validator name", "name": "validator_name", "in": "query" }, { "type": "string", "description": "Filter by MEV relays (comma-separated relay IDs)", "name": "relays", "in": "query" }, { "type": "string", "description": "Filter by proposed status (comma-separated: 0=not proposed, 1=proposed, 2=orphaned)", "name": "proposed", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIMevBlocksResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/network/client_head_forks": { "get": { "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.", "produces": [ "application/json" ], "tags": [ "network" ], "summary": "Get consensus client head forks", "operationId": "getNetworkClientHeadForks", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIClientHeadForksResponse" } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/network/fast_confirmation": { "get": { "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.", "produces": [ "application/json" ], "tags": [ "network" ], "summary": "Get fast confirmation (safe block) status", "operationId": "getNetworkFastConfirmation", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIFastConfirmationResponse" } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/network/forks": { "get": { "description": "Returns comprehensive information about past, current, and future network forks including consensus forks and BPO (Block Parameter Override) forks with fork digests", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "network" ], "summary": "Get network forks", "operationId": "getNetworkForks", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APINetworkForksResponse" } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/network/overview": { "get": { "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", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "network" ], "summary": "Get network overview", "operationId": "getNetworkOverview", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APINetworkOverviewResponse" } }, "500": { "description": "Server Error", "schema": { "$ref": "#/definitions/api.ApiResponse" } } } } }, "/v1/network/splits": { "get": { "description": "Returns information about active network forks/splits, their participation rates, and head blocks", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "network" ], "summary": "Get network splits", "operationId": "getNetworkSplits", "parameters": [ { "type": "boolean", "description": "Include stale forks with no voting weight (default: false)", "name": "with_stale", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APINetworkSplitsResponse" } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/slashings": { "get": { "description": "Returns a list of slashings with detailed information and filtering options", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "slashings" ], "summary": "Get slashings list", "operationId": "getSlashings", "parameters": [ { "type": "integer", "description": "Number of slashings to return (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Page number (starts at 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Minimum slot number", "name": "min_slot", "in": "query" }, { "type": "integer", "description": "Maximum slot number", "name": "max_slot", "in": "query" }, { "type": "integer", "description": "Minimum validator index", "name": "min_index", "in": "query" }, { "type": "integer", "description": "Maximum validator index", "name": "max_index", "in": "query" }, { "type": "string", "description": "Filter by validator name", "name": "validator_name", "in": "query" }, { "type": "string", "description": "Filter by slasher name", "name": "slasher_name", "in": "query" }, { "type": "integer", "description": "Filter by slashing reason", "name": "reason", "in": "query" }, { "type": "integer", "description": "Include orphaned slashings (0=exclude, 1=include, 2=only orphaned)", "name": "with_orphaned", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APISlashingsResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/slot/{slotOrHash}": { "get": { "description": "Returns detailed information about a specific slot from the database. Accepts either slot number or block root (0x-prefixed hex)", "produces": [ "application/json" ], "tags": [ "Slot" ], "summary": "Get slot information", "operationId": "getSlot", "parameters": [ { "type": "string", "description": "Slot number or block root (0x-prefixed hex)", "name": "slotOrHash", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APISlotResponse" } }, "400": { "description": "Invalid slot number or root format", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Slot not found", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/slot/{slotOrHash}/bids": { "get": { "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.", "produces": [ "application/json" ], "tags": [ "Slot" ], "summary": "Get execution payload bids for a slot", "operationId": "getSlotBids", "parameters": [ { "type": "string", "description": "Slot number or block root (0x-prefixed hex)", "name": "slotOrHash", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APISlotBidsResponse" } }, "400": { "description": "Invalid slot number or root format", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Slot not found", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/slot/{slotOrHash}/block_access_list": { "get": { "description": "Returns the EIP-7928 block access list (BAL) decoded for a specific slot.", "produces": [ "application/json" ], "tags": [ "Slot" ], "summary": "Get block access list for a slot", "operationId": "getSlotBlockAccessList", "parameters": [ { "type": "string", "description": "Slot number or block root (0x-prefixed hex)", "name": "slotOrHash", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APISlotBlockAccessListResponse" } }, "400": { "description": "Invalid slot number or root format", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Slot not found", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/slot/{slotOrHash}/inclusion_lists": { "get": { "description": "Returns the cached EIP-7805 inclusion lists for a slot, with each transaction\nmarked as included or not based on whether it appears in the slot's block transactions.", "produces": [ "application/json" ], "tags": [ "Slot" ], "summary": "Get inclusion lists for a slot", "operationId": "getSlotInclusionLists", "parameters": [ { "type": "string", "description": "Slot number or block root (0x-prefixed hex)", "name": "slotOrHash", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APISlotInclusionListsResponse" } }, "400": { "description": "Invalid slot number or root format", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Slot not found", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/slot/{slotOrHash}/payload_header": { "get": { "description": "Returns the gloas+ signed execution payload bid (header) included in a block,\nplus its observed payload status (canonical / orphaned). Pre-gloas blocks return\nhas_payload_header=false.", "produces": [ "application/json" ], "tags": [ "Slot" ], "summary": "Get the execution payload header for a slot", "operationId": "getSlotPayloadHeader", "parameters": [ { "type": "string", "description": "Slot number or block root (0x-prefixed hex)", "name": "slotOrHash", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APISlotPayloadHeaderResponse" } }, "400": { "description": "Invalid slot number or root format", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Slot not found", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/slot/{slotOrHash}/ptc_votes": { "get": { "description": "Returns the PTC (Payload Timeliness Committee) payload attestations included in a gloas+ block.\nThe attestations target the previous slot, mirroring what is shown on the slot page.", "produces": [ "application/json" ], "tags": [ "Slot" ], "summary": "Get PTC votes for a slot", "operationId": "getSlotPtcVotes", "parameters": [ { "type": "string", "description": "Slot number or block root (0x-prefixed hex)", "name": "slotOrHash", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APISlotPtcVotesResponse" } }, "400": { "description": "Invalid slot number or root format", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Slot not found", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/slot/{slot}/committees": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Returns the attester committees for the specified slot. Committee members are global validator indices in committee order.", "produces": [ "application/json" ], "tags": [ "Slot" ], "summary": "Get slot attester committees", "operationId": "getSlotCommittees", "parameters": [ { "type": "integer", "description": "Slot number", "name": "slot", "in": "path", "required": true }, { "type": "string", "description": "Comma-separated list of committee indices to filter by", "name": "committee", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APISlotCommitteesResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Committees not available", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/slots": { "get": { "description": "Returns a list of slots with various filtering options, sorted by slot number descending", "produces": [ "application/json" ], "tags": [ "Slot" ], "summary": "Get filtered slots list", "operationId": "getSlots", "parameters": [ { "type": "string", "description": "Filter by graffiti", "name": "graffiti", "in": "query" }, { "type": "boolean", "description": "Invert graffiti filter", "name": "graffiti_invert", "in": "query" }, { "type": "string", "description": "Filter by extra data", "name": "extra_data", "in": "query" }, { "type": "boolean", "description": "Invert extra data filter", "name": "extra_data_invert", "in": "query" }, { "type": "string", "description": "Filter by proposer index", "name": "proposer", "in": "query" }, { "type": "string", "description": "Filter by proposer name", "name": "proposer_name", "in": "query" }, { "type": "boolean", "description": "Invert proposer filter", "name": "proposer_invert", "in": "query" }, { "type": "integer", "description": "Include orphaned blocks (0=exclude, 1=include, 2=only orphaned)", "name": "with_orphaned", "in": "query" }, { "type": "integer", "description": "Include missing blocks (0=exclude, 1=include, 2=only missing)", "name": "with_missing", "in": "query" }, { "type": "number", "description": "Minimum sync aggregate participation (0-100)", "name": "min_sync", "in": "query" }, { "type": "number", "description": "Maximum sync aggregate participation (0-100)", "name": "max_sync", "in": "query" }, { "type": "integer", "description": "Minimum execution time in ms", "name": "min_exec_time", "in": "query" }, { "type": "integer", "description": "Maximum execution time in ms", "name": "max_exec_time", "in": "query" }, { "type": "integer", "description": "Minimum transaction count", "name": "min_tx_count", "in": "query" }, { "type": "integer", "description": "Maximum transaction count", "name": "max_tx_count", "in": "query" }, { "type": "integer", "description": "Minimum blob count", "name": "min_blob_count", "in": "query" }, { "type": "integer", "description": "Maximum blob count", "name": "max_blob_count", "in": "query" }, { "type": "string", "description": "Comma-separated list of fork IDs", "name": "fork_ids", "in": "query" }, { "type": "integer", "description": "Minimum slot number to return (inclusive)", "name": "min_slot", "in": "query" }, { "type": "integer", "description": "Maximum slot number to return (inclusive)", "name": "max_slot", "in": "query" }, { "type": "integer", "description": "Page number for pagination (0-indexed, default 0)", "name": "page", "in": "query" }, { "type": "integer", "description": "Number of results to return (max 1000, default 100)", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APISlotsResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/validator": { "post": { "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.", "produces": [ "application/json" ], "tags": [ "Validator" ], "summary": "Get up to 100 validators", "operationId": "getValidatorPost", "parameters": [ { "description": "Up to 100 validator indicesOrPubkeys, comma separated", "name": "indexOrPubkey", "in": "body", "required": true, "schema": { "$ref": "#/definitions/api.ApiValidatorRequestV1" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/api.ApiResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/api.ApiValidatorResponseV1" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/api.ApiResponse" } } } } }, "/v1/validator/eth1/{eth1address}": { "get": { "produces": [ "application/json" ], "tags": [ "Validator" ], "summary": "Get all validators that belong to an eth1 address", "operationId": "getValidatorByEth1Address", "parameters": [ { "type": "string", "description": "Eth1 address from which the validator deposits were sent", "name": "eth1address", "in": "path", "required": true }, { "type": "string", "description": "Limit the number of results (default: 2000)", "name": "limit", "in": "query" }, { "type": "string", "description": "Offset the results (default: 0)", "name": "offset", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/api.ApiResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/api.ApiValidatorEth1ResponseV1" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/api.ApiResponse" } } } } }, "/v1/validator/withdrawalCredentials/{withdrawalCredentialsOrEth1address}": { "get": { "produces": [ "application/json" ], "tags": [ "Validator" ], "summary": "Get all validators that have a specific withdrawal credentials", "operationId": "getWithdrawalCredentialsValidators", "parameters": [ { "type": "string", "description": "Provide a withdrawal credential or an eth1 address with an optional 0x prefix", "name": "withdrawalCredentialsOrEth1address", "in": "path", "required": true }, { "type": "integer", "default": 10, "description": "Limit the number of results, maximum: 200", "name": "limit", "in": "query" }, { "type": "integer", "default": 0, "description": "Offset the number of results", "name": "offset", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/api.ApiResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/api.ApiWithdrawalCredentialsResponseV1" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/api.ApiResponse" } } } } }, "/v1/validator/{indexOrPubkey}": { "get": { "description": "Searching for too many validators based on their pubkeys will lead to a \"URI too long\" error", "produces": [ "application/json" ], "tags": [ "Validator" ], "summary": "Get up to 100 validators", "operationId": "getValidator", "parameters": [ { "type": "string", "description": "Up to 100 validator indicesOrPubkeys, comma separated", "name": "indexOrPubkey", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/api.ApiResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/api.ApiValidatorResponseV1" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/api.ApiResponse" } } } } }, "/v1/validator/{indexOrPubkey}/deposits": { "get": { "description": "Get all eth1 deposits for up to 100 validators", "produces": [ "application/json" ], "tags": [ "Validators" ], "summary": "Get validator execution layer deposits", "operationId": "getValidatorDeposits", "parameters": [ { "type": "string", "description": "Up to 100 validator indicesOrPubkeys, comma separated", "name": "indexOrPubkey", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/api.ApiResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/api.ApiValidatorDepositsResponseV1" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/api.ApiResponse" } } } } }, "/v1/validator_names": { "get": { "description": "Returns validator names for given validator indices or public keys. Supports GET with query params or POST with JSON body for large lists.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "validator_names" ], "summary": "Get validator names", "operationId": "getValidatorNames", "parameters": [ { "type": "string", "description": "Comma-separated list of validator indices (GET only)", "name": "indices", "in": "query" }, { "type": "string", "description": "Comma-separated list of validator public keys (GET only, with or without 0x prefix)", "name": "pubkeys", "in": "query" }, { "description": "Request body for POST requests with indices and/or pubkeys arrays", "name": "body", "in": "body", "schema": { "$ref": "#/definitions/api.APIValidatorNamesRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIValidatorNamesResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } }, "post": { "description": "Returns validator names for given validator indices or public keys. Supports GET with query params or POST with JSON body for large lists.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "validator_names" ], "summary": "Get validator names", "operationId": "getValidatorNames", "parameters": [ { "type": "string", "description": "Comma-separated list of validator indices (GET only)", "name": "indices", "in": "query" }, { "type": "string", "description": "Comma-separated list of validator public keys (GET only, with or without 0x prefix)", "name": "pubkeys", "in": "query" }, { "description": "Request body for POST requests with indices and/or pubkeys arrays", "name": "body", "in": "body", "schema": { "$ref": "#/definitions/api.APIValidatorNamesRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIValidatorNamesResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/validators": { "get": { "description": "Returns a list of validators with detailed information and filtering options", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "validators" ], "summary": "Get validators list", "operationId": "getValidators", "parameters": [ { "type": "integer", "description": "Number of validators to return (max 1000)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Page number (starts at 1)", "name": "page", "in": "query" }, { "type": "string", "description": "Filter by public key", "name": "pubkey", "in": "query" }, { "type": "string", "description": "Filter by validator index", "name": "index", "in": "query" }, { "type": "string", "description": "Filter by validator name", "name": "name", "in": "query" }, { "type": "string", "description": "Filter by validator status (comma-separated)", "name": "status", "in": "query" }, { "type": "string", "description": "Filter by withdrawal address or withdrawal credentials", "name": "withdrawal", "in": "query" }, { "type": "string", "description": "Sort order: index, index-d, pubkey, pubkey-d, balance, balance-d, activation, activation-d, exit, exit-d", "name": "order", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIValidatorsResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/validators/activity": { "get": { "description": "Returns aggregated validator activity statistics with grouping and filtering options", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "validators" ], "summary": "Get validators activity statistics", "operationId": "getValidatorsActivity", "parameters": [ { "type": "integer", "description": "Number of groups to return (max 1000, default 50)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Page number (starts at 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "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)", "name": "group", "in": "query" }, { "type": "string", "description": "Search term for group names, withdrawal addresses, or withdrawal credentials (supports regex for non-exact address searches)", "name": "search", "in": "query" }, { "type": "string", "description": "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)", "name": "order", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIValidatorsActivityResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/validators/status": { "get": { "security": [ { "BearerAuth": [] } ], "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.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "validators" ], "summary": "Get validator status in bulk", "operationId": "getValidatorsStatus", "parameters": [ { "type": "string", "description": "Comma-separated list of validator indices (GET only)", "name": "indices", "in": "query" }, { "description": "Request body for POST requests with indices array", "name": "body", "in": "body", "schema": { "$ref": "#/definitions/api.APIValidatorsStatusRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIValidatorsStatusResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } }, "post": { "security": [ { "BearerAuth": [] } ], "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.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "validators" ], "summary": "Get validator status in bulk", "operationId": "getValidatorsStatus", "parameters": [ { "type": "string", "description": "Comma-separated list of validator indices (GET only)", "name": "indices", "in": "query" }, { "description": "Request body for POST requests with indices array", "name": "body", "in": "body", "schema": { "$ref": "#/definitions/api.APIValidatorsStatusRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIValidatorsStatusResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/voluntary_exits": { "get": { "description": "Returns a list of voluntary exits with detailed information and filtering options", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "voluntary_exits" ], "summary": "Get voluntary exits list", "operationId": "getVoluntaryExits", "parameters": [ { "type": "integer", "description": "Number of voluntary exits to return (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Page number (starts at 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Minimum slot number", "name": "min_slot", "in": "query" }, { "type": "integer", "description": "Maximum slot number", "name": "max_slot", "in": "query" }, { "type": "integer", "description": "Minimum validator index", "name": "min_index", "in": "query" }, { "type": "integer", "description": "Maximum validator index", "name": "max_index", "in": "query" }, { "type": "string", "description": "Filter by validator name", "name": "validator_name", "in": "query" }, { "type": "integer", "description": "Include orphaned exits (1=include, 0=exclude)", "name": "with_orphaned", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIVoluntaryExitsResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/v1/withdrawal_requests": { "get": { "description": "Returns a list of withdrawal requests (EL triggered) with detailed information and filtering options", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "withdrawal_requests" ], "summary": "Get withdrawal requests list", "operationId": "getWithdrawalRequests", "parameters": [ { "type": "integer", "description": "Number of withdrawal requests to return (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Offset for pagination", "name": "offset", "in": "query" }, { "type": "integer", "description": "Minimum slot number", "name": "min_slot", "in": "query" }, { "type": "integer", "description": "Maximum slot number", "name": "max_slot", "in": "query" }, { "type": "string", "description": "Filter by source address", "name": "source_address", "in": "query" }, { "type": "integer", "description": "Minimum validator index", "name": "min_index", "in": "query" }, { "type": "integer", "description": "Maximum validator index", "name": "max_index", "in": "query" }, { "type": "string", "description": "Filter by validator name", "name": "validator_name", "in": "query" }, { "type": "integer", "description": "Include orphaned requests (1=include, 0=exclude)", "name": "with_orphaned", "in": "query" }, { "type": "integer", "description": "Filter by type (1=withdrawals, 2=exits)", "name": "type", "in": "query" }, { "type": "string", "description": "Filter by public key", "name": "public_key", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/api.APIWithdrawalRequestsResponse" } }, "400": { "description": "Invalid parameters", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } } }, "definitions": { "api.APICheckpoints": { "type": "object", "properties": { "finalized_epoch": { "type": "integer" }, "finalized_root": { "type": "string" }, "justified_epoch": { "type": "integer" }, "justified_root": { "type": "string" } } }, "api.APIClientHeadFork": { "type": "object", "properties": { "client_count": { "type": "integer" }, "clients": { "type": "array", "items": { "$ref": "#/definitions/api.APIClientHeadForkPeer" } }, "head_root": { "type": "string" }, "head_slot": { "type": "integer" } } }, "api.APIClientHeadForkPeer": { "type": "object", "properties": { "distance": { "type": "integer" }, "head_slot": { "type": "integer" }, "index": { "type": "integer" }, "last_error": { "type": "string" }, "last_refresh": { "type": "string" }, "name": { "type": "string" }, "status": { "type": "string" }, "version": { "type": "string" } } }, "api.APIClientHeadForksData": { "type": "object", "properties": { "fork_count": { "type": "integer" }, "forks": { "type": "array", "items": { "$ref": "#/definitions/api.APIClientHeadFork" } } } }, "api.APIClientHeadForksResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIClientHeadForksData" }, "status": { "type": "string" } } }, "api.APIConsensusClientMetadata": { "type": "object", "properties": { "attnets": { "type": "string" }, "custody_group_count": { "description": "MetadataV3 field for Fulu", "type": "string" }, "seq_number": { "type": "string" }, "syncnets": { "type": "string" } } }, "api.APIConsensusClientNodeInfo": { "type": "object", "properties": { "client_name": { "type": "string" }, "client_type": { "type": "string" }, "data_columns": { "type": "array", "items": { "type": "integer" } }, "enr": { "type": "string" }, "enr_decoded": { "type": "object", "additionalProperties": true }, "fcr_enabled": { "type": "boolean" }, "head_root": { "type": "string" }, "head_slot": { "type": "integer" }, "last_error": { "type": "string" }, "last_refresh": { "type": "string" }, "metadata": { "$ref": "#/definitions/api.APIConsensusClientMetadata" }, "node_id": { "type": "string" }, "peer_count": { "type": "integer" }, "peer_id": { "type": "string" }, "peers_inbound": { "type": "integer" }, "peers_outbound": { "type": "integer" }, "safe_root": { "type": "string" }, "safe_slot": { "type": "integer" }, "status": { "type": "string" }, "version": { "type": "string" } } }, "api.APIConsensusClientsResponse": { "type": "object", "properties": { "clients": { "type": "array", "items": { "$ref": "#/definitions/api.APIConsensusClientNodeInfo" } }, "count": { "type": "integer" } } }, "api.APIConsolidationRequestInfo": { "type": "object", "properties": { "is_included": { "type": "boolean" }, "result": { "type": "integer" }, "result_message": { "type": "string" }, "slot_number": { "type": "integer" }, "slot_root": { "type": "string" }, "source_address": { "type": "string" }, "source_public_key": { "type": "string" }, "source_validator_index": { "type": "integer" }, "source_validator_name": { "type": "string" }, "source_validator_valid": { "type": "boolean" }, "status": { "description": "0=pending, 1=included, 2=orphaned", "type": "integer" }, "target_public_key": { "type": "string" }, "target_validator_index": { "type": "integer" }, "target_validator_name": { "type": "string" }, "target_validator_valid": { "type": "boolean" }, "time": { "type": "integer" }, "transaction_details": { "$ref": "#/definitions/api.APIConsolidationRequestTxDetails" }, "transaction_hash": { "type": "string" }, "tx_status": { "description": "0=pending, 1=confirmed, 2=orphaned", "type": "integer" } } }, "api.APIConsolidationRequestTxDetails": { "type": "object", "properties": { "block_hash": { "type": "string" }, "block_number": { "type": "integer" }, "block_time": { "type": "integer" }, "tx_hash": { "type": "string" }, "tx_origin": { "type": "string" }, "tx_target": { "type": "string" } } }, "api.APIConsolidationRequestsData": { "type": "object", "properties": { "consolidation_requests": { "type": "array", "items": { "$ref": "#/definitions/api.APIConsolidationRequestInfo" } }, "count": { "type": "integer" }, "total_pending": { "type": "integer" }, "total_requests": { "type": "integer" } } }, "api.APIConsolidationRequestsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIConsolidationRequestsData" }, "status": { "type": "string" } } }, "api.APICurrentState": { "type": "object", "properties": { "current_epoch": { "type": "integer" }, "current_epoch_progress": { "type": "number" }, "current_slot": { "type": "integer" }, "epoch_duration_ms": { "type": "integer" }, "slot_duration_ms": { "type": "integer" }, "slots_per_epoch": { "type": "integer" } } }, "api.APIDasGuardianEvalResult": { "type": "object", "properties": { "column_idx": { "type": "array", "items": { "type": "integer" } }, "downloaded_result": { "type": "array", "items": { "type": "array", "items": { "type": "string" } } }, "error": { "type": "string" }, "node_id": { "type": "string" }, "slots": { "type": "array", "items": { "type": "integer" } }, "valid_column": { "type": "array", "items": { "type": "array", "items": { "type": "boolean" } } }, "valid_kzg": { "type": "array", "items": { "type": "array", "items": { "type": "string" } } }, "valid_slot": { "type": "array", "items": { "type": "boolean" } } } }, "api.APIDasGuardianMassScanRequest": { "type": "object", "properties": { "random_count": { "description": "Number of random slots to select (default: 4)", "type": "integer" }, "random_mode": { "description": "Random slot selection mode: \"non_missed\", \"with_blobs\", \"available\"", "type": "string" }, "slots": { "description": "Optional slot numbers to scan", "type": "array", "items": { "type": "integer" } } } }, "api.APIDasGuardianMassScanResponse": { "type": "object", "properties": { "error": { "type": "string" }, "results": { "description": "ENR -\u003e node result", "type": "object", "additionalProperties": { "$ref": "#/definitions/api.APIMassNodeResult" } }, "slots": { "description": "The slots that were scanned", "type": "array", "items": { "type": "integer" } }, "success": { "type": "boolean" } } }, "api.APIDasGuardianMetadata": { "type": "object", "properties": { "attnets": { "type": "string" }, "custody_group_count": { "type": "integer" }, "seq_number": { "type": "integer" }, "syncnets": { "type": "string" } } }, "api.APIDasGuardianScanRequest": { "type": "object", "properties": { "enr": { "type": "string" }, "random_count": { "description": "Number of random slots to select (default: 4)", "type": "integer" }, "random_mode": { "description": "Random slot selection mode: \"non_missed\", \"with_blobs\", \"available\"", "type": "string" }, "slots": { "description": "Optional slot numbers to scan", "type": "array", "items": { "type": "integer" } } } }, "api.APIDasGuardianScanResponse": { "type": "object", "properties": { "error": { "type": "string" }, "result": { "$ref": "#/definitions/api.APIDasGuardianScanResult" }, "success": { "type": "boolean" } } }, "api.APIDasGuardianScanResult": { "type": "object", "properties": { "eval_result": { "description": "DAS Evaluation Result", "allOf": [ { "$ref": "#/definitions/api.APIDasGuardianEvalResult" } ] }, "libp2p_info": { "description": "P2P Information", "type": "object", "additionalProperties": true }, "remote_metadata": { "description": "Metadata (from RemoteMetadata)", "allOf": [ { "$ref": "#/definitions/api.APIDasGuardianMetadata" } ] }, "remote_status": { "description": "Status Information (from RemoteStatus)", "allOf": [ { "$ref": "#/definitions/api.APIDasGuardianStatus" } ] } } }, "api.APIDasGuardianStatus": { "type": "object", "properties": { "earliest_slot": { "type": "integer" }, "finalized_epoch": { "type": "integer" }, "finalized_root": { "type": "string" }, "fork_digest": { "type": "string" }, "head_root": { "type": "string" }, "head_slot": { "type": "integer" } } }, "api.APIDepositIncludedInfo": { "type": "object", "properties": { "amount": { "type": "integer" }, "block_number": { "type": "integer" }, "index": { "type": "integer" }, "orphaned": { "type": "boolean" }, "public_key": { "type": "string" }, "slot_number": { "type": "integer" }, "slot_root": { "type": "string" }, "time": { "type": "integer" }, "tx_hash": { "type": "string" }, "tx_origin": { "type": "string" }, "tx_target": { "type": "string" }, "valid": { "type": "boolean" }, "validator_index": { "type": "integer" }, "validator_name": { "type": "string" }, "withdrawal_credentials": { "type": "string" } } }, "api.APIDepositQueueInfo": { "type": "object", "properties": { "amount": { "type": "integer" }, "block_hash": { "type": "string" }, "block_number": { "type": "integer" }, "estimated_time": { "type": "integer" }, "index": { "type": "integer" }, "postponed": { "type": "boolean" }, "public_key": { "type": "string" }, "queue_position": { "type": "integer" }, "time": { "type": "integer" }, "tx_hash": { "type": "string" }, "tx_origin": { "type": "string" }, "tx_target": { "type": "string" }, "validator_index": { "type": "integer" }, "validator_liveness": { "type": "integer" }, "validator_liveness_max": { "type": "integer" }, "validator_name": { "type": "string" }, "validator_status": { "type": "string" }, "withdrawal_credentials": { "type": "string" } } }, "api.APIDepositTransactionInfo": { "type": "object", "properties": { "amount": { "type": "integer" }, "block_hash": { "type": "string" }, "block_number": { "type": "integer" }, "index": { "type": "integer" }, "orphaned": { "type": "boolean" }, "public_key": { "type": "string" }, "time": { "type": "integer" }, "tx_hash": { "type": "string" }, "tx_origin": { "type": "string" }, "tx_target": { "type": "string" }, "valid": { "type": "boolean" }, "validator_index": { "type": "integer" }, "validator_liveness": { "type": "integer" }, "validator_liveness_max": { "type": "integer" }, "validator_name": { "type": "string" }, "validator_status": { "type": "string" }, "withdrawal_credentials": { "type": "string" } } }, "api.APIDepositsIncludedData": { "type": "object", "properties": { "count": { "type": "integer" }, "current_epoch": { "type": "integer" }, "deposits": { "type": "array", "items": { "$ref": "#/definitions/api.APIDepositIncludedInfo" } }, "total_count": { "type": "integer" } } }, "api.APIDepositsIncludedResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIDepositsIncludedData" }, "status": { "type": "string" } } }, "api.APIDepositsQueueData": { "type": "object", "properties": { "count": { "type": "integer" }, "current_epoch": { "type": "integer" }, "deposits": { "type": "array", "items": { "$ref": "#/definitions/api.APIDepositQueueInfo" } }, "estimated_process_time": { "type": "integer" }, "is_electra": { "type": "boolean" }, "total_amount": { "type": "integer" }, "total_count": { "type": "integer" }, "total_new_validators": { "type": "integer" } } }, "api.APIDepositsQueueResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIDepositsQueueData" }, "status": { "type": "string" } } }, "api.APIDepositsTransactionsData": { "type": "object", "properties": { "count": { "type": "integer" }, "current_epoch": { "type": "integer" }, "deposits": { "type": "array", "items": { "$ref": "#/definitions/api.APIDepositTransactionInfo" } }, "total_count": { "type": "integer" } } }, "api.APIDepositsTransactionsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIDepositsTransactionsData" }, "status": { "type": "string" } } }, "api.APIEpochDutiesData": { "type": "object", "properties": { "committees_per_slot": { "type": "integer" }, "dependent_root": { "type": "string" }, "epoch": { "type": "integer" }, "slots": { "type": "array", "items": { "$ref": "#/definitions/api.APIEpochDutiesSlotInfo" } } } }, "api.APIEpochDutiesResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIEpochDutiesData" }, "status": { "type": "string" } } }, "api.APIEpochDutiesSlotInfo": { "type": "object", "properties": { "committees": { "type": "array", "items": { "type": "array", "items": { "type": "integer" } } }, "slot": { "type": "integer" } } }, "api.APIEpochHealthResponseV1": { "type": "object", "properties": { "eligible_ether": { "type": "integer" }, "epoch": { "type": "integer" }, "finalized": { "type": "boolean" }, "healthy": { "type": "boolean" }, "payload_participation": { "type": "number" }, "proposal_participation": { "type": "number" }, "proposed_blocks": { "type": "integer" }, "proposed_payloads": { "type": "integer" }, "slots": { "type": "integer" }, "ts": { "type": "integer" }, "vote_participation": { "type": "number" }, "voted_ether": { "type": "integer" } } }, "api.APIEpochInfo": { "type": "object", "properties": { "attestations": { "type": "integer" }, "attester_slashings": { "type": "integer" }, "bls_changes": { "type": "integer" }, "consolidation_requests": { "type": "integer" }, "deposits": { "type": "integer" }, "deposits_amount": { "type": "integer" }, "eligible_ether": { "type": "integer" }, "epoch": { "type": "integer" }, "exits": { "type": "integer" }, "finalized": { "type": "boolean" }, "head_voted": { "type": "integer" }, "max_sync_committee_size": { "type": "integer" }, "min_sync_committee_size": { "type": "integer" }, "missed_blocks": { "type": "integer" }, "missed_payloads": { "type": "integer" }, "orphaned_blocks": { "type": "integer" }, "proposed_blocks": { "type": "integer" }, "proposed_payloads": { "type": "integer" }, "proposer_slashings": { "type": "integer" }, "sync_participation": { "type": "number" }, "target_voted": { "type": "integer" }, "total_voted": { "type": "integer" }, "validator_balance": { "type": "integer" }, "validators": { "type": "integer" }, "vote_participation": { "type": "number" }, "voting_finalized": { "type": "boolean" }, "voting_justified": { "type": "boolean" }, "withdrawal_requests": { "type": "integer" }, "withdrawals_amount": { "type": "integer" }, "withdrawals_count": { "type": "integer" } } }, "api.APIEpochResponseV1": { "type": "object", "properties": { "attestationscount": { "type": "integer" }, "attesterslashingscount": { "type": "integer" }, "averagevalidatorbalance": { "type": "integer" }, "blockscount": { "type": "integer" }, "depositscount": { "type": "integer" }, "eligibleether": { "type": "integer" }, "epoch": { "type": "integer" }, "finalized": { "type": "boolean" }, "globalparticipationrate": { "type": "integer" }, "missedblocks": { "type": "integer" }, "missedpayloads": { "type": "integer" }, "orphanedblocks": { "type": "integer" }, "proposedblocks": { "type": "integer" }, "proposedpayloads": { "type": "integer" }, "proposerslashingscount": { "type": "integer" }, "rewards_exported": { "type": "integer" }, "scheduledblocks": { "type": "integer" }, "totalvalidatorbalance": { "type": "integer" }, "ts": { "type": "integer" }, "validatorscount": { "type": "integer" }, "voluntaryexitscount": { "type": "integer" }, "votedether": { "type": "integer" }, "withdrawalcount": { "type": "integer" } } }, "api.APIEpochsData": { "type": "object", "properties": { "current_epoch": { "type": "integer" }, "epoch_count": { "type": "integer" }, "epochs": { "type": "array", "items": { "$ref": "#/definitions/api.APIEpochInfo" } }, "finalized_epoch": { "type": "integer" }, "first_epoch": { "type": "integer" }, "last_epoch": { "type": "integer" }, "total_epochs": { "type": "integer" } } }, "api.APIEpochsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIEpochsData" }, "status": { "type": "string" } } }, "api.APIExecutionClientNodeInfo": { "type": "object", "properties": { "client_name": { "type": "string" }, "enode": { "type": "string" }, "ip": { "type": "string" }, "last_update": { "type": "string" }, "node_id": { "type": "string" }, "port": { "type": "integer" }, "status": { "type": "string" }, "version": { "type": "string" } } }, "api.APIExecutionClientsResponse": { "type": "object", "properties": { "clients": { "type": "array", "items": { "$ref": "#/definitions/api.APIExecutionClientNodeInfo" } }, "count": { "type": "integer" } } }, "api.APIFastConfirmationClient": { "type": "object", "properties": { "fcr_enabled": { "type": "boolean" }, "index": { "type": "integer" }, "last_fast_confirmation": { "type": "string" }, "name": { "type": "string" }, "safe_root": { "type": "string" }, "safe_slot": { "type": "integer" }, "status": { "type": "string" } } }, "api.APIFastConfirmationData": { "type": "object", "properties": { "client_count": { "type": "integer" }, "clients": { "type": "array", "items": { "$ref": "#/definitions/api.APIFastConfirmationClient" } }, "fcr_enabled": { "type": "boolean" }, "last_fast_confirmation": { "type": "string" }, "safe_epoch": { "type": "integer" }, "safe_root": { "type": "string" }, "safe_slot": { "type": "integer" } } }, "api.APIFastConfirmationResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIFastConfirmationData" }, "status": { "type": "string" } } }, "api.APIMassNodeResult": { "type": "object", "properties": { "custody_columns": { "description": "Custody column indices", "type": "array", "items": { "type": "integer" } }, "custody_group_count": { "description": "CGC from node metadata", "type": "integer" }, "earliest_slot": { "description": "Earliest available slot from node status", "type": "integer" }, "error": { "type": "string" }, "node_alias": { "type": "string" }, "slot_results": { "description": "Slot -\u003e result details", "type": "object", "additionalProperties": { "$ref": "#/definitions/api.SlotResult" } }, "success": { "type": "boolean" }, "total_columns": { "description": "Total number of columns per slot", "type": "integer" }, "valid_columns": { "description": "Per-slot array of column validity", "type": "array", "items": { "type": "array", "items": { "type": "boolean" } } } } }, "api.APIMevBlockInfo": { "type": "object", "properties": { "blob_count": { "type": "integer" }, "block_hash": { "type": "string" }, "block_number": { "type": "integer" }, "block_value_gwei": { "type": "integer" }, "builder_pubkey": { "type": "string" }, "fee_recipient": { "type": "string" }, "gas_used": { "type": "integer" }, "proposed": { "description": "0=not proposed, 1=proposed, 2=orphaned", "type": "integer" }, "relays": { "type": "array", "items": { "$ref": "#/definitions/api.APIMevBlockRelayInfo" } }, "slot_number": { "type": "integer" }, "time": { "type": "integer" }, "tx_count": { "type": "integer" }, "validator_index": { "type": "integer" }, "validator_name": { "type": "string" } } }, "api.APIMevBlockRelayInfo": { "type": "object", "properties": { "relay_id": { "type": "integer" }, "relay_name": { "type": "string" } } }, "api.APIMevBlocksData": { "type": "object", "properties": { "count": { "type": "integer" }, "mev_blocks": { "type": "array", "items": { "$ref": "#/definitions/api.APIMevBlockInfo" } }, "total_count": { "type": "integer" } } }, "api.APIMevBlocksResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIMevBlocksData" }, "status": { "type": "string" } } }, "api.APINetworkForkInfo": { "type": "object", "properties": { "active": { "type": "boolean" }, "epoch": { "type": "integer" }, "fork_digest": { "type": "string" }, "max_blobs_per_block": { "description": "only for BPO forks", "type": "integer" }, "name": { "type": "string" }, "scheduled": { "type": "boolean" }, "time": { "type": "integer" }, "type": { "description": "\"consensus\" or \"bpo\"", "type": "string" }, "version": { "description": "nil for BPO forks", "type": "string" } } }, "api.APINetworkForksData": { "type": "object", "properties": { "config_name": { "type": "string" }, "count": { "type": "integer" }, "current_epoch": { "type": "integer" }, "finalized_epoch": { "type": "integer" }, "forks": { "type": "array", "items": { "$ref": "#/definitions/api.APINetworkForkInfo" } } } }, "api.APINetworkForksResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APINetworkForksData" }, "status": { "type": "string" } } }, "api.APINetworkInfo": { "type": "object", "properties": { "config_name": { "type": "string" }, "consolidation_contract": { "type": "string" }, "deposit_contract": { "type": "string" }, "genesis_root": { "type": "string" }, "genesis_time": { "type": "integer" }, "genesis_validators_root": { "type": "string" }, "network_name": { "type": "string" }, "withdrawal_contract": { "type": "string" } } }, "api.APINetworkOverviewData": { "type": "object", "properties": { "active_validator_count": { "type": "integer" }, "checkpoints": { "$ref": "#/definitions/api.APICheckpoints" }, "current_epoch": { "type": "integer" }, "current_slot": { "type": "integer" }, "current_state": { "$ref": "#/definitions/api.APICurrentState" }, "data_quality_warnings": { "type": "array", "items": { "type": "string" } }, "epochs_since_finality": { "type": "integer" }, "exited_validator_count": { "type": "integer" }, "finalized_epoch": { "type": "integer" }, "finalizing": { "type": "boolean" }, "forks": { "type": "array", "items": { "$ref": "#/definitions/api.APINetworkForkInfo" } }, "is_synced": { "type": "boolean" }, "metadata": { "$ref": "#/definitions/api.APINetworkOverviewMetadata" }, "network_info": { "$ref": "#/definitions/api.APINetworkInfo" }, "participation": { "$ref": "#/definitions/api.APINetworkParticipation" }, "pending_validator_count": { "type": "integer" }, "queue_stats": { "$ref": "#/definitions/api.APIQueueStats" }, "raw_aggregates": { "$ref": "#/definitions/api.APINetworkRawAggregates" }, "total_validator_count": { "type": "integer" }, "validator_stats": { "$ref": "#/definitions/api.APIValidatorStats" } } }, "api.APINetworkOverviewMetadata": { "type": "object", "properties": { "slots_per_epoch": { "type": "integer" } } }, "api.APINetworkOverviewResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APINetworkOverviewData" }, "status": { "type": "string" } } }, "api.APINetworkParticipation": { "type": "object", "properties": { "complete": { "type": "boolean" }, "expected_slots": { "type": "integer" }, "indexed_slots": { "type": "integer" }, "rate": { "type": "number" }, "source": { "type": "string" }, "warning": { "type": "string" } } }, "api.APINetworkRawAggregates": { "type": "object", "properties": { "attestations_indexed": { "type": "integer" }, "complete": { "type": "boolean" }, "expected_slots": { "type": "integer" }, "globalparticipationrate": { "type": "number" }, "indexed_slots": { "type": "integer" }, "source": { "type": "string" }, "vote_participation": { "type": "number" } } }, "api.APINetworkSplitInfo": { "type": "object", "properties": { "fork_id": { "type": "string" }, "head_block_hash": { "type": "string" }, "head_execution_number": { "type": "integer" }, "head_root": { "type": "string" }, "head_slot": { "type": "integer" }, "is_canonical": { "type": "boolean" }, "last_epoch_participation": { "type": "array", "items": { "type": "number" } }, "last_epoch_votes": { "type": "array", "items": { "type": "integer" } }, "total_chain_weight": { "type": "integer" } } }, "api.APINetworkSplitsData": { "type": "object", "properties": { "current_epoch": { "type": "integer" }, "current_slot": { "type": "integer" }, "finalized_epoch": { "type": "integer" }, "finalized_root": { "type": "string" }, "splits": { "type": "array", "items": { "$ref": "#/definitions/api.APINetworkSplitInfo" } } } }, "api.APINetworkSplitsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APINetworkSplitsData" }, "status": { "type": "string" } } }, "api.APIQueueStats": { "type": "object", "properties": { "deposit_estimated_time": { "type": "integer" }, "entering_ether_amount": { "type": "integer" }, "entering_validator_count": { "type": "integer" }, "ether_churn_per_day": { "type": "integer" }, "exit_estimated_time": { "type": "integer" }, "exiting_validator_count": { "type": "integer" } } }, "api.APISlashingInfo": { "type": "object", "properties": { "orphaned": { "type": "boolean" }, "reason": { "type": "integer" }, "slasher_index": { "type": "integer" }, "slasher_name": { "type": "string" }, "slot_number": { "type": "integer" }, "slot_root": { "type": "string" }, "time": { "type": "integer" }, "validator_balance": { "type": "integer" }, "validator_index": { "type": "integer" }, "validator_liveness": { "type": "integer" }, "validator_liveness_total": { "type": "integer" }, "validator_name": { "type": "string" }, "validator_status": { "type": "string" } } }, "api.APISlashingsData": { "type": "object", "properties": { "count": { "type": "integer" }, "page_index": { "type": "integer" }, "slashings": { "type": "array", "items": { "$ref": "#/definitions/api.APISlashingInfo" } }, "total_count": { "type": "integer" }, "total_pages": { "type": "integer" } } }, "api.APISlashingsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APISlashingsData" }, "status": { "type": "string" } } }, "api.APISlotBid": { "type": "object", "properties": { "block_hash": { "type": "string" }, "builder_index": { "type": "integer" }, "builder_name": { "type": "string" }, "candidate_key": { "description": "CandidateKey is the buildoor-style candidate identifier (parent_full, parent_empty,\ngrandparent_full, grandparent_empty, ancestor-N_full/-empty); empty for orphaned-fork\nand unknown-parent bids.", "type": "string" }, "el_parent_slot": { "description": "ElParentSlot is the slot whose payload block hash matches the bid's parent hash,\ni.e. the EL head the bid builds on (omitted if not resolvable).", "type": "integer" }, "el_parent_unrevealed": { "description": "ElParentUnrevealed: the bid's parent hash matches a committed payload hash that was\nnever revealed - such a bid can never become valid.", "type": "boolean" }, "el_payment": { "type": "integer" }, "fee_recipient": { "type": "string" }, "gas_limit": { "type": "integer" }, "is_self_built": { "type": "boolean" }, "is_winning": { "type": "boolean" }, "parent_class": { "description": "Bid target classification relative to the slot's actual block parent chain.\nParentClass: \"parent\" (targets the block's actual beacon parent), \"reorg\" (targets a\ndeeper ancestor, orphaning ReorgDepth blocks), \"orphaned\" (targets a block outside\nthe block's chain), \"unknown\" (parent root not resolvable).", "type": "string" }, "parent_full": { "description": "ParentFull: the bid builds on the targeted block's own payload (full) rather than an\nearlier payload (empty).", "type": "boolean" }, "parent_hash": { "type": "string" }, "parent_root": { "type": "string" }, "parent_slot": { "description": "ParentSlot is the slot of the targeted beacon parent block (0 if unknown).", "type": "integer" }, "reorg_depth": { "type": "integer" }, "seen_count": { "description": "Gossip visibility: SeenCount of SeenTotal connected clients observed the bid\non gossip. SeenTotal 0 = no observation data available for this bid.\nPer-client details are served by the /slot/{slotOrHash}/bidseen page endpoint.", "type": "integer" }, "seen_total": { "type": "integer" }, "slot": { "type": "integer" }, "total_value": { "type": "integer" }, "value": { "type": "integer" } } }, "api.APISlotBidsData": { "type": "object", "properties": { "bids": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotBid" } }, "block_root": { "type": "string" }, "count": { "type": "integer" }, "slot": { "type": "integer" } } }, "api.APISlotBidsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APISlotBidsData" }, "status": { "type": "string" } } }, "api.APISlotBlockAccessListBalance": { "type": "object", "properties": { "balance": { "type": "string" }, "block_access_index": { "type": "integer" } } }, "api.APISlotBlockAccessListCode": { "type": "object", "properties": { "block_access_index": { "type": "integer" }, "code": { "type": "string" } } }, "api.APISlotBlockAccessListData": { "type": "object", "properties": { "accesses": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotBlockAccessListEntry" } }, "block_root": { "type": "string" }, "count": { "type": "integer" }, "slot": { "type": "integer" } } }, "api.APISlotBlockAccessListEntry": { "type": "object", "properties": { "address": { "type": "string" }, "balance_changes": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotBlockAccessListBalance" } }, "code_changes": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotBlockAccessListCode" } }, "nonce_changes": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotBlockAccessListNonce" } }, "storage_changes": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotBlockAccessListStorageGroup" } }, "storage_reads": { "type": "array", "items": { "type": "string" } } } }, "api.APISlotBlockAccessListNonce": { "type": "object", "properties": { "block_access_index": { "type": "integer" }, "nonce": { "type": "integer" } } }, "api.APISlotBlockAccessListResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APISlotBlockAccessListData" }, "status": { "type": "string" } } }, "api.APISlotBlockAccessListStorage": { "type": "object", "properties": { "block_access_index": { "type": "integer" }, "value": { "type": "string" } } }, "api.APISlotBlockAccessListStorageGroup": { "type": "object", "properties": { "changes": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotBlockAccessListStorage" } }, "slot": { "type": "string" } } }, "api.APISlotCommitteeInfo": { "type": "object", "properties": { "index": { "type": "integer" }, "validators": { "type": "array", "items": { "type": "integer" } } } }, "api.APISlotCommitteesData": { "type": "object", "properties": { "committees": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotCommitteeInfo" } }, "epoch": { "type": "integer" }, "slot": { "type": "integer" } } }, "api.APISlotCommitteesResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APISlotCommitteesData" }, "status": { "type": "string" } } }, "api.APISlotData": { "type": "object", "properties": { "attestationscount": { "type": "integer" }, "attesterslashingscount": { "type": "integer" }, "blob_count": { "type": "integer" }, "blockroot": { "type": "string" }, "depositscount": { "type": "integer" }, "epoch": { "type": "integer" }, "exec_base_fee_per_gas": { "type": "integer" }, "exec_block_hash": { "type": "string" }, "exec_block_number": { "type": "integer" }, "exec_extra_data": { "type": "string" }, "exec_fee_recipient": { "type": "string" }, "exec_gas_limit": { "type": "integer" }, "exec_gas_used": { "type": "integer" }, "exec_transactions_count": { "type": "integer" }, "graffiti": { "type": "string" }, "graffiti_text": { "type": "string" }, "parentroot": { "type": "string" }, "proposer": { "type": "integer" }, "proposerslashingscount": { "type": "integer" }, "slot": { "type": "integer" }, "stateroot": { "type": "string" }, "status": { "type": "string" }, "syncaggregate_participation": { "type": "number" }, "voluntaryexitscount": { "type": "integer" }, "withdrawalcount": { "type": "integer" } } }, "api.APISlotInclusionList": { "type": "object", "properties": { "inclusion_list_committee_root": { "type": "string" }, "signature": { "type": "string" }, "transactions": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotInclusionListTransaction" } }, "transactions_count": { "type": "integer" }, "validator_index": { "type": "integer" }, "validator_name": { "type": "string" } } }, "api.APISlotInclusionListTransaction": { "type": "object", "properties": { "data_len": { "type": "integer" }, "decode_error": { "type": "string" }, "from": { "type": "string" }, "gas_limit": { "type": "integer" }, "hash": { "type": "string" }, "index": { "type": "integer" }, "is_included": { "type": "boolean" }, "nonce": { "type": "integer" }, "to": { "type": "string" }, "type": { "type": "integer" }, "value": { "type": "string" } } }, "api.APISlotInclusionListsData": { "type": "object", "properties": { "block_root": { "type": "string" }, "count": { "type": "integer" }, "inclusion_lists": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotInclusionList" } }, "slot": { "type": "integer" } } }, "api.APISlotInclusionListsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APISlotInclusionListsData" }, "status": { "type": "string" } } }, "api.APISlotListItem": { "type": "object", "properties": { "attestation_count": { "type": "integer" }, "attester_slashing_count": { "type": "integer" }, "avg_exec_time": { "type": "integer" }, "blob_count": { "type": "integer" }, "block_root": { "type": "string" }, "block_size": { "type": "integer" }, "deposit_count": { "type": "integer" }, "el_extra_data": { "type": "string" }, "epoch": { "type": "integer" }, "eth_block_number": { "type": "integer" }, "eth_transaction_count": { "type": "integer" }, "execution_times": { "type": "array", "items": { "$ref": "#/definitions/models.ExecutionTimeDetail" } }, "exit_count": { "type": "integer" }, "finalized": { "type": "boolean" }, "gas_limit": { "type": "integer" }, "gas_used": { "type": "integer" }, "graffiti": { "type": "string" }, "graffiti_text": { "type": "string" }, "is_mev_block": { "type": "boolean" }, "max_exec_time": { "type": "integer" }, "mev_block_relays": { "type": "string" }, "min_exec_time": { "type": "integer" }, "parent_root": { "type": "string" }, "proposer": { "type": "integer" }, "proposer_name": { "type": "string" }, "proposer_slashing_count": { "type": "integer" }, "recv_delay": { "type": "integer" }, "scheduled": { "type": "boolean" }, "slot": { "type": "integer" }, "state_root": { "type": "string" }, "status": { "type": "string" }, "sync_aggregate_participation": { "type": "number" }, "time": { "type": "string" }, "with_eth_block": { "type": "boolean" } } }, "api.APISlotPayloadHeaderData": { "type": "object", "properties": { "blob_kzg_commitments": { "type": "array", "items": { "type": "string" } }, "block_hash": { "type": "string" }, "block_root": { "type": "string" }, "builder_index": { "type": "integer" }, "builder_name": { "type": "string" }, "gas_limit": { "type": "integer" }, "has_payload_header": { "type": "boolean" }, "is_self_built": { "type": "boolean" }, "parent_block_hash": { "type": "string" }, "parent_block_root": { "type": "string" }, "payload_status": { "type": "integer" }, "payload_status_name": { "type": "string" }, "signature": { "type": "string" }, "slot": { "type": "integer" }, "value": { "type": "integer" } } }, "api.APISlotPayloadHeaderResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APISlotPayloadHeaderData" }, "status": { "type": "string" } } }, "api.APISlotPtcAggregate": { "type": "object", "properties": { "aggregation_bits": { "type": "string" }, "blob_data_available": { "type": "boolean" }, "payload_present": { "type": "boolean" }, "signature": { "type": "string" }, "validators": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotPtcValidator" } }, "vote_count": { "type": "integer" }, "vote_percent": { "type": "number" } } }, "api.APISlotPtcValidator": { "type": "object", "properties": { "index": { "type": "integer" }, "name": { "type": "string" } } }, "api.APISlotPtcVotesData": { "type": "object", "properties": { "aggregates": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotPtcAggregate" } }, "block_root": { "type": "string" }, "non_voter_count": { "type": "integer" }, "non_voter_percent": { "type": "number" }, "non_voters": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotPtcValidator" } }, "participation": { "type": "number" }, "slot": { "type": "integer" }, "total_ptc_size": { "type": "integer" }, "vote_count": { "type": "integer" }, "voted_block_root": { "type": "string" }, "voted_slot": { "type": "integer" } } }, "api.APISlotPtcVotesResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APISlotPtcVotesData" }, "status": { "type": "string" } } }, "api.APISlotResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APISlotData" }, "status": { "type": "string" } } }, "api.APISlotsData": { "type": "object", "properties": { "next_page": { "type": "integer" }, "next_slot": { "description": "Use with max_slot for cursor-based pagination", "type": "integer" }, "page": { "type": "integer" }, "slots": { "type": "array", "items": { "$ref": "#/definitions/api.APISlotListItem" } }, "total_count": { "type": "integer" } } }, "api.APISlotsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APISlotsData" }, "status": { "type": "string" } } }, "api.APIValidatorActivityGroup": { "type": "object", "properties": { "activated": { "type": "integer" }, "exited": { "type": "integer" }, "group": { "type": "string" }, "offline": { "type": "integer" }, "online": { "type": "integer" }, "slashed": { "type": "integer" }, "validators": { "type": "integer" } } }, "api.APIValidatorInfo": { "type": "object", "properties": { "activation_epoch": { "type": "integer" }, "activation_time": { "type": "integer" }, "balance": { "type": "integer" }, "effective_balance": { "type": "integer" }, "exit_epoch": { "type": "integer" }, "exit_time": { "type": "integer" }, "index": { "type": "integer" }, "name": { "type": "string" }, "public_key": { "type": "string" }, "slashed": { "type": "boolean" }, "status": { "type": "string" }, "validator_liveness": { "type": "integer" }, "validator_liveness_max": { "type": "integer" }, "withdrawable_epoch": { "type": "integer" }, "withdrawal_address": { "type": "string" }, "withdrawal_credentials": { "type": "string" } } }, "api.APIValidatorNameInfo": { "type": "object", "properties": { "found": { "type": "boolean" }, "index": { "type": "integer" }, "name": { "type": "string" }, "public_key": { "type": "string" } } }, "api.APIValidatorNamesData": { "type": "object", "properties": { "count": { "type": "integer" }, "validator_names": { "type": "array", "items": { "$ref": "#/definitions/api.APIValidatorNameInfo" } } } }, "api.APIValidatorNamesRequest": { "type": "object", "properties": { "indices": { "type": "array", "items": { "type": "integer" } }, "pubkeys": { "type": "array", "items": { "type": "string" } } } }, "api.APIValidatorNamesResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIValidatorNamesData" }, "status": { "type": "string" } } }, "api.APIValidatorStats": { "type": "object", "properties": { "active_validator_count": { "type": "integer" }, "average_balance": { "type": "integer" }, "total_active_balance": { "type": "integer" }, "total_balance": { "type": "integer" }, "total_eligible_ether": { "type": "integer" } } }, "api.APIValidatorStatusInfo": { "type": "object", "properties": { "activation_epoch": { "type": "integer" }, "effective_balance": { "type": "integer" }, "exit_epoch": { "type": "integer" }, "index": { "type": "integer" }, "slashed": { "type": "boolean" }, "status": { "type": "string" }, "withdrawable_epoch": { "type": "integer" } } }, "api.APIValidatorsActivityData": { "type": "object", "properties": { "current_epoch": { "type": "integer" }, "finalized_epoch": { "type": "integer" }, "first_group": { "type": "integer" }, "group_by": { "description": "Filter and grouping options", "type": "integer" }, "group_count": { "type": "integer" }, "groups": { "type": "array", "items": { "$ref": "#/definitions/api.APIValidatorActivityGroup" } }, "last_group": { "type": "integer" }, "page_index": { "type": "integer" }, "search_term": { "type": "string" }, "sorting": { "type": "string" }, "total_groups": { "type": "integer" }, "total_pages": { "type": "integer" } } }, "api.APIValidatorsActivityResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIValidatorsActivityData" }, "status": { "type": "string" } } }, "api.APIValidatorsData": { "type": "object", "properties": { "count": { "type": "integer" }, "current_epoch": { "type": "integer" }, "finalized_epoch": { "type": "integer" }, "first_validator": { "type": "integer" }, "last_validator": { "type": "integer" }, "page_index": { "type": "integer" }, "total_count": { "type": "integer" }, "total_pages": { "type": "integer" }, "validators": { "type": "array", "items": { "$ref": "#/definitions/api.APIValidatorInfo" } } } }, "api.APIValidatorsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIValidatorsData" }, "status": { "type": "string" } } }, "api.APIValidatorsStatusData": { "type": "object", "properties": { "count": { "type": "integer" }, "validators": { "type": "array", "items": { "$ref": "#/definitions/api.APIValidatorStatusInfo" } } } }, "api.APIValidatorsStatusRequest": { "type": "object", "properties": { "indices": { "type": "array", "items": { "type": "integer" } } } }, "api.APIValidatorsStatusResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIValidatorsStatusData" }, "status": { "type": "string" } } }, "api.APIVoluntaryExitInfo": { "type": "object", "properties": { "orphaned": { "type": "boolean" }, "public_key": { "type": "string" }, "slot_number": { "type": "integer" }, "slot_root": { "type": "string" }, "time": { "type": "integer" }, "validator_balance": { "type": "integer" }, "validator_index": { "type": "integer" }, "validator_liveness": { "type": "integer" }, "validator_liveness_total": { "type": "integer" }, "validator_name": { "type": "string" }, "validator_status": { "type": "string" }, "withdrawal_credentials": { "type": "string" } } }, "api.APIVoluntaryExitsData": { "type": "object", "properties": { "count": { "type": "integer" }, "page_index": { "type": "integer" }, "total_count": { "type": "integer" }, "total_pages": { "type": "integer" }, "voluntary_exits": { "type": "array", "items": { "$ref": "#/definitions/api.APIVoluntaryExitInfo" } } } }, "api.APIVoluntaryExitsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIVoluntaryExitsData" }, "status": { "type": "string" } } }, "api.APIWithdrawalRequestInfo": { "type": "object", "properties": { "amount": { "type": "integer" }, "is_included": { "type": "boolean" }, "public_key": { "type": "string" }, "result": { "type": "integer" }, "result_message": { "type": "string" }, "slot_number": { "type": "integer" }, "slot_root": { "type": "string" }, "source_address": { "type": "string" }, "status": { "description": "0=pending, 1=included, 2=orphaned", "type": "integer" }, "time": { "type": "integer" }, "transaction_details": { "$ref": "#/definitions/api.APIWithdrawalRequestTxDetails" }, "transaction_hash": { "type": "string" }, "tx_status": { "description": "0=pending, 1=confirmed, 2=orphaned", "type": "integer" }, "validator_index": { "type": "integer" }, "validator_name": { "type": "string" }, "validator_valid": { "type": "boolean" } } }, "api.APIWithdrawalRequestTxDetails": { "type": "object", "properties": { "block_hash": { "type": "string" }, "block_number": { "type": "integer" }, "block_time": { "type": "integer" }, "tx_hash": { "type": "string" }, "tx_origin": { "type": "string" }, "tx_target": { "type": "string" } } }, "api.APIWithdrawalRequestsData": { "type": "object", "properties": { "count": { "type": "integer" }, "total_pending": { "type": "integer" }, "total_requests": { "type": "integer" }, "withdrawal_requests": { "type": "array", "items": { "$ref": "#/definitions/api.APIWithdrawalRequestInfo" } } } }, "api.APIWithdrawalRequestsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/api.APIWithdrawalRequestsData" }, "status": { "type": "string" } } }, "api.ApiResponse": { "type": "object", "properties": { "data": {}, "status": { "type": "string" } } }, "api.ApiValidatorDepositsResponseV1": { "type": "object", "properties": { "amount": { "type": "integer" }, "block_number": { "type": "integer" }, "block_ts": { "type": "integer" }, "from_address": { "type": "string" }, "merkletree_index": { "type": "string" }, "publickey": { "type": "string" }, "removed": { "type": "boolean" }, "signature": { "type": "string" }, "tx_hash": { "type": "string" }, "tx_index": { "type": "integer" }, "tx_input": { "type": "string" }, "valid_signature": { "type": "boolean" }, "withdrawal_credentials": { "type": "string" } } }, "api.ApiValidatorEth1ResponseV1": { "type": "object", "properties": { "public_key": { "type": "string" }, "valid_signature": { "type": "boolean" }, "validator_index": { "type": "integer" } } }, "api.ApiValidatorRequestV1": { "type": "object", "properties": { "indicesOrPubkey": { "type": "string" } } }, "api.ApiValidatorResponseV1": { "type": "object", "properties": { "activationeligibilityepoch": { "type": "integer" }, "activationepoch": { "type": "integer" }, "balance": { "type": "integer" }, "effectivebalance": { "type": "integer" }, "exitepoch": { "type": "integer" }, "isonline": { "type": "boolean" }, "name": { "type": "string" }, "pubkey": { "type": "string" }, "slashed": { "type": "boolean" }, "status": { "type": "string" }, "validatorindex": { "type": "integer" }, "withdrawableepoch": { "type": "integer" }, "withdrawalcredentials": { "type": "string" } } }, "api.ApiWithdrawalCredentialsResponseV1": { "type": "object", "properties": { "publickey": { "type": "string" }, "validatorindex": { "type": "integer" } } }, "api.SlotResult": { "type": "object", "properties": { "error": { "type": "string" }, "total_columns": { "type": "integer" }, "valid_column_count": { "type": "integer" } } }, "models.ExecutionTimeDetail": { "type": "object", "properties": { "avg_time": { "type": "integer" }, "client_type": { "type": "string" }, "count": { "type": "integer" }, "max_time": { "type": "integer" }, "min_time": { "type": "integer" } } } }, "securityDefinitions": { "BearerAuth": { "description": "Type \"Bearer\" followed by a space and JWT token.", "type": "apiKey", "name": "Authorization", "in": "header" } }, "tags": [ { "description": "Validator related endpoints", "name": "Validator" }, { "description": "Epoch related endpoints", "name": "Epoch" }, { "description": "Client information endpoints", "name": "clients" } ] }