Documentation index

getFirstAvailableBlock

Returns the slot of the lowest confirmed block that has not been purged from the node's ledger. Validators periodically prune old ledger data, so this method tells you the earliest block you can query. This is important for indexers and analytics services that need to know the available data range, and for error handling when requesting historical blocks.

Parameters

This method does not accept any parameters.

Response

Returns a single value:

FieldTypeDescription
resultu64Slot of the first available block

Code Examples

cURL

Terminal
curl http://88.216.36.108:7999 -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getFirstAvailableBlock",
  "params": []
}'

TypeScript

TypeScript
const response = await fetch("http://88.216.36.108:7999", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "getFirstAvailableBlock",
    params: []
  }),
});
const { result } = await response.json();
console.log("First available block:", result);

Python

Python
import requests

response = requests.post("http://88.216.36.108:7999", json={
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getFirstAvailableBlock",
    "params": []
})
result = response.json()["result"]
print(f"First available block: {result}")

Rust

Rust
use reqwest::Client;
use serde_json::json;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();
    let res = client.post("http://88.216.36.108:7999")
        .json(&json!({
            "jsonrpc": "2.0",
            "id": 1,
            "method": "getFirstAvailableBlock",
            "params": []
        }))
        .send().await?
        .text().await?;
    println!("{}", res);
    Ok(())
}

Example Response

JSON
{
  "jsonrpc": "2.0",
  "result": 128000000,
  "id": 1
}