Validators Information API Documentación
¿Qué es la API de Información de Validadores (getValidatorsInformation)?
getValidatorsInformation es un método de Solana RPC extendido que devuelve los validadores que lideran al menos un slot en la época actual, con el peso de stake, los metadatos de endpoint de red, la ubicación de líder estimada y las mediciones de latencia de referencia reunidos en una fila por validador. No devuelve una lista de todos los nodos de la red y tampoco devuelve nodos RPC. Si tienes créditos de uso de ERPC (tokens de API), puedes llamarlo en el mismo formato que un método estándar de Solana RPC.Esta API proporciona:
- Una fila por validador que lidera un slot en la época actual, con
slotCountindicando cuántos slots lidera — a diferencia degetLeaderSlots, que devuelve una fila por slot stakeWeightpara cada validador líder- Región líder estimada, ciudad, país, coordenadas, organización ASN y zona horaria
- Mediciones de referencia de las regiones de observación de ERPC a través de
pingToLeaders
Ejemplo de endpoint y cuerpo de solicitud
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>https://edge.erpc.global?api-key=<YOUR_API_KEY>Todos los parámetros son opcionales; omitir
params, o pasar params: [], devuelve todos los validadores que lideran un slot en la época actual.json
{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": []
}{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": []
}Para acotar el resultado, pasa un objeto con
limit, country y region. Este ejemplo pide hasta 5 validadores en Alemania, lo que además cuesta menos que la solicitud sin filtrar anterior.json
{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": [{ "limit": 5, "country": "DE" }]
}{
"jsonrpc": "2.0",
"id": 1,
"method": "getValidatorsInformation",
"params": [{ "limit": 5, "country": "DE" }]
}Los tres parámetros son opcionales.
country se compara con leaderCountry usando códigos ISO 3166-1 alfa-2 y no distingue mayúsculas. region se compara con leaderRegion de forma exacta y distinguiendo mayúsculas: lee leaderRegion de una respuesta sin filtrar para conocer los valores válidos de los validadores que te interesan. limit acepta de 1 a 2000 y se ajusta al número real de validadores de la época, por lo que un limit superior al recuento real nunca da error.Ejemplo (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":[]
}'curl 'https://edge.erpc.global?api-key=<YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc":"2.0",
"id":1,
"method":"getValidatorsInformation",
"params":[]
}'Respuesta de ejemplo (JSON)
result.total muestra cuántos validadores ha devuelto esta solicitud. El array data[] de abajo está abreviado a tres de las 670 entradas de esta época, y el pingToLeaders de cada entrada se ha recortado a una sola región de observación para facilitar la lectura.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"
}
]
}
]
}
}{
"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 respuesta
| Campo | Significado |
|---|---|
result.success | Si la solicitud tuvo éxito. |
result.message | Mensaje de estado legible por humanos. |
result.epoch | Época a la que pertenece el conjunto de líderes devuelto. Es la época más reciente presente en el calendario de líderes. |
result.total | Número de validadores en data. Es la cantidad sobre la que se factura la llamada. |
result.totalValidators | Número de validadores líderes de esa época antes de aplicar country, region o limit. Compáralo con result.total para ver cuánto ha reducido el conjunto un filtro. |
result.data[] | Una entrada por validador, ordenada por slotCount descendente y después por identity, de modo que un limit devuelve los validadores que lideran más slots. |
identity | Clave pública de identidad del validador. |
gossipNodeId | Identificador del registro de nodo gossip vinculado a este validador. Es null cuando no hay ningún nodo gossip vinculado, en cuyo caso los campos de ubicación, puertos y ping también están vacíos. Los validadores sin nodo gossip vinculado se devuelven en una solicitud sin filtrar, pero no pueden coincidir con un filtro country o region. |
slotCount | Número de slots que este validador lidera en la época indicada. Cada entrada corresponde a un validador, no a un slot. |
stakeWeight | Stake activado de la identidad del validador, en SOL. Los validadores sin nodo gossip vinculado informan 0. |
ipAddress, gossipPort, tpuPort, tpuQuicPort, rpcAddress | Metadatos del endpoint de la red gossip del validador. |
version, featureSet | Versión del cliente de Solana y feature set informados por el validador. |
leaderRegion | Etiqueta normalizada de la región operativa utilizada para el enrutamiento y el análisis. Puede agrupar ciudades cercanas o ubicaciones de proveedores, y es el valor con el que coincide el parámetro de solicitud region. |
leaderCity, leaderCountry, leaderLat, leaderLon, leaderOrg, leaderTimezone | Geolocalización estimada y organización de red para el validador. |
pingToLeaders[] | Latencia de referencia hasta este validador desde cada región de observación de ERPC, incluyendo región, ciudad, ms, icmpReplied, fromIp, país, coordenadas, organización ASN, código postal, zona horaria y measuredAt. |
pingToLeaders[].icmpReplied | Si el validador respondió a la medición. Cuando es false, ms contiene un valor centinela almacenado en lugar de una latencia y no debe interpretarse como tal. |
pingToLeaders[].measuredAt | Cuándo se midió la latencia por última vez, en ISO-8601 UTC. Úsalo para juzgar hasta qué punto una lectura es actual. |
Visualización de la cobertura de validadores
La misma respuesta se puede leer como un mapa de cobertura a nivel de época en lugar de como una consulta slot por slot. Este ejemplo utiliza Frankfurt como punto de observación.
| Región del validador | Ubicación | Slots en la época | Peso de stake | Ping de Frankfurt | Lectura operativa |
|---|---|---|---|---|---|
| frankfurt | Frankfurt am Main, DE | 13,232 | 12,254,651.76 | 0.974 ms | 13,232 de los aproximadamente 432,000 slots de la época, en la misma área metropolitana. La capacidad de Frankfurt sirve a este validador durante toda la época, no solo durante una ventana de slot. |
| stockholm | Šiauliai, LT | 2,704 | 2,502,391.14 | 27.742 ms | Una parte recurrente de la época con una latencia que otra ubicación europea atendería mejor. |
| amsterdam | Amsterdam, NL | 304 | 280,745.69 | 16.835 ms | Pocos slots por época. La ruta es corta, pero eso por sí solo no es razón para ubicar capacidad. |
getLeaderSlots responde qué validadores lideran los próximos slots, por lo que encaja para enrutar una transacción ahora mismo; este método responde qué validadores lideran la época en general y con qué frecuencia, por lo que encaja para decidir dónde debe situarse la capacidad durante la época.
Sitio web de datos de red Solana
Para la vista pública de la distribución de la red, utiliza Validators Solutions, y después
getValidatorsInformation para el recuento de slots por validador, el stake, la ubicación y la latencia medida.Uso de tokens
Este método se factura según el número de validadores que devuelve, en unidades de 10: cada 10 validadores cuestan 100 tokens, y una unidad parcial cuenta como una completa. Por tanto, una respuesta de 95 validadores se cobra como 10 unidades, es decir, 1.000 tokens.
Como el cargo sigue a lo que se devuelve y no a lo que se solicita, acotar el conjunto con
country o region cuesta proporcionalmente menos, y una solicitud que no coincide con ningún validador no cuesta nada. Un limit superior al número de validadores de la época se ajusta al recuento real, por lo que una solicitud nunca paga por validadores que no existen.El tamaño del conjunto de líderes cambia de una época a otra. En la época mostrada arriba era de 670 validadores, lo que sitúa una lectura completa en aproximadamente 6.700 tokens.
Por qué importa la información de validadores
- Una fila por validador responde a quién lidera esta época y en qué medida, sin agregar cientos de miles de filas de slots en el cliente.
slotCountmuestra con qué frecuencia un validador es líder en esta época, de modo que una ruta corta hacia un validador conslotCountalto se rentabiliza repetidamente.countryyregionmuestran dónde se sitúa realmente la capacidad de líderes de la época.- El ping combinado con
measuredAtdistingue una ruta lenta de una lectura desactualizada.
Antecedentes
Una época de Solana consiste en aproximadamente 432.000 slots. Una vez que las asignaciones de líder de esos slots se agrupan por identidad de validador, se reducen a unas 670 filas de validadores. ERPC mantiene el calendario de líderes, los metadatos de los validadores, la geolocalización y la recopilación de latencias, y expone el resultado a través de la interfaz RPC.
Casos de uso estratégico
- Planificación de capacidad a nivel de época: dimensionar la infraestructura frente al conjunto completo de validadores que lideran la época actual, no frente a una ventana de slots móvil.
- Listas cortas regionales: usar
countryyregionpara extraer los validadores que lideran slots en una ubicación objetivo. - Priorización según recuento de slots y stake: combinar
slotCountystakeWeightpara clasificar validadores dentro de una lista corta. - Monitorización entre épocas: comparar la distribución de
leaderRegionentre épocas para ver cómo cambia la geografía de los líderes.
Disponibilidad
getValidatorsInformation está disponible para todos los usuarios de ERPC. Los tokens de API y los créditos de uso se pueden emitir o verificar en ERPC Dashboard.- ERPC Dashboard: ERPC Dashboard
Tasa de éxito de transacción y endpoint SWQoS
Para mejorar aún más la tasa de éxito de transacción y la velocidad de ejecución, recomendamos utilizar el SWQoS Endpoint. SWQoS (Stake-Weighted Quality of Service) prioriza a los validadores con conexiones de stake. Los líderes asignan aproximadamente el 80% del ancho de banda al tráfico prioritario y el 20% al tráfico no prioritario, con el carril prioritario que ofrece aproximadamente 5x de rendimiento. Esta programación se lleva a cabo antes de la evaluación de la cuota de prioridad, lo que significa entrar en el carril de prioridad SWQoS es el requisito previo para el verdadero rendimiento de baja latencia.







