TriportRPC

minimumLedgerSlot

POSThttps://api.triport.io

Returns the lowest slot for which the node currently has any ledger data.

Solanasol_read_rpcfree+ — free 20 / basic 60 / pro 200 / business 600 RPS

minimumLedgerSlot returns the lowest slot the node has any information about in its ledger. As the ledger is trimmed by the node's retention policy, this floor advances over time, so it marks the oldest point from which raw ledger data may still be available.

Use it to discover the earliest slot you can attempt to query against a node — for example, before walking historical slots or calling block/transaction reads on old data. If you request data below this floor, the node no longer holds it.

Gotcha — not the same as the confirmed-block floor This value may be lower than getFirstAvailableBlock. minimumLedgerSlot counts any ledger data the node retains, while getFirstAvailableBlock reports the earliest confirmed block available. A slot can be at or above minimumLedgerSlot yet still have no confirmed block to fetch. When you need a slot you can actually read a block from, prefer getFirstAvailableBlock as the floor.

Parameters

None. The params array is empty.

optional
This method takes no parameters.

Response

Response fields

FieldTypeDescription
resultintegerThe lowest slot for which the node has any ledger data.

Errors

CodeMeaningWhen it happens
-32003Rate limit exceededMore than your tier's RPS for sol_read_rpc (free 20 / basic 60 / pro 200 / business 600); a burst up to 2× is allowed before throttling.
-32601Method not recognisedThe method name was misspelled or is not in the Solana catalog.
-32602Invalid paramsA non-empty params array was sent — this method accepts no parameters.

See the shared errors reference for the full error envelope and the error.data fields.

Examples

JavaScript (fetch)

const res = await fetch("https://api.triport.io", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.TRIPORT_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "minimumLedgerSlot",
    params: [],
  }),
});


const { result } = await res.json();
console.log(`Minimum ledger slot: ${result}`);

TypeScript SDK (@triport/sdk)

import { TriportClient } from "@triport/sdk";


const client = new TriportClient({ apiKey: process.env.TRIPORT_API_KEY! });


const slot: number = await client.solana.minimumLedgerSlot();
console.log(`Minimum ledger slot: ${slot}`);

Python (triport-sdk)

import os
from triport import TriportClient


client = TriportClient(api_key=os.environ["TRIPORT_API_KEY"])


slot = client.solana.minimum_ledger_slot()
print(f"Minimum ledger slot: {slot}")

Notes

  • Moving floor: the value rises as the node trims its ledger; re-query rather than caching it, and treat it as a lower bound that only ever increases.
  • Confirmed-block floor: for the earliest slot you can fetch a block from, use getFirstAvailableBlock, which may report a higher slot than this method.
  • Related: getSlot returns the latest processed slot — pair the two to bound the range of slots a node can serve.
  • Staging: the same request works against https://staging.api.triport.io for testing.