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
stakeWeightfor 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>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": [416462031]
}{
"jsonrpc": "2.0",
"id": 1,
"method": "getLeaderSlots",
"params": [416462031]
}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":[416462031]
}'curl 'https://edge.erpc.global?api-key=<YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc":"2.0",
"id":1,
"method":"getLeaderSlots",
"params":[416462031]
}'Example Response (JSON)
The current response wraps records in
result.data[]. result.total shows how many records were returned.json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true,
"message": "Leader schedule records retrieved successfully",
"total": 100,
"data": [
{
"identity": "BSVckjdW2f8kcXPGcrPPtV9kUDBZ8w8PjrrGVnxgEdwq",
"epoch": 964,
"slot": "416462031",
"stakeWeight": 2502391.138720913,
"ipAddress": "5.199.172.175",
"gossipPort": 12000,
"tpuPort": 12003,
"tpuQuicPort": 12009,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "stockholm",
"leaderCity": "Šiauliai",
"leaderCountry": "LT",
"leaderLat": 55.93333,
"leaderLon": 23.31667,
"leaderOrg": "AS16125 UAB Cherry Servers",
"leaderTimezone": "Europe/Vilnius",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 27.742,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
},
{
"identity": "2oHUYyW2PU9VJh4XBs5TbGgzdernunvGqyKth3kxW4ns",
"epoch": 964,
"slot": "416462032",
"stakeWeight": 280745.689124988,
"ipAddress": "64.130.43.229",
"gossipPort": 8001,
"tpuPort": 5004,
"tpuQuicPort": 5010,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "amsterdam",
"leaderCity": "Amsterdam",
"leaderCountry": "NL",
"leaderLat": 52.37403,
"leaderLon": 4.88969,
"leaderOrg": "AS20326 TeraSwitch Networks Inc.",
"leaderTimezone": "Europe/Amsterdam",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 16.835,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
},
{
"identity": "JupmVLmA8RoyTUbTMMuTtoPWHEiNQobxgTeGTrPNkzT",
"epoch": 964,
"slot": "416462036",
"stakeWeight": 12254651.761860535,
"ipAddress": "64.130.41.46",
"gossipPort": 8000,
"tpuPort": 9001,
"tpuQuicPort": 9007,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "frankfurt",
"leaderCity": "Frankfurt am Main",
"leaderCountry": "DE",
"leaderLat": 50.1924,
"leaderLon": 8.6753,
"leaderOrg": "AS20326 TeraSwitch Networks Inc.",
"leaderTimezone": "Europe/Berlin",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 0.974,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
}
]
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true,
"message": "Leader schedule records retrieved successfully",
"total": 100,
"data": [
{
"identity": "BSVckjdW2f8kcXPGcrPPtV9kUDBZ8w8PjrrGVnxgEdwq",
"epoch": 964,
"slot": "416462031",
"stakeWeight": 2502391.138720913,
"ipAddress": "5.199.172.175",
"gossipPort": 12000,
"tpuPort": 12003,
"tpuQuicPort": 12009,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "stockholm",
"leaderCity": "Šiauliai",
"leaderCountry": "LT",
"leaderLat": 55.93333,
"leaderLon": 23.31667,
"leaderOrg": "AS16125 UAB Cherry Servers",
"leaderTimezone": "Europe/Vilnius",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 27.742,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
},
{
"identity": "2oHUYyW2PU9VJh4XBs5TbGgzdernunvGqyKth3kxW4ns",
"epoch": 964,
"slot": "416462032",
"stakeWeight": 280745.689124988,
"ipAddress": "64.130.43.229",
"gossipPort": 8001,
"tpuPort": 5004,
"tpuQuicPort": 5010,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "amsterdam",
"leaderCity": "Amsterdam",
"leaderCountry": "NL",
"leaderLat": 52.37403,
"leaderLon": 4.88969,
"leaderOrg": "AS20326 TeraSwitch Networks Inc.",
"leaderTimezone": "Europe/Amsterdam",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 16.835,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
},
{
"identity": "JupmVLmA8RoyTUbTMMuTtoPWHEiNQobxgTeGTrPNkzT",
"epoch": 964,
"slot": "416462036",
"stakeWeight": 12254651.761860535,
"ipAddress": "64.130.41.46",
"gossipPort": 8000,
"tpuPort": 9001,
"tpuQuicPort": 9007,
"rpcAddress": null,
"version": "3.1.13",
"featureSet": "534737035",
"leaderRegion": "frankfurt",
"leaderCity": "Frankfurt am Main",
"leaderCountry": "DE",
"leaderLat": 50.1924,
"leaderLon": 8.6753,
"leaderOrg": "AS20326 TeraSwitch Networks Inc.",
"leaderTimezone": "Europe/Berlin",
"pingToLeaders": [
{
"city": "Frankfurt am Main",
"region": "frankfurt",
"ms": 0.974,
"fromIp": "185.191.118.11",
"country": "DE",
"lat": 50.139,
"lon": 8.6725,
"org": "AS213896 UAB Cherry Servers",
"postal": "60320",
"timezone": "Europe/Berlin"
}
]
}
]
}
}Response Fields
| Field | Meaning |
|---|---|
result.success | Whether the request succeeded. |
result.message | Human-readable status message. |
result.total | Number of returned leader slot records. The API currently returns 100 records per request. |
result.data[] | Ordered leader slot records starting from the requested slot. |
identity | Leader validator identity public key. |
epoch | Solana epoch containing the slot. |
slot | Slot number. It is returned as a string, so clients should not assume a JSON number. |
stakeWeight | Stake delegated to the leader validator. Higher stake generally means the validator appears in leader schedules more often over time. |
leaderRegion | Normalized operational region label used for routing and analysis. It may group nearby cities or provider locations. |
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezone | Estimated geolocation and network organization for the leader validator. |
pingToLeaders[] | Reference latency from ERPC observation regions to the leader, including region, city, ms, fromIp, country, coordinates, ASN organization, postal code, and timezone. |
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 window | Leader region | Leader location | Stake weight | Ping from Frankfurt | Operational reading |
|---|---|---|---|---|---|
| 416462031 | stockholm | Šiauliai, LT | 2,502,391.14 | 27.742 ms | Reasonable European latency, but not the same metro. |
| 416462032-416462035 | amsterdam | Amsterdam, NL | 280,745.69 | 16.835 ms | Low-latency European window. Amsterdam resources may be useful. |
| 416462036 | frankfurt | Frankfurt am Main, DE | 12,254,651.76 | 0.974 ms | Same-region 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
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.
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
stakeWeightto 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.- ERPC Web Dashboard: 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.
