Leader Slot Information API Documentation

What is the Leader Slot Information (getLeaderSlots) API?

getLeaderSlots is an extended Solana RPC method that returns upcoming leader slot records with validator identity, stake weight, network endpoint metadata, estimated leader location, and reference latency measurements. If you hold ERPC usage credits (API tokens), you can call it in the same format as a standard Solana RPC method.
This API provides:
  • Leader validator schedule starting from the requested slot
  • stakeWeight for each leader validator
  • Estimated leader region, city, country, coordinates, ASN organization, and timezone
  • Reference ping measurements from ERPC observation regions through pingToLeaders

Endpoint and Request Body Example

text
https://edge.erpc.global?api-key=<YOUR_API_KEY>
Specify the starting slot number in params.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getLeaderSlots",
  "params": [436946064]
}

Example (HTTP)

bash
curl 'https://edge.erpc.global?api-key=<YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"getLeaderSlots",
    "params":[436946064]
  }'

Example Response (JSON)

The current response wraps records in result.data[]. result.total shows how many records were returned. The data[] array below is abbreviated to three of the 100 records for this request. The first entry shows pingToLeaders from all seven ERPC observation regions; the remaining entries are trimmed to one region for readability.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "success": true,
    "message": "Leader schedule records retrieved successfully",
    "total": 100,
    "data": [
      {
        "identity": "BXAxLMMMUNYfC1z166VjWHR3WjTmqzLxB837o5ghmRtH",
        "epoch": 1011,
        "slot": "436946064",
        "stakeWeight": 819031.365477103,
        "ipAddress": "202.8.10.164",
        "gossipPort": 8000,
        "tpuPort": null,
        "tpuQuicPort": 5010,
        "rpcAddress": null,
        "version": "4.1.2",
        "featureSet": "3345198602",
        "leaderRegion": "dublin",
        "leaderCity": "Crumlin",
        "leaderCountry": "IE",
        "leaderLat": 53.32154,
        "leaderLon": -6.31439,
        "leaderOrg": "AS20326 TeraSwitch Networks Inc.",
        "leaderTimezone": "Europe/Dublin",
        "pingToLeaders": [
          {
            "city": "Frankfurt am Main",
            "region": "frankfurt",
            "ms": 18.438,
            "icmpReplied": true,
            "fromIp": "185.191.118.11",
            "country": "DE",
            "lat": 50.139,
            "lon": 8.6725,
            "org": "AS213896 UAB Cherry Servers",
            "postal": "60320",
            "timezone": "Europe/Berlin",
            "measuredAt": "2026-08-03T06:20:48.000Z"
          },
          {
            "city": "Newark",
            "region": "ny",
            "ms": 74.981,
            "icmpReplied": true,
            "fromIp": "64.130.37.222",
            "country": "US",
            "lat": 40.73566,
            "lon": -74.17237,
            "org": "AS20326 TeraSwitch Networks Inc.",
            "postal": "07102",
            "timezone": "America/New_York",
            "measuredAt": "2026-08-03T06:22:21.000Z"
          },
          {
            "city": "London",
            "region": "london",
            "ms": 10.978,
            "icmpReplied": true,
            "fromIp": "67.209.52.250",
            "country": "GB",
            "lat": 51.50853,
            "lon": -0.12574,
            "org": "AS20326 TeraSwitch Networks Inc.",
            "postal": "WC2N",
            "timezone": "Europe/London",
            "measuredAt": "2026-08-03T06:23:06.000Z"
          },
          {
            "city": "Singapore",
            "region": "singapore",
            "ms": 166.379,
            "icmpReplied": true,
            "fromIp": "202.8.11.52",
            "country": "SG",
            "lat": 1.2959,
            "lon": 103.7907,
            "org": "AS20326 TeraSwitch Networks Inc.",
            "postal": "139963",
            "timezone": "Asia/Singapore",
            "measuredAt": "2026-08-03T06:24:52.000Z"
          },
          {
            "city": "Amsterdam",
            "region": "amsterdam",
            "ms": 12.827,
            "icmpReplied": true,
            "fromIp": "84.32.103.245",
            "country": "NL",
            "lat": 52.37403,
            "lon": 4.88969,
            "org": "AS59642 UAB Cherry Servers",
            "postal": "1012",
            "timezone": "Europe/Amsterdam",
            "measuredAt": "2026-08-03T06:21:33.000Z"
          },
          {
            "city": "Ebara",
            "region": "tokyo",
            "ms": 212.499,
            "icmpReplied": true,
            "fromIp": "198.13.133.88",
            "country": "JP",
            "lat": 35.617,
            "lon": 139.7486,
            "org": "AS20326 TeraSwitch Networks Inc.",
            "postal": "140-0002",
            "timezone": "Asia/Tokyo",
            "measuredAt": "2026-08-03T06:24:01.000Z"
          },
          {
            "city": "Sydney",
            "region": "sydney",
            "ms": 274.379,
            "icmpReplied": true,
            "fromIp": "82.26.116.36",
            "country": "AU",
            "lat": -33.86785,
            "lon": 151.20732,
            "org": "AS29802 HIVELOCITY, Inc.",
            "postal": "1001",
            "timezone": "Australia/Sydney",
            "measuredAt": "2026-08-03T06:25:50.000Z"
          }
        ]
      },
      {
        "identity": "BXAxLMMMUNYfC1z166VjWHR3WjTmqzLxB837o5ghmRtH",
        "epoch": 1011,
        "slot": "436946065",
        "stakeWeight": 819031.365477103,
        "ipAddress": "202.8.10.164",
        "gossipPort": 8000,
        "tpuPort": null,
        "tpuQuicPort": 5010,
        "rpcAddress": null,
        "version": "4.1.2",
        "featureSet": "3345198602",
        "leaderRegion": "dublin",
        "leaderCity": "Crumlin",
        "leaderCountry": "IE",
        "leaderLat": 53.32154,
        "leaderLon": -6.31439,
        "leaderOrg": "AS20326 TeraSwitch Networks Inc.",
        "leaderTimezone": "Europe/Dublin",
        "pingToLeaders": [
          {
            "city": "Frankfurt am Main",
            "region": "frankfurt",
            "ms": 18.438,
            "icmpReplied": true,
            "fromIp": "185.191.118.11",
            "country": "DE",
            "lat": 50.139,
            "lon": 8.6725,
            "org": "AS213896 UAB Cherry Servers",
            "postal": "60320",
            "timezone": "Europe/Berlin",
            "measuredAt": "2026-08-03T06:20:48.000Z"
          }
        ]
      },
      {
        "identity": "BXAxLMMMUNYfC1z166VjWHR3WjTmqzLxB837o5ghmRtH",
        "epoch": 1011,
        "slot": "436946066",
        "stakeWeight": 819031.365477103,
        "ipAddress": "202.8.10.164",
        "gossipPort": 8000,
        "tpuPort": null,
        "tpuQuicPort": 5010,
        "rpcAddress": null,
        "version": "4.1.2",
        "featureSet": "3345198602",
        "leaderRegion": "dublin",
        "leaderCity": "Crumlin",
        "leaderCountry": "IE",
        "leaderLat": 53.32154,
        "leaderLon": -6.31439,
        "leaderOrg": "AS20326 TeraSwitch Networks Inc.",
        "leaderTimezone": "Europe/Dublin",
        "pingToLeaders": [
          {
            "city": "Frankfurt am Main",
            "region": "frankfurt",
            "ms": 18.438,
            "icmpReplied": true,
            "fromIp": "185.191.118.11",
            "country": "DE",
            "lat": 50.139,
            "lon": 8.6725,
            "org": "AS213896 UAB Cherry Servers",
            "postal": "60320",
            "timezone": "Europe/Berlin",
            "measuredAt": "2026-08-03T06:20:48.000Z"
          }
        ]
      }
    ]
  }
}

Response Fields

FieldMeaning
result.successWhether the request succeeded.
result.messageHuman-readable status message.
result.totalNumber of returned leader slot records. The API currently returns 100 records per request.
result.data[]Ordered leader slot records starting from the requested slot.
identityLeader validator identity public key.
epochSolana epoch containing the slot.
slotSlot number. It is returned as a string, so clients should not assume a JSON number.
stakeWeightStake delegated to the leader validator. Higher stake generally means the validator appears in leader schedules more often over time.
leaderRegionNormalized operational region label used for routing and analysis. It may group nearby cities or provider locations.
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezoneEstimated geolocation and network organization for the leader validator.
pingToLeaders[]Reference latency from ERPC observation regions (frankfurt, amsterdam, ny, london, tokyo, singapore, sydney) to the leader, including region, city, ms, icmpReplied, fromIp, country, coordinates, ASN organization, postal code, timezone, and measuredAt.
pingToLeaders[].icmpRepliedWhether the validator replied to the measurement. When it is false, ms holds a stored sentinel value rather than a latency and should not be read as one; treat false as unknown, not as distant or unusable, since some validators that do not answer ICMP still serve TPU and QUIC normally, and filtering them out can drop a healthy leader from your send path. Check icmpReplied before trusting ms as a latency — it decides whether the number is usable, not which validator to send to.
pingToLeaders[].measuredAtWhen the latency was last measured, in ISO-8601 UTC. Use it to judge how current a reading is. Each observation region measures independently, so entries in the same pingToLeaders array can carry different measuredAt values. An older measuredAt is not a broken reading: when a measurement run fails to complete, the stored value is left in place rather than overwritten with a fabricated one, so it still reflects a genuine past measurement.

Visualizing Leader Slots

The same response can be viewed as a slot-by-slot operational timeline. This example uses Frankfurt as the observation point.
Slot windowLeader regionLeader locationStake weightPing from FrankfurtOperational reading
436946064-436946066dublinCrumlin, IE819,031.3718.438 msOne leader holds three consecutive slots. Frankfurt serves it at 18.4 ms, but London (11.0 ms) and Amsterdam (12.8 ms) are closer — for this window, London or Amsterdam capacity beats Frankfurt.
436946068frankfurtFrankfurt am Main, DE166,438.250.062 msSame-metro leader. Frankfurt resources are strongly favored for this slot.
This view is useful because Solana is global. Unlike traditional HFT, where the main goal is often to sit near one matching engine, Solana leaders rotate across validators around the world. The fastest region changes as the leader schedule changes.

Solana Network Data Website

Validators Solutions - Solana network data
For a public view of validator and network distribution, use Validators Solutions. Use it to understand the broader Solana network, then use getLeaderSlots for the slot-level schedule, stake weight, validator location, and measured latency data needed for operational routing.

Token Usage

The API retrieves 100 leader slot records starting from the specified slot. Each request consumes 420 tokens.
If you need one entry per validator for the whole epoch instead of one entry per slot, use the Validators Information API, which is billed on the number of validators it returns.

Why Leader Slot Information Matters

  • If the leader is geographically or network-path distant, direct transaction delivery becomes inefficient.
  • Stake weight helps estimate how often a validator is likely to appear in the leader schedule over time.
  • During global leader transitions, regional switching strategies are more important than a single global average latency.
  • Combining slot schedule, stake weight, leader location, and measured ping data allows optimized routing and validator placement.

Background

A single Solana epoch consists of approximately 432,000 slots. Continuously collecting leader schedules, validator metadata, geolocation, and latency measurements requires a dedicated data pipeline. ERPC maintains this data and exposes it as an immediately usable leader slot map through the RPC interface.

Strategic Use Cases

  • Detection optimization: prioritize nearby, low-latency leader windows.
  • Multi-region deployment: deploy in FRA, AMS, NY, TY, SGP, and other strategic regions to reduce transition gaps.
  • Stake-aware planning: use stakeWeight to understand which leaders matter more frequently over longer windows.
  • Visualization and analytics: monitor leader ratios, stake distribution, and latency distribution by region.

Availability

getLeaderSlots is available to all ERPC users. API tokens and usage credits can be issued or verified on the ERPC Web Dashboard.

Transaction Success Rate and SWQoS Endpoint

To further improve transaction success rate and execution speed, we recommend using the SWQoS Endpoint. SWQoS (Stake-weighted Quality of Service) prioritizes validators with stake connections. Leaders allocate approximately 80% of bandwidth to priority traffic and 20% to non-priority traffic, with the priority lane offering roughly 5x throughput. This scheduling takes place before Priority-fee evaluation, meaning getting into the SWQoS priority lane is the prerequisite for true low-latency performance.