Resumen
Un endpoint de nodo Solana gratuito es una URL RPC compartida que puedes llamar sin pagar, generalmente para aprendizaje, creación de prototipos o scripts de bajo volumen. Funciona para lecturas básicas como getBalance y getLatestBlockhash, pero la capacidad compartida implica límites de velocidad, latencia variable y fallos ocasionales bajo carga.
Esta página explica para qué sirven los endpoints Solana gratuitos, dónde fallan y cuándo pasar a una configuración RPC de Solana gestionada o dedicada. También muestra cómo probar un endpoint, configurar billeteras y decidir si tu carga de trabajo puede permanecer gratuita o necesita un plan de pago.
Recomendación rápida: ¿es suficiente un nodo Solana gratuito para tu carga de trabajo?
La mayoría de los desarrolladores que buscan un nodo Solana gratuito quieren una de tres cosas: una URL para pegar en una billetera, una forma económica de ejecutar un script o bot, o una manera de probar una idea antes de pagar por infraestructura. La elección correcta depende de cuál de esas estés haciendo.
| Tu situación | Un nodo Solana gratuito suele ser | Qué hacer a continuación |
|---|---|---|
| Aprendizaje, tutoriales, scripts únicos | Adecuado | Usa un endpoint compartido y mantén bajo el volumen de solicitudes |
| Pruebas con billetera local o devnet | Adecuado, pero usa devnet | Apunta tu billetera a un endpoint de Solana devnet |
| dApp pequeña con unos cientos de usuarios | Arriesgado | Mide las tasas de error y luego pasa a un plan gestionado |
| Bot de trading, indexador o lecturas de alta frecuencia | No adecuado | Evalúa un nodo Solana dedicado |
| Aplicación en producción con usuarios que pagan | No adecuado | Usa un proveedor RPC gestionado o dedicado |
Si aún estás explorando, un endpoint gratuito es la forma más rápida de empezar. Si vas a lanzar a usuarios reales, trata el acceso gratuito como un puente temporal, no como una base.
Qué significa realmente "nodo Solana gratuito"
Solana no regala nodos como un proveedor de nube ofrece niveles gratuitos. Lo que la gente llama un nodo Solana gratuito casi siempre es una de estas opciones:
- Un endpoint RPC público operado por una fundación, un proveedor o un grupo comunitario.
- Un nivel RPC compartido que es gratuito hasta cierto volumen de solicitudes, luego limitado o facturado.
- Un validador o nodo RPC autoalojado que ejecutas en tu propio hardware, donde "gratuito" solo significa que no pagas a un proveedor.
Cada opción tiene diferentes compensaciones. Un endpoint público es el más fácil para empezar, pero lo compartes con todos los demás que encontraron la misma URL. Un nodo autoalojado te da control, pero los nodos RPC de Solana tienen requisitos de hardware reales, y sincronizar y mantener uno es trabajo continuo.
Un endpoint gratuito se entiende mejor como un recurso compartido. Obtienes acceso, pero no obtienes una garantía de capacidad, una garantía de latencia ni un canal de soporte.
Configuración RPC de Solana que necesitas antes de conectarte
Antes de pegar cualquier URL en una billetera o un script, confirma la red y el transporte. La mainnet y la devnet de Solana son clústeres separados con estado separado, y una billetera apuntada al incorrecto parecerá rota incluso cuando el endpoint esté sano.
| Configuración | Solana mainnet | Solana devnet |
|---|---|---|
| Clúster | Mainnet Beta | Devnet |
| Moneda nativa | SOL (9 decimales) | SOL (9 decimales, sin valor real) |
| Uso típico | Lecturas y escrituras en producción | Pruebas, experimentos financiados por faucet |
| Explorador | https://explorer.solana.com | https://explorer.solana.com (alternar devnet) |
| Transporte | HTTP y WebSocket | HTTP y WebSocket |
OnFinality expone Solana mainnet tanto por HTTP como por WebSocket. El endpoint público es:
https://solana.api.onfinality.io/public
wss://solana.api.onfinality.io/public-ws
Para trabajo en devnet, usa la página dedicada RPC de Solana Devnet en lugar de apuntar código de prueba a mainnet. Mezclar los dos es una de las causas más comunes de fallos confusos.
Probar un endpoint Solana gratuito en menos de un minuto
No necesitas un SDK para verificar si un endpoint está vivo y devuelve datos sensatos. Una sola llamada JSON-RPC te dice mucho.
curl https://solana.api.onfinality.io/public \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getLatestBlockhash",
"params": [{"commitment": "confirmed"}]
}'
Una respuesta saludable incluye un blockhash reciente y un lastValidBlockHeight. Si la llamada expira, devuelve un error de límite de velocidad o devuelve un blockhash que está muy por detrás del slot actual, el endpoint está sobrecargado o no se mantiene al día.
Vale la pena ejecutar dos llamadas más antes de comprometerte con un endpoint:
# Check the current slot and whether the node is caught up
curl https://solana.api.onfinality.io/public \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[{"commitment":"confirmed"}]}'
# Check a wallet balance
curl https://solana.api.onfinality.io/public \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getBalance","params":["<WALLET_ADDRESS>",{"commitment":"confirmed"}]}'
Si getSlot devuelve un valor que sigue subiendo y getLatestBlockhash devuelve datos frescos, el endpoint es utilizable para lecturas básicas. Eso es el mínimo, no el máximo.
Dónde fallan los endpoints Solana gratuitos
Los endpoints gratuitos y públicos tienden a fallar de maneras predecibles. Conocer los síntomas te ayuda a decidir si reintentar, reconfigurar o pasar a un plan de pago.
| Síntoma | Causa probable | Qué probar |
|---|---|---|
| Respuestas 429 | Límite de velocidad compartido alcanzado | Reduce la tasa de solicitudes, agrupa llamadas o pasa a un plan gestionado |
| Tiempos de espera en getProgramAccounts | Escaneo pesado en un nodo compartido | Añade filtros, pagina o usa un nodo dedicado |
| Desconexiones de WebSocket | Límites de conexión compartidos | Reconecta con retroceso exponencial o usa un endpoint WebSocket dedicado |
| Errores de blockhash obsoleto | Nodo retrasado respecto a la punta | Reintenta con un blockhash fresco o cambia de endpoint |
| Resultados inconsistentes entre llamadas | Balanceo de carga entre nodos desiguales | Fija un solo endpoint o usa un proveedor con estado consistente |
getProgramAccounts merece especial atención. Es una de las llamadas RPC de Solana más costosas, y en un endpoint compartido suele ser lo primero que falla. Si tu aplicación depende de ella, planifica un nodo dedicado o un proveedor que la soporte de manera confiable.
Cuándo pasar de gratuito a gestionado o dedicado
No hay un número único de solicitudes por segundo que se aplique a todas las aplicaciones, pero hay señales claras de que un endpoint gratuito ya no es la opción adecuada:
- Tus usuarios ven transacciones fallidas que tienen éxito al reintentar.
- Tus registros muestran una proporción creciente de respuestas 429 o de tiempo de espera.
- Necesitas suscripciones WebSocket que permanezcan abiertas durante largos períodos.
- Dependes de datos de archivo o consultas históricas.
- Necesitas un canal de soporte cuando algo se rompe.
En ese punto, la decisión es entre un plan compartido gestionado y un nodo dedicado. Los planes compartidos gestionados son más baratos y adecuados para tráfico moderado. Los nodos dedicados te dan capacidad aislada, lo cual importa para bots de trading, indexadores y aplicaciones con carga en ráfagas. Puedes comparar opciones en la página de precios de RPC y revisar las redes RPC compatibles si operas en varias cadenas.
OnFinality ofrece tanto acceso a la API RPC gestionada como nodos dedicados, para que puedas empezar compartido y pasar a capacidad aislada sin cambiar tu patrón de integración.
Configurar una billetera o aplicación para usar un endpoint Solana
La mayoría de las herramientas de Solana aceptan una URL de clúster. En una billetera, normalmente agregas un endpoint RPC personalizado y lo seleccionas. En código, pasas la URL a tu cliente.
import { Connection, PublicKey, clusterApiUrl } from "@solana/web3.js";
// Free/shared endpoint for light reads
const connection = new Connection(
"https://solana.api.onfinality.io/public",
{ commitment: "confirmed" }
);
const balance = await connection.getBalance(
new PublicKey("<WALLET_ADDRESS>")
);
console.log("lamports:", balance);
Para suscripciones WebSocket, usa la URL WebSocket correspondiente:
const ws = new WebSocket("wss://solana.api.onfinality.io/public-ws");
ws.onopen = () => {
ws.send(JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "slotSubscribe",
params: []
}));
};
ws.onmessage = (event) => {
console.log("slot update:", event.data);
};
Mantén el nivel de compromiso consistente en toda tu aplicación. Mezclar processed, confirmed y finalized en el mismo flujo es una fuente común de errores de estado confusos.
Una forma sencilla de monitorear la salud del endpoint
Si estás ejecutando en un endpoint gratuito, monitórealo para saber cuándo deja de ser suficientemente bueno. Una sonda ligera que se ejecuta cada minuto es suficiente para detectar la mayoría de los problemas.
async function probe(url) {
const start = Date.now();
try {
const res = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "getSlot",
params: [{ commitment: "confirmed" }]
})
});
const latency = Date.now() - start;
const body = await res.json();
return { ok: res.ok, latency, slot: body.result };
} catch (err) {
return { ok: false, error: String(err) };
}
}
Sigue tres cosas a lo largo del tiempo: tasa de éxito, latencia mediana y frescura del slot. Cuando la tasa de éxito baja o la frescura del slot se retrasa, esa es tu señal para cambiar de plan.
Puntos clave
- Un "nodo Solana gratuito" casi siempre es un endpoint público compartido o un nivel gratuito, no un nodo privado.
- Los endpoints gratuitos son adecuados para aprendizaje, pruebas en devnet y scripts de bajo volumen.
- Fallan bajo carga, especialmente para
getProgramAccounts, suscripciones WebSocket de larga duración y tráfico en ráfagas. - Prueba cualquier endpoint con
getLatestBlockhash,getSlotygetBalanceantes de confiar en él. - Pasa a un RPC de Solana gestionado o dedicado cuando los usuarios empiecen a ver transacciones fallidas o necesites soporte.
- OnFinality proporciona Solana mainnet por HTTP y WebSocket, además de nodos dedicados para capacidad aislada.
Preguntas frecuentes
¿Existe un nodo Solana realmente gratuito?
Hay endpoints públicos de uso gratuito y niveles gratuitos, pero son compartidos. No obtienes un nodo privado; obtienes acceso a uno compartido sin garantía de capacidad.
¿Puedo ejecutar un nodo RPC de Solana gratis?
Puedes ejecutar tu propio nodo, pero "gratis" solo significa que no pagas a un proveedor. Los nodos RPC de Solana necesitan CPU, RAM, disco y ancho de banda significativos, además de mantenimiento y monitoreo continuos.
¿Por qué mi endpoint Solana gratuito devuelve errores 429?
Las respuestas 429 generalmente significan que alcanzaste un límite de velocidad compartido. Reduce tu tasa de solicitudes, agrupa llamadas cuando sea posible y considera un plan gestionado si el límite sigue bloqueándote.
¿Debería usar un endpoint gratuito para un bot de trading?
Generalmente no. Los bots necesitan latencia consistente y flujos WebSocket confiables. Un endpoint compartido puede introducir retrasos y desconexiones que afectan directamente la ejecución.
¿Cómo cambio de un endpoint gratuito a uno de pago?
En la mayoría de los casos, cambias la URL RPC en tu configuración o billetera y mantienes el mismo código de cliente. Prueba primero en un entorno de staging y luego despliega.
¿OnFinality ofrece un endpoint Solana gratuito?
OnFinality proporciona un endpoint público de Solana para uso ligero, además de opciones gestionadas y dedicadas. Consulta la página de la red Solana y los precios de RPC para obtener detalles actuales.