---
updatedAt: 2025-09-18T22:06:57.000Z
agentTools:
  projectIndex: https://docs.nodereal.io/llms.txt
---

# Get fork choice leaves

Retrieves all possible chain heads (leaves of fork choice tree).

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "Eth Beacon Node API",
    "description": "API specification for the beacon node, which enables users to query and participate in Ethereum 2.0 phase 0 beacon chain.\n\nAll requests by default send and receive JSON, and as such should have either or both of the \"Content-Type: application/json\"\nand \"Accept: application/json\" headers.  In addition, some requests can return data in the SSZ format.  To indicate that SSZ\ndata is required in response to a request the header \"Accept: application/octet-stream\" should be sent.  Note that only a subset\nof requests can respond with data in SSZ format; these are noted in each individual request.\n\nAPI endpoints are individually versioned.  As such, there is no direct relationship between all v1 endpoints, all v2 endpoints,\n_etc._ and no such relationship should be inferred.  All JSON responses return the requested data under a `data` key in the top\nlevel of their response.  Additional metadata may or may not be present in other keys at the top level of the response, dependent\non the endpoint.  The rules that require an increase in version number are as follows:\n\n  - no field that is listed in an endpoint shall be removed without an increase in the version number\n  - no field that is listed in an endpoint shall be altered in terms of format (_e.g._ from a string to an array) without an\n    increase in the version number\n\nNote that it is possible for a field to be added to an endpoint's data or metadata without an increase in the version number.\n",
    "version": "v2.3.0 - Eth2Spec v1.1.0",
    "contact": {
      "name": "Ethereum Github",
      "url": "https://github.com/ethereum/beacon-apis/issues"
    },
    "license": {
      "name": "CC0-1.0",
      "url": "https://creativecommons.org/publicdomain/zero/1.0/"
    }
  },
  "servers": [
    {
      "url": "{server_url}/{api_key}",
      "variables": {
        "server_url": {
          "description": "Beacon node API url",
          "default": "eth2-beacon-mainnet.nodereal.io/v1"
        },
        "api_key": {
          "description": "Beacon node API key",
          "default": "api_key"
        }
      }
    }
  ],
  "tags": [
    {
      "name": "Debug",
      "description": "Set of endpoints to debug chain and shouldn't be exposed publicly."
    }
  ],
  "paths": {
    "/eth/v2/debug/beacon/heads": {
      "get": {
        "operationId": "getDebugChainHeadsV2",
        "summary": "Get fork choice leaves",
        "description": "Retrieves all possible chain heads (leaves of fork choice tree).",
        "tags": [
          "Debug"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "title": "GetDebugChainHeadsResponse",
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "root": {
                            "type": "string",
                            "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
                            "pattern": "^0x[a-fA-F0-9]{64}$"
                          },
                          "slot": {
                            "type": "string",
                            "example": "1"
                          },
                          "execution_optimistic": {
                            "allOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "example": false
                              },
                              {
                                "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value."
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Beacon node internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "description": "Either specific error code in case of invalid request or http status code",
                      "type": "number",
                      "example": 404
                    },
                    "message": {
                      "description": "Message describing error",
                      "type": "string"
                    },
                    "stacktraces": {
                      "description": "Optional stacktraces, sent when node is in debug mode",
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                },
                "example": {
                  "code": 500,
                  "message": "Internal server error"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  }
}
```