Documentação da Leader Slot Information API

O que é a Leader Slot Information (getLeaderSlots) API?

getLeaderSlots é um método RPC estendido da Solana que retorna os registros dos próximos leader slots com a identidade do validador, o stake weight, os metadados de endpoint de rede, a localização estimada do líder e medições de latência de referência. Se você tiver créditos de uso da ERPC (tokens de API), poderá chamá-lo no mesmo formato de um método RPC padrão da Solana.
Esta API fornece:
  • A agenda dos validadores líderes a partir do slot solicitado
  • stakeWeight de cada validador líder
  • Região, cidade, país, coordenadas, organização ASN e fuso horário estimados do líder
  • Medições de ping de referência a partir das regiões de observação da ERPC, por meio de pingToLeaders

Exemplo de endpoint e corpo da requisição

endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>
Especifique o número do slot inicial em params.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getLeaderSlots",
  "params": [436946064]
}

Exemplo (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]
  }'

Exemplo de resposta (JSON)

A resposta atual envolve os registros em result.data[]. result.total mostra quantos registros foram retornados. O array data[] abaixo foi abreviado para três dos 100 registros desta requisição. A primeira entrada mostra pingToLeaders de todas as sete regiões de observação da ERPC; as demais entradas foram reduzidas a uma região para facilitar a leitura.
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"
          }
        ]
      }
    ]
  }
}

Campos da resposta

CampoSignificado
result.successSe a requisição foi bem-sucedida.
result.messageMensagem de status legível.
result.totalNúmero de registros de leader slot retornados. Atualmente, a API retorna 100 registros por requisição.
result.data[]Registros de leader slot ordenados a partir do slot solicitado.
identityChave pública de identidade do validador líder.
epochÉpoca da Solana que contém o slot.
slotNúmero do slot. É retornado como string, por isso os clientes não devem presumir um número JSON.
stakeWeightStake delegado ao validador líder. Um stake maior geralmente significa que o validador aparece nas agendas de líderes com mais frequência ao longo do tempo.
leaderRegionRótulo normalizado de região operacional usado para roteamento e análise. Pode agrupar cidades próximas ou locais de provedores.
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezoneGeolocalização estimada e organização de rede do validador líder.
pingToLeaders[]Latência de referência das regiões de observação da ERPC (frankfurt, amsterdam, ny, london, tokyo, singapore, sydney) até o líder, incluindo região, cidade, ms, icmpReplied, fromIp, país, coordenadas, organização ASN, código postal, fuso horário e measuredAt.
pingToLeaders[].icmpRepliedSe o validador respondeu à medição. Quando é false, ms contém um valor sentinela armazenado em vez de uma latência e não deve ser lido como tal; trate false como desconhecido, e não como distante ou inutilizável, pois alguns validadores que não respondem a ICMP continuam servindo TPU e QUIC normalmente, e filtrá-los pode tirar um líder saudável do seu caminho de envio. Verifique icmpReplied antes de tomar ms como latência — ele decide se o número é utilizável, não para qual validador enviar.
pingToLeaders[].measuredAtQuando a latência foi medida pela última vez, em ISO-8601 UTC. Use-o para avaliar quão atual é uma leitura. Cada região de observação mede de forma independente, por isso entradas do mesmo array pingToLeaders podem ter valores de measuredAt diferentes. Um measuredAt mais antigo não é uma leitura com defeito: quando uma rodada de medição não é concluída, o valor armazenado é mantido em vez de ser substituído por um valor inventado, então ele continua refletindo uma medição real feita no passado.

Visualizar os leader slots

A mesma resposta pode ser vista como uma linha do tempo operacional, slot a slot. Este exemplo usa Frankfurt como ponto de observação.
Janela de slotsRegião do líderLocalização do líderStake weightPing a partir de FrankfurtLeitura operacional
436946064-436946066dublinCrumlin, IE819,031.3718.438 msUm único líder ocupa três slots consecutivos. Frankfurt o atende a 18.4 ms, mas Londres (11.0 ms) e Amsterdã (12.8 ms) estão mais perto — nesta janela, a capacidade em Londres ou Amsterdã supera Frankfurt.
436946068frankfurtFrankfurt am Main, DE166,438.250.062 msLíder na mesma área metropolitana. Os recursos em Frankfurt são fortemente favorecidos neste slot.
Esta visão é útil porque a Solana é global. Ao contrário do HFT tradicional, em que o objetivo principal costuma ser ficar perto de um único motor de matching, os líderes da Solana se alternam entre validadores do mundo inteiro. A região mais rápida muda conforme muda a agenda de líderes.

Site de dados da rede Solana

Validators Solutions - Dados da rede Solana
Para uma visão pública da distribuição de validadores e da rede, use o Validators Solutions. Use-o para entender a rede Solana de forma mais ampla e, em seguida, use getLeaderSlots para obter a agenda por slot, o stake weight, a localização dos validadores e os dados de latência medida necessários para o roteamento operacional.

Uso de tokens

A API obtém 100 registros de leader slot a partir do slot especificado. Cada requisição consome 420 tokens.
Se você precisa de uma entrada por validador para toda a época, em vez de uma entrada por slot, use a Validators Information API, que é cobrada pelo número de validadores que retorna.

Por que as informações de leader slot importam

  • Se o líder estiver distante geograficamente ou no caminho de rede, a entrega direta da transação se torna ineficiente.
  • O stake weight ajuda a estimar com que frequência um validador tende a aparecer na agenda de líderes ao longo do tempo.
  • Durante as transições globais de líderes, estratégias de troca entre regiões importam mais do que uma única latência média global.
  • Combinar a agenda de slots, o stake weight, a localização do líder e os dados de ping medidos permite otimizar o roteamento e o posicionamento em relação aos validadores.

Contexto

Uma única época da Solana tem aproximadamente 432.000 slots. Coletar continuamente agendas de líderes, metadados de validadores, geolocalização e medições de latência exige um pipeline de dados dedicado. A ERPC mantém esses dados e os expõe pela interface RPC como um mapa de leader slots pronto para uso.

Casos de uso estratégicos

  • Otimização da detecção: priorize janelas de líderes próximos e de baixa latência.
  • Implantação em várias regiões: implante em FRA, AMS, NY, TY, SGP e outras regiões estratégicas para reduzir as lacunas nas transições.
  • Planejamento com base no stake: use stakeWeight para entender quais líderes importam com mais frequência em janelas mais longas.
  • Visualização e análise: monitore a proporção de líderes, a distribuição de stake e a distribuição de latência por região.

Disponibilidade

getLeaderSlots está disponível para todos os usuários da ERPC. Tokens de API e créditos de uso podem ser emitidos ou verificados no ERPC Web Dashboard.

Taxa de sucesso das transações e SWQoS Endpoint

Para melhorar ainda mais a taxa de sucesso e a velocidade de execução das transações, recomendamos usar o SWQoS Endpoint. O SWQoS (Stake-weighted Quality of Service) prioriza validadores com conexões de stake. Os líderes alocam cerca de 80% da largura de banda ao tráfego prioritário e 20% ao tráfego não prioritário, e a faixa prioritária oferece cerca de 5x de throughput. Esse escalonamento acontece antes da avaliação da taxa de prioridade, ou seja, entrar na faixa prioritária do SWQoS é o pré-requisito para um desempenho de baixa latência de verdade.