Resumen
Una API de Solana gratuita te proporciona un endpoint HTTP y WebSocket que habla los métodos JSON-RPC de Solana, para que puedas leer cuentas, enviar transacciones y suscribirte a registros sin ejecutar un validador. La trampa es que los niveles gratuitos son compartidos, tienen límite de velocidad y a menudo no son adecuados para tráfico de producción o consultas pesadas de archivo.
Este artículo explica qué puede manejar realísticamente una API de Solana gratuita, cómo probarla con llamadas JSON-RPC reales y las señales que indican que es hora de pasar a un plan compartido de pago o a un nodo de Solana dedicado de OnFinality.
Una API de Solana gratuita es un endpoint HTTP y WebSocket que habla el dialecto JSON-RPC de Solana, lo que te permite leer cuentas, enviar transacciones y suscribirte a registros sin operar un validador. Es la forma más rápida de hacer que una billetera, un script o un prototipo se comunique con la mainnet de Solana. La contrapartida es que los endpoints gratuitos son compartidos, tienen límite de velocidad y, por lo general, no están dimensionados para tráfico de producción, consultas de archivo o suscripciones WebSocket de alta frecuencia.
Esta página te ayuda a decidir si una API de Solana gratuita es suficiente para tu carga de trabajo actual, cómo verificarla con llamadas JSON-RPC reales y qué buscar cuando se te quede corta.
¿Es suficiente una API de Solana gratuita para tu carga de trabajo?
Adapta el endpoint al trabajo antes de escribir más código. Los niveles gratuitos están bien para aprender y para lecturas ligeras, pero se degradan rápidamente bajo carga sostenida, escaneos grandes de getProgramAccounts o muchos clientes WebSocket concurrentes.
| Carga de trabajo | Idoneidad de la API gratuita | Qué observar |
|---|---|---|
| Prototipo de billetera o dApp | Normalmente bien | 429 ocasionales durante demostraciones |
| Pruebas de CI contra devnet | Bien si está aislado | Límites de velocidad compartidos entre trabajos paralelos |
| Backend con muchas lecturas (saldos, cuentas de tokens) | Marginal | Limitación por IP y por método |
Indexador o escaneos de getProgramAccounts | Deficiente | Tiempos de espera, respuestas truncadas |
| Bot de trading o suscripciones WebSocket | Deficiente | Sockets caídos, tormentas de reconexión |
| dApp de producción orientada al usuario | No recomendado | Sin SLA, sin canal de soporte |
Si tu carga de trabajo está en las dos primeras filas, una API de Solana gratuita es un punto de partida razonable. Si está en las tres últimas, planifica una ruta hacia un plan compartido de pago o un nodo de Solana dedicado. OnFinality ofrece ambos, y puedes comparar opciones en la página de red de Solana y precios de RPC.
Qué significa "gratuito" para Solana JSON-RPC
Los nodos de Solana exponen una interfaz JSON-RPC sobre HTTP y, para suscripciones, sobre WebSocket. Un endpoint gratuito normalmente te ofrece:
- Una URL HTTP pública para métodos estándar como
getBalance,getAccountInfo,getLatestBlockhashysendTransaction. - Una URL WebSocket pública para
logsSubscribe,accountSubscribeyslotSubscribe. - Sin clave de API, o una clave con poca cuota fácil de obtener.
Lo que normalmente no te ofrece:
- Rendimiento o concurrencia garantizados.
- Archivo o estado histórico más allá de una ventana limitada.
- Acceso prioritario durante congestión de la red.
- Un canal de soporte cuando algo falla a las 2 a. m.
Los endpoints gratuitos son infraestructura compartida. Cuando un usuario ejecuta un escaneo pesado, todos en ese endpoint lo sienten. Esa es la razón principal por la que los niveles gratuitos están bien para aprender y son riesgosos para producción.
Probar una API de Solana gratuita con llamadas reales
Antes de comprometer código a un endpoint, ejecuta algunas comprobaciones. Comienza con una prueba de salud básica usando curl contra el endpoint público de Solana de OnFinality:
curl -s https://solana.api.onfinality.io/public \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}'
Un nodo saludable devuelve {"jsonrpc":"2.0","result":"ok","id":1}. Luego, confirma que puedes leer una cuenta y obtener un blockhash reciente, que es lo que necesitan la mayoría de los flujos de transacciones:
curl -s https://solana.api.onfinality.io/public \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getLatestBlockhash","params":[{"commitment":"confirmed"}]}'
Si usas JavaScript, las mismas llamadas funcionan a través de @solana/web3.js:
import { Connection, PublicKey } from "@solana/web3.js";
const connection = new Connection("https://solana.api.onfinality.io/public", "confirmed");
const slot = await connection.getSlot();
const balance = await connection.getBalance(new PublicKey("11111111111111111111111111111111"));
console.log({ slot, balance });
Para suscripciones, usa la URL WebSocket:
const ws = new WebSocket("wss://solana.api.onfinality.io/public-ws");
ws.onopen = () => {
ws.send(JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "logsSubscribe",
params: [{ mentions: ["11111111111111111111111111111111"] }, { commitment: "confirmed" }]
}));
};
ws.onmessage = (event) => console.log(event.data);
Ejecuta estas pruebas contra tu endpoint candidato y anota los tiempos de respuesta, las tasas de error y si ves respuestas 429 bajo carga paralela. Esos datos, no el texto de marketing, te dicen si el nivel gratuito es adecuado.
Configuración de la cadena de un vistazo
Si estás integrando Solana en una billetera o un archivo de configuración, mantén estos valores consistentes con la red a la que apuntas. La configuración de Solana mainnet de OnFinality utiliza lo siguiente:
| Configuración | Valor |
|---|---|
| Nombre de la cadena | Solana Mainnet |
| Moneda nativa | SOL (9 decimales) |
| HTTP RPC | https://solana.api.onfinality.io/public |
| WebSocket RPC | wss://solana.api.onfinality.io/public-ws |
| Explorador de bloques | https://explorer.solana.com |
Para trabajo en devnet, usa la página de red de Solana Devnet para confirmar el endpoint correcto antes de apuntar pruebas hacia allí. Mezclar URLs de mainnet y devnet es una de las causas más comunes de informes de "mi transacción desapareció".
Dónde fallan las API de Solana gratuitas
Los endpoints gratuitos fallan de maneras predecibles. Reconocer el modo de falla ahorra horas de depuración.
| Síntoma | Causa probable | Siguiente paso |
|---|---|---|
| Respuestas HTTP 429 | Se alcanzó el límite de velocidad compartido | Reducir la concurrencia o pasar a un plan de pago |
getProgramAccounts agota el tiempo | Escaneo grande en un nodo compartido | Filtrar por dataSlice o pasar a un nodo dedicado |
| Desconexiones de WebSocket | Tiempo de espera por inactividad o reinicio del nodo | Agregar lógica de reconexión o usar un endpoint dedicado |
sendTransaction devuelve "blockhash not found" | Blockhash obsoleto de un nodo retrasado | Actualizar el blockhash y reintentar |
| Alturas de slot inconsistentes | Nodo detrás de la punta | Verificar getSlot contra un segundo endpoint |
| Datos históricos faltantes | Sin acceso a archivo en el nivel gratuito | Usar un proveedor con capacidad de archivo |
Si ves dos o más de estos en la misma semana, el nivel gratuito ya no es la herramienta adecuada. Es una señal para evaluar un plan compartido de pago o un nodo de Solana dedicado, no para agregar más lógica de reintento.
Pasar de una API de Solana gratuita a una de producción
Cuando decidas actualizar, trátalo como una migración, no como un interruptor. Una lista de verificación breve evita que cambies un conjunto de problemas por otro.
- Inventaría tus métodos. Enumera cada método JSON-RPC que llama tu aplicación, incluidas las suscripciones WebSocket. Los métodos de archivo y trace a menudo necesitan un plan diferente al de las lecturas estándar.
- Mide tu pico, no tu promedio. Los niveles gratuitos a menudo sobreviven a la carga promedio y fallan en el pico. Dimensiona para la concurrencia y la tasa de solicitudes máximas.
- Decide compartido vs dedicado. Los planes compartidos se adaptan a la mayoría de las dApps y backends. Los nodos de Solana dedicados se adaptan a indexadores, sistemas de trading y equipos que necesitan rendimiento predecible y aislamiento. Consulta nodos dedicados para ver la diferencia.
- Planifica la conmutación por error. Configura al menos dos endpoints en tu cliente para que un problema de un solo proveedor no derribe tu aplicación.
- Agrega monitoreo. Rastrea la tasa de error, la latencia p95 y los recuentos de reconexión de WebSocket. Alerta sobre cambios, no sobre valores absolutos.
- Prueba antes de la migración. Ejecuta tu inventario completo de métodos contra el nuevo endpoint en staging, luego traslada el tráfico de producción gradualmente.
OnFinality proporciona acceso a la API RPC de Solana e infraestructura de nodos dedicados, para que puedas comenzar con un plan compartido y pasar a un nodo dedicado a medida que crece tu carga de trabajo. Revisa precios de RPC y la lista de redes RPC compatibles para confirmar la cobertura actual antes de comprometerte.
Elegir entre acceso compartido y dedicado a Solana
La decisión generalmente se reduce a cuánto control necesitas sobre el rendimiento y el aislamiento.
- Planes RPC compartidos son rentables para dApps, billeteras y backends con tráfico moderado y en ráfagas. Obtienes un endpoint gestionado con límites más altos que un nivel gratuito, sin operar un nodo.
- Nodos de Solana dedicados le dan a tu equipo un nodo que no se comparte con otros clientes. Se adaptan a indexadores, creadores de mercado y equipos con requisitos estrictos de latencia o integridad de datos.
- Nodos autoalojados brindan el máximo control, pero requieren hardware, monitoreo y trabajo de actualización. Muchos equipos comienzan con autoalojamiento y pasan a infraestructura gestionada una vez que el costo operativo supera el ahorro.
Si no estás seguro de cuál se adapta, la guía de selección de proveedor de RPC repasa los criterios de evaluación con más detalle.
Puntos clave
- Una API de Solana gratuita es un endpoint JSON-RPC compartido sobre HTTP y WebSocket, adecuado para prototipos, aprendizaje y lecturas ligeras.
- Los niveles gratuitos tienen límite de velocidad y por lo general carecen de acceso a archivo, rendimiento garantizado y soporte.
- Prueba cualquier endpoint con
getHealth,getLatestBlockhashy una suscripción WebSocket antes de construir sobre él. - Observa los 429, los tiempos de espera en
getProgramAccountsy las desconexiones de WebSocket como señales para actualizar. - Pasa a un plan compartido de pago o a un nodo de Solana dedicado cuando la carga máxima, la integridad de datos o el aislamiento se conviertan en un requisito.
- Mantén separados los endpoints de mainnet y devnet, y configura siempre la conmutación por error.
Preguntas frecuentes
¿Es segura una API de Solana gratuita para producción?
Para la mayoría de las aplicaciones de producción, no. Los endpoints gratuitos son compartidos y tienen límite de velocidad, sin garantía de rendimiento ni canal de soporte. Son mejores para prototipos, pruebas y herramientas internas de bajo tráfico. Las aplicaciones de producción deberían usar un plan compartido de pago o un nodo dedicado.
¿Cuál es la diferencia entre una API de Solana gratuita y una de pago?
Los planes de pago normalmente agregan límites de velocidad más altos, mejor aislamiento, acceso a archivo o datos históricos, prioridad durante la congestión y un canal de soporte. Los métodos JSON-RPC son los mismos; la diferencia es capacidad, confiabilidad y responsabilidad.
¿Puedo usar una API de Solana gratuita para suscripciones WebSocket?
Sí, pero espera desconexiones y tiempos de espera por inactividad. Construye lógica de reconexión y evita depender de un único WebSocket gratuito para cualquier cosa orientada al usuario. Para suscripciones sostenidas, usa un endpoint de pago o dedicado.
¿Ofrece OnFinality una API de Solana gratuita?
OnFinality proporciona endpoints RPC públicos de Solana para comenzar, además de planes compartidos de pago y nodos de Solana dedicados para cargas de trabajo de producción. Consulta la página de red de Solana y precios de RPC para ver las opciones actuales.
¿Por qué falla getProgramAccounts en endpoints gratuitos?
Es una llamada costosa que escanea muchas cuentas. Los nodos gratuitos compartidos a menudo agotan el tiempo o la rechazan. Usa dataSlice y filtros para acotar la consulta, o pasa a un nodo dedicado con acceso a archivo.
¿Cómo pruebo una API de Solana gratuita antes de usarla?
Envía una solicitud getHealth, obtén un blockhash reciente, lee una cuenta conocida y abre una suscripción WebSocket breve. Mide la tasa de error y la latencia bajo carga paralela, no solo solicitudes individuales.