Documentação da API de Informações dos Validadores

O que é a API de Informações dos Validadores (getValidatorsInformation)?

getValidatorsInformation é um método de RPC de Solana estendida que retorna os validadores que lideram ao menos um slot na época atual, com stake weight, metadados de endpoint de rede, localização estimada do líder e medições de latência de referência reunidos em uma linha por validador. Ele não retorna uma lista de todos os nós da rede e também não retorna nós RPC. Se você tiver créditos de uso do ERPC (tokens API), pode chamá-lo no mesmo formato que um método RPC padrão da Solana.
Esta API fornece:
  • Uma linha por validador que lidera um slot na época atual, com slotCount mostrando quantos slots ele lidera — ao contrário de getLeaderSlots, que retorna uma linha por slot
  • stakeWeight para cada validador líder
  • Estimativa da região líder, cidade, país, coordenadas, organização ASN e fuso horário
  • Medições de ping de referência das regiões de observação do ERPC por meio de pingToLeaders

Exemplo de Endpoint e Request Body

text
https://edge.erpc.global?api-key=<YOUR_API_KEY>
Todos os parâmetros são opcionais; omitir params, ou enviar params: [], retorna todos os validadores que lideram um slot na época atual.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getValidatorsInformation",
  "params": []
}
Para restringir o resultado, envie um objeto com limit, country e region. Este exemplo pede até 5 validadores na Alemanha, o que também custa menos do que a solicitação sem filtro acima.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getValidatorsInformation",
  "params": [{ "limit": 5, "country": "DE" }]
}
Os três parâmetros são opcionais. country é comparado com leaderCountry usando códigos ISO 3166-1 alfa-2 e não diferencia maiúsculas. region é comparado com leaderRegion de forma exata e diferencia maiúsculas: leia leaderRegion de uma resposta sem filtro para conhecer os valores válidos dos validadores que você quer alcançar. limit aceita de 1 a 2000 e é ajustado para o número real de validadores da época, de modo que um limit acima da contagem real nunca gera erro.

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":"getValidatorsInformation",
    "params":[]
  }'

Resposta de Exemplo (JSON)

result.total mostra quantos validadores foram retornados por esta solicitação. O array data[] abaixo está abreviado para três das 670 entradas desta época, e o pingToLeaders de cada entrada foi reduzido a uma única região de observação para facilitar a leitura.
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "success": true,
    "message": "Validator information retrieved successfully",
    "epoch": 1010,
    "total": 670,
    "totalValidators": 670,
    "data": [
      {
        "identity": "JupmVLmA8RoyTUbTMMuTtoPWHEiNQobxgTeGTrPNkzT",
        "gossipNodeId": 2233,
        "slotCount": 13232,
        "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,
            "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-01T06:02:18.000Z"
          }
        ]
      },
      {
        "identity": "BSVckjdW2f8kcXPGcrPPtV9kUDBZ8w8PjrrGVnxgEdwq",
        "gossipNodeId": 1487,
        "slotCount": 2704,
        "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,
            "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-01T06:02:53.000Z"
          }
        ]
      },
      {
        "identity": "2oHUYyW2PU9VJh4XBs5TbGgzdernunvGqyKth3kxW4ns",
        "gossipNodeId": 902,
        "slotCount": 304,
        "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,
            "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-01T06:03:07.000Z"
          }
        ]
      }
    ]
  }
}

Campos de resposta

CampoSignificado
result.successSe o pedido foi bem sucedido.
result.messageMensagem de estado legível pelo ser humano.
result.epochÉpoca à qual pertence o conjunto de líderes retornado. É a época mais recente presente no cronograma de líderes.
result.totalNúmero de validadores em data. É a quantidade sobre a qual a chamada é cobrada.
result.totalValidatorsNúmero de validadores líderes daquela época antes da aplicação de country, region ou limit. Compare com result.total para ver o quanto um filtro reduziu o conjunto.
result.data[]Uma entrada por validador, ordenada por slotCount decrescente e depois por identity, de modo que um limit retorna os validadores que lideram mais slots.
identityChave pública da identidade do validador.
gossipNodeIdIdentificador do registro de nó gossip vinculado a este validador. É null quando não há nó gossip vinculado, caso em que os campos de localização, portas e ping também ficam vazios. Validadores sem nó gossip vinculado são retornados em uma solicitação sem filtro, mas não podem corresponder a um filtro country ou region.
slotCountNúmero de slots que este validador lidera na época informada. Cada entrada corresponde a um validador, não a um slot.
stakeWeightStake ativado da identidade do validador, em SOL. Validadores sem nó gossip vinculado reportam 0.
ipAddress, gossipPort, tpuPort, tpuQuicPort, rpcAddressMetadados do endpoint da rede gossip do validador.
version, featureSetVersão do cliente Solana e feature set reportados pelo validador.
leaderRegionRótulo de região operacional normalizado usado para roteamento e análise. Pode agrupar cidades próximas ou locais de provedor, e é o valor com o qual o parâmetro de solicitação region corresponde.
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezoneGeolocalização estimada e organização de rede para o validador.
pingToLeaders[]Latência de referência até este validador a partir de cada região de observação do ERPC, 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.
pingToLeaders[].measuredAtQuando a latência foi medida pela última vez, em ISO-8601 UTC. Use-o para julgar o quanto uma leitura é atual.

Visualizando a Cobertura de Validadores

A mesma resposta pode ser lida como um mapa de cobertura no nível da época, em vez de uma consulta slot a slot. Este exemplo utiliza Frankfurt como ponto de observação.
Região do validadorLocalizaçãoSlots na épocaStake weightPing de FrankfurtLeitura operacional
frankfurtFrankfurt am Main, DE13,23212,254,651.760.974 ms13,232 dos aproximadamente 432,000 slots da época, na mesma região metropolitana. A capacidade de Frankfurt atende este validador durante toda a época, e não apenas durante uma janela de slot.
stockholmŠiauliai, LT2,7042,502,391.1427.742 msUma parcela recorrente da época com uma latência que outra localidade europeia atenderia melhor.
amsterdamAmsterdã, NL304280,745.6916.835 msPoucos slots por época. O caminho é curto, mas isso por si só não é motivo para alocar capacidade.
getLeaderSlots responde quais validadores lideram os próximos slots, servindo para rotear uma transação agora; este método responde quais validadores lideram a época como um todo e com que frequência, servindo para decidir onde a capacidade deve ficar durante a época.

Página Web de Dados da Rede Solana

Validators Solutions - Solana network data
Para a visão pública da distribuição da rede, use Validators Solutions e, em seguida, getValidatorsInformation para a contagem de slots por validador, o stake, a localização e a latência medida.

Uso de tokens

Este método é cobrado pelo número de validadores que retorna, em unidades de 10: cada 10 validadores custam 100 tokens, e uma unidade parcial conta como uma unidade completa. Uma resposta de 95 validadores é, portanto, cobrada como 10 unidades, ou seja, 1.000 tokens.
Como a cobrança acompanha o que é retornado e não o que é solicitado, restringir o conjunto com country ou region custa proporcionalmente menos, e uma solicitação que não corresponde a nenhum validador não custa nada. Um limit acima do número de validadores da época é ajustado para a contagem real, de modo que uma solicitação nunca paga por validadores que não existem.
O tamanho do conjunto de líderes muda de época para época. Na época mostrada acima ele era de 670 validadores, o que coloca uma leitura completa em aproximadamente 6.700 tokens.

Por que as informações dos validadores importam

  • Uma linha por validador responde quem lidera esta época e o quanto, sem agregar centenas de milhares de linhas de slot no cliente.
  • slotCount mostra com que frequência um validador é líder nesta época, de modo que um caminho curto até um validador com slotCount alto compensa repetidamente.
  • country e region mostram onde a capacidade de líderes da época realmente está.
  • O ping combinado com measuredAt separa um caminho lento de uma leitura desatualizada.

Contexto

Uma época Solana consiste em aproximadamente 432.000 slots. Uma vez que as atribuições de líder desses slots são agrupadas por identidade de validador, elas se reduzem a cerca de 670 linhas de validadores. O ERPC mantém o cronograma de líderes, os metadados dos validadores, a geolocalização e a coleta de latências, e expõe o resultado através da interface RPC.

Casos de Uso Estratégico

  • Planejamento de capacidade no nível da época: dimensionar a infraestrutura em relação ao conjunto completo de validadores que lideram a época atual, e não a uma janela móvel de slots.
  • Listas curtas regionais: usar country e region para extrair os validadores que lideram slots em uma localidade alvo.
  • Priorização consciente de contagem de slots e stake: combinar slotCount e stakeWeight para classificar validadores dentro de uma lista curta.
  • Monitoramento entre épocas: comparar a distribuição de leaderRegion entre épocas para ver como a geografia dos líderes muda.

Disponibilidade

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

Taxa de sucesso da transação e endpoint da SWQoS

Para melhorar ainda mais a taxa de sucesso da transação e a velocidade de execução, recomendamos usar o SWQoS Endpoint. SWQoS (Stake-pondered Quality of Service) prioriza validadores com conexões de stake. Os líderes atribuem aproximadamente 80% da largura de banda ao tráfego prioritário e 20% ao tráfego não prioritário, com a faixa prioritária oferecendo cerca de 5x rendimento. Este escalonamento ocorre antes da avaliação das taxas de prioridade, o que significa que entrar na faixa de prioridade SWQoS é o pré-requisito para o verdadeiro desempenho de baixa latência.