{
  "service": "beaconchain",
  "displayName": "Beaconcha.in",
  "categories": [
    "Finance",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "beaconchain_api_key",
      "description": "Beaconcha.in API key sent with the Authorization Bearer header. Get or manage it in the Beaconcha.in user portal: https://beaconcha.in/user/api-key-management"
    }
  ],
  "homepageUrl": "https://beaconcha.in",
  "actions": [
    {
      "id": "beaconchain.get_network_performance",
      "service": "beaconchain",
      "name": "get_network_performance",
      "description": "Get aggregated Beaconcha.in network performance metrics for a fixed evaluation window.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chain": {
            "type": "string",
            "enum": [
              "mainnet",
              "hoodi"
            ],
            "description": "The Ethereum chain to query."
          },
          "evaluationWindow": {
            "type": "string",
            "enum": [
              "24h",
              "7d",
              "30d",
              "90d",
              "all_time"
            ],
            "description": "The fixed evaluation window used for network performance aggregation."
          }
        },
        "additionalProperties": false,
        "required": [
          "evaluationWindow"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "performance": {
            "type": "object",
            "properties": {
              "finality": {
                "type": "string",
                "description": "The finality status returned for the requested range."
              },
              "beaconScore": {
                "type": "object",
                "properties": {
                  "total": {
                    "type": "number",
                    "description": "The overall beacon score."
                  },
                  "attestation": {
                    "type": "number",
                    "description": "The attestation beacon score."
                  },
                  "proposal": {
                    "type": "number",
                    "description": "The proposal beacon score."
                  },
                  "syncCommittee": {
                    "type": "number",
                    "description": "The sync committee beacon score."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "total",
                  "attestation",
                  "proposal",
                  "syncCommittee"
                ],
                "description": "The beacon score summary."
              },
              "duties": {
                "type": "object",
                "properties": {
                  "attestation": {
                    "type": "object",
                    "properties": {
                      "included": {
                        "type": "integer",
                        "description": "The number of included attestations."
                      },
                      "assigned": {
                        "type": "integer",
                        "description": "The number of assigned attestations."
                      },
                      "correctHead": {
                        "type": "integer",
                        "description": "The number of correct head votes."
                      },
                      "correctSource": {
                        "type": "integer",
                        "description": "The number of correct source votes."
                      },
                      "correctTarget": {
                        "type": "integer",
                        "description": "The number of correct target votes."
                      },
                      "valuableCorrectHead": {
                        "type": "integer",
                        "description": "The number of valuable correct head votes."
                      },
                      "valuableCorrectSource": {
                        "type": "integer",
                        "description": "The number of valuable correct source votes."
                      },
                      "valuableCorrectTarget": {
                        "type": "integer",
                        "description": "The number of valuable correct target votes."
                      },
                      "avgInclusionDelay": {
                        "type": "number",
                        "description": "The average inclusion delay across all returned attestations."
                      },
                      "avgInclusionDelayExcludingMissedSlots": {
                        "type": "number",
                        "description": "The average inclusion delay excluding missed slots."
                      },
                      "missed": {
                        "type": "integer",
                        "description": "The number of missed attestations."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "included",
                      "assigned",
                      "correctHead",
                      "correctSource",
                      "correctTarget",
                      "valuableCorrectHead",
                      "valuableCorrectSource",
                      "valuableCorrectTarget",
                      "avgInclusionDelay",
                      "avgInclusionDelayExcludingMissedSlots",
                      "missed"
                    ],
                    "description": "The normalized attestation duty metrics."
                  },
                  "syncCommittee": {
                    "type": "object",
                    "properties": {
                      "successful": {
                        "type": "integer",
                        "description": "The number of successful sync committee duties."
                      },
                      "assigned": {
                        "type": "integer",
                        "description": "The number of assigned sync committee duties."
                      },
                      "missed": {
                        "type": "integer",
                        "description": "The number of missed sync committee duties."
                      },
                      "scheduled": {
                        "type": "integer",
                        "description": "The number of scheduled sync committee duties."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "successful",
                      "assigned",
                      "missed",
                      "scheduled"
                    ],
                    "description": "The normalized sync committee duty metrics."
                  },
                  "proposal": {
                    "type": "object",
                    "properties": {
                      "successful": {
                        "type": "integer",
                        "description": "The number of successful proposal duties."
                      },
                      "assigned": {
                        "type": "integer",
                        "description": "The number of assigned proposal duties."
                      },
                      "missed": {
                        "type": "integer",
                        "description": "The number of missed proposal duties."
                      },
                      "includedSlashings": {
                        "type": "integer",
                        "description": "The number of slashings included by proposal duties."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "successful",
                      "assigned",
                      "missed",
                      "includedSlashings"
                    ],
                    "description": "The normalized proposal duty metrics."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "attestation",
                  "syncCommittee",
                  "proposal"
                ],
                "description": "The grouped duty metrics."
              }
            },
            "additionalProperties": false,
            "required": [
              "finality",
              "beaconScore",
              "duties"
            ],
            "description": "The normalized network performance payload."
          },
          "range": {
            "type": "object",
            "properties": {
              "slot": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              },
              "epoch": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              },
              "timestamp": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              }
            },
            "additionalProperties": false,
            "required": [
              "slot",
              "epoch",
              "timestamp"
            ],
            "description": "The range covered by the returned dataset."
          }
        },
        "additionalProperties": false,
        "required": [
          "performance",
          "range"
        ],
        "description": "The network performance response returned by Beaconcha.in."
      }
    },
    {
      "id": "beaconchain.get_staking_queues",
      "service": "beaconchain",
      "name": "get_staking_queues",
      "description": "Get the current staking queue metrics for the requested Beaconcha.in chain.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chain": {
            "type": "string",
            "enum": [
              "mainnet",
              "hoodi"
            ],
            "description": "The Ethereum chain to query."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "queues": {
            "type": "object",
            "properties": {
              "finality": {
                "type": "string",
                "description": "The current finality status of the network."
              },
              "depositQueue": {
                "type": "object",
                "properties": {
                  "churnWei": {
                    "type": "string",
                    "description": "The activation churn limit in wei."
                  },
                  "depositCount": {
                    "type": "integer",
                    "description": "The number of validators waiting for activation."
                  },
                  "balanceWei": {
                    "type": "string",
                    "description": "The aggregate balance of the deposit queue in wei."
                  },
                  "estimatedProcessedAt": {
                    "type": "integer",
                    "description": "The estimated Unix timestamp when the deposit queue will be processed."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "churnWei",
                  "depositCount",
                  "balanceWei",
                  "estimatedProcessedAt"
                ],
                "description": "The current deposit queue metrics."
              },
              "exitQueue": {
                "type": "object",
                "properties": {
                  "churnWei": {
                    "type": "string",
                    "description": "The exit churn limit in wei."
                  },
                  "count": {
                    "type": "integer",
                    "description": "The number of validators waiting to exit."
                  },
                  "balanceWei": {
                    "type": "string",
                    "description": "The aggregate balance of the exit queue in wei."
                  },
                  "estimatedProcessedAt": {
                    "type": "integer",
                    "description": "The estimated Unix timestamp when the exit queue will be processed."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "churnWei",
                  "count",
                  "balanceWei",
                  "estimatedProcessedAt"
                ],
                "description": "The current exit queue metrics."
              },
              "withdrawalSweep": {
                "type": "object",
                "properties": {
                  "lastSweptValidatorIndex": {
                    "type": "integer",
                    "description": "The last validator index that was swept for withdrawals."
                  },
                  "estimatedSweepDelay": {
                    "type": "integer",
                    "description": "The estimated delay in seconds before a withdrawal sweep is completed."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "lastSweptValidatorIndex",
                  "estimatedSweepDelay"
                ],
                "description": "The current withdrawal sweep metrics."
              }
            },
            "additionalProperties": false,
            "required": [
              "finality",
              "depositQueue",
              "exitQueue",
              "withdrawalSweep"
            ],
            "description": "The normalized staking queue metrics."
          }
        },
        "additionalProperties": false,
        "required": [
          "queues"
        ],
        "description": "The staking queue response returned by Beaconcha.in."
      }
    },
    {
      "id": "beaconchain.get_validator",
      "service": "beaconchain",
      "name": "get_validator",
      "description": "Get the current validator snapshot for a single validator identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chain": {
            "type": "string",
            "enum": [
              "mainnet",
              "hoodi"
            ],
            "description": "The Ethereum chain to query."
          },
          "validatorIdentifier": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "description": "A validator index expressed as a non-negative integer."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A validator public key or another validator identifier string."
              }
            ],
            "description": "A validator identifier accepted by Beaconcha.in."
          }
        },
        "additionalProperties": false,
        "required": [
          "validatorIdentifier"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "validator": {
            "type": "object",
            "properties": {
              "validatorIndex": {
                "type": "integer",
                "description": "The validator index."
              },
              "publicKey": {
                "type": "string",
                "description": "The validator public key."
              },
              "slashed": {
                "type": "boolean",
                "description": "Whether the validator has been slashed."
              },
              "status": {
                "type": "string",
                "description": "The current validator status."
              },
              "online": {
                "type": "boolean",
                "description": "Whether the validator is currently online."
              },
              "finality": {
                "type": "string",
                "description": "The finality mode used by the returned validator snapshot."
              },
              "balances": {
                "type": "object",
                "properties": {
                  "currentGwei": {
                    "type": "string",
                    "description": "The current validator balance in gwei."
                  },
                  "effectiveGwei": {
                    "type": "string",
                    "description": "The effective validator balance in gwei."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "currentGwei",
                  "effectiveGwei"
                ],
                "description": "The normalized validator balances."
              },
              "withdrawalCredentials": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "The withdrawal credential type."
                  },
                  "prefix": {
                    "type": "string",
                    "description": "The withdrawal credential prefix."
                  },
                  "credential": {
                    "type": "string",
                    "description": "The normalized withdrawal credential body."
                  },
                  "address": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "The resolved withdrawal address when present."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false,
                "required": [
                  "type",
                  "prefix",
                  "credential",
                  "address"
                ],
                "description": "The normalized withdrawal credentials."
              },
              "lifeCycleEpochs": {
                "type": "object",
                "properties": {
                  "activationEligibility": {
                    "type": "integer",
                    "description": "The activation eligibility epoch of the validator."
                  },
                  "activation": {
                    "type": "integer",
                    "description": "The activation epoch of the validator."
                  },
                  "exit": {
                    "type": "integer",
                    "description": "The exit epoch of the validator."
                  },
                  "withdrawable": {
                    "type": "integer",
                    "description": "The withdrawable epoch of the validator."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "activationEligibility",
                  "activation",
                  "exit",
                  "withdrawable"
                ],
                "description": "The validator lifecycle epochs."
              }
            },
            "additionalProperties": false,
            "required": [
              "validatorIndex",
              "publicKey",
              "slashed",
              "status",
              "online",
              "finality",
              "balances",
              "withdrawalCredentials",
              "lifeCycleEpochs"
            ],
            "description": "A normalized Beaconcha.in validator summary."
          },
          "range": {
            "type": "object",
            "properties": {
              "slot": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              },
              "epoch": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              },
              "timestamp": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              }
            },
            "additionalProperties": false,
            "required": [
              "slot",
              "epoch",
              "timestamp"
            ],
            "description": "The range covered by the returned dataset."
          }
        },
        "additionalProperties": false,
        "required": [
          "validator",
          "range"
        ],
        "description": "The single-validator response returned by Beaconcha.in."
      }
    },
    {
      "id": "beaconchain.get_validator_consensus_rewards",
      "service": "beaconchain",
      "name": "get_validator_consensus_rewards",
      "description": "Get per-validator reward breakdowns for a finalized Beaconcha.in epoch.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chain": {
            "type": "string",
            "enum": [
              "mainnet",
              "hoodi"
            ],
            "description": "The Ethereum chain to query."
          },
          "validatorIdentifiers": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "description": "A validator index expressed as a non-negative integer."
                },
                {
                  "type": "string",
                  "minLength": 1,
                  "description": "A validator public key or another validator identifier string."
                }
              ],
              "description": "A validator identifier accepted by Beaconcha.in."
            },
            "description": "Ordered list of validator identifiers used to filter the result.",
            "minItems": 1,
            "maxItems": 100
          },
          "epoch": {
            "type": "integer",
            "minimum": 0,
            "description": "The finalized epoch used for reward breakdown queries."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by a previous call."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "The number of items to return per page."
          }
        },
        "additionalProperties": false,
        "required": [
          "validatorIdentifiers"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "rewards": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "validatorIndex": {
                  "type": "integer",
                  "description": "The validator index."
                },
                "publicKey": {
                  "type": "string",
                  "description": "The validator public key."
                },
                "totalGwei": {
                  "type": "string",
                  "description": "The net reward total in gwei."
                },
                "totalRewardGwei": {
                  "type": "string",
                  "description": "The gross reward total in gwei."
                },
                "totalPenaltyGwei": {
                  "type": "string",
                  "description": "The penalty total in gwei."
                }
              },
              "additionalProperties": false,
              "required": [
                "validatorIndex",
                "publicKey",
                "totalGwei",
                "totalRewardGwei",
                "totalPenaltyGwei"
              ],
              "description": "A normalized validator reward summary."
            },
            "description": "The validator rewards returned for the requested epoch."
          },
          "range": {
            "type": "object",
            "properties": {
              "slot": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              },
              "epoch": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              },
              "timestamp": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              }
            },
            "additionalProperties": false,
            "required": [
              "slot",
              "epoch",
              "timestamp"
            ],
            "description": "The range covered by the returned dataset."
          },
          "paging": {
            "type": "object",
            "properties": {
              "nextCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor used to fetch the next page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor used to fetch the previous page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageSize": {
                "type": "integer",
                "description": "The number of items returned per page."
              }
            },
            "additionalProperties": false,
            "required": [
              "nextCursor",
              "previousCursor",
              "pageSize"
            ],
            "description": "Normalized pagination metadata returned by Beaconcha.in."
          }
        },
        "additionalProperties": false,
        "required": [
          "rewards",
          "range",
          "paging"
        ],
        "description": "The validator rewards response returned by Beaconcha.in."
      }
    },
    {
      "id": "beaconchain.list_validators",
      "service": "beaconchain",
      "name": "list_validators",
      "description": "List the current validator snapshots for one or more validator identifiers.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chain": {
            "type": "string",
            "enum": [
              "mainnet",
              "hoodi"
            ],
            "description": "The Ethereum chain to query."
          },
          "validatorIdentifiers": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "description": "A validator index expressed as a non-negative integer."
                },
                {
                  "type": "string",
                  "minLength": 1,
                  "description": "A validator public key or another validator identifier string."
                }
              ],
              "description": "A validator identifier accepted by Beaconcha.in."
            },
            "description": "Ordered list of validator identifiers used to filter the result.",
            "minItems": 1,
            "maxItems": 100
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by a previous call."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "The number of items to return per page."
          }
        },
        "additionalProperties": false,
        "required": [
          "validatorIdentifiers"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "validators": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "validatorIndex": {
                  "type": "integer",
                  "description": "The validator index."
                },
                "publicKey": {
                  "type": "string",
                  "description": "The validator public key."
                },
                "slashed": {
                  "type": "boolean",
                  "description": "Whether the validator has been slashed."
                },
                "status": {
                  "type": "string",
                  "description": "The current validator status."
                },
                "online": {
                  "type": "boolean",
                  "description": "Whether the validator is currently online."
                },
                "finality": {
                  "type": "string",
                  "description": "The finality mode used by the returned validator snapshot."
                },
                "balances": {
                  "type": "object",
                  "properties": {
                    "currentGwei": {
                      "type": "string",
                      "description": "The current validator balance in gwei."
                    },
                    "effectiveGwei": {
                      "type": "string",
                      "description": "The effective validator balance in gwei."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "currentGwei",
                    "effectiveGwei"
                  ],
                  "description": "The normalized validator balances."
                },
                "withdrawalCredentials": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "The withdrawal credential type."
                    },
                    "prefix": {
                      "type": "string",
                      "description": "The withdrawal credential prefix."
                    },
                    "credential": {
                      "type": "string",
                      "description": "The normalized withdrawal credential body."
                    },
                    "address": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "The resolved withdrawal address when present."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "type",
                    "prefix",
                    "credential",
                    "address"
                  ],
                  "description": "The normalized withdrawal credentials."
                },
                "lifeCycleEpochs": {
                  "type": "object",
                  "properties": {
                    "activationEligibility": {
                      "type": "integer",
                      "description": "The activation eligibility epoch of the validator."
                    },
                    "activation": {
                      "type": "integer",
                      "description": "The activation epoch of the validator."
                    },
                    "exit": {
                      "type": "integer",
                      "description": "The exit epoch of the validator."
                    },
                    "withdrawable": {
                      "type": "integer",
                      "description": "The withdrawable epoch of the validator."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "activationEligibility",
                    "activation",
                    "exit",
                    "withdrawable"
                  ],
                  "description": "The validator lifecycle epochs."
                }
              },
              "additionalProperties": false,
              "required": [
                "validatorIndex",
                "publicKey",
                "slashed",
                "status",
                "online",
                "finality",
                "balances",
                "withdrawalCredentials",
                "lifeCycleEpochs"
              ],
              "description": "A normalized Beaconcha.in validator summary."
            },
            "description": "The ordered validators returned for the requested selector."
          },
          "range": {
            "type": "object",
            "properties": {
              "slot": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              },
              "epoch": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              },
              "timestamp": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "integer",
                    "description": "The inclusive start value of the covered range."
                  },
                  "end": {
                    "type": "integer",
                    "description": "The inclusive end value of the covered range."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "description": "A normalized numeric range returned by Beaconcha.in."
              }
            },
            "additionalProperties": false,
            "required": [
              "slot",
              "epoch",
              "timestamp"
            ],
            "description": "The range covered by the returned dataset."
          },
          "paging": {
            "type": "object",
            "properties": {
              "nextCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor used to fetch the next page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor used to fetch the previous page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageSize": {
                "type": "integer",
                "description": "The number of items returned per page."
              }
            },
            "additionalProperties": false,
            "required": [
              "nextCursor",
              "previousCursor",
              "pageSize"
            ],
            "description": "Normalized pagination metadata returned by Beaconcha.in."
          }
        },
        "additionalProperties": false,
        "required": [
          "validators",
          "range",
          "paging"
        ],
        "description": "The multi-validator response returned by Beaconcha.in."
      }
    }
  ]
}
