Resumen
# Guía de la API de Solana: Endpoints RPC, Métodos y Mejores Prácticas La API de Solana es una interfaz JSON-RPC que permite a los desarrolladores interactuar con la blockchain de Solana. Proporciona métodos para leer el estado de la red, enviar transacciones, simular ejecuciones y suscribirse a actualizaciones en vivo. Esta guía cubre los métodos principales de la API, cómo conectarse a diferentes clústeres y consideraciones para elegir un proveedor RPC confiable para aplicaciones en producción.
Puntos clave
- La API de Solana usa JSON-RPC 2.0 sobre HTTP POST y WebSocket para suscripciones.
- Los métodos HTTP clave incluyen getBalance, getTransaction, sendTransaction y getProgramAccounts.
- Los endpoints RPC públicos tienen límites de tasa y no son adecuados para producción; usa un proveedor dedicado.
- Solana ofrece tres clústeres principales: Mainnet, Devnet y Testnet, cada uno con propósitos distintos.
- Las suscripciones WebSocket permiten actualizaciones en tiempo real para cuentas, logs y programas.
- Elegir un proveedor con baja latencia y alta confiabilidad es crítico para la experiencia del usuario.
- OnFinality proporciona endpoints RPC de Solana escalables con opciones de nodos dedicados para cargas de trabajo en producción.
¿Qué es la API de Solana?
La API de Solana es una interfaz JSON-RPC que permite a las aplicaciones comunicarse con la blockchain de Solana. Sigue la especificación JSON-RPC 2.0 y admite transporte HTTP y WebSocket. A través de esta API, los desarrolladores pueden consultar saldos de cuentas, enviar transacciones, obtener datos de bloques y suscribirse a eventos en tiempo real.
La documentación oficial de Solana proporciona una lista completa de métodos RPC, pero para aplicaciones en producción, no se recomienda depender de endpoints públicos debido a límites de tasa y problemas de confiabilidad. En su lugar, los desarrolladores suelen usar proveedores RPC de terceros que ofrecen infraestructura dedicada.
- Use HTTP POST for request-response methods.
- Set
Content-Type: application/json. - Check the
errorobject in responses for RPC-specific failures.
Resumen de Métodos de la API de Solana
La API de Solana incluye docenas de métodos organizados en categorías: cuentas, tokens, transacciones, bloques, información del clúster y economía. Algunos de los métodos más utilizados son:
- getBalance – Devuelve el saldo de SOL de una cuenta.
- getTransaction – Recupera una transacción confirmada por su firma.
- sendTransaction – Envía una transacción firmada al clúster.
- getProgramAccounts – Devuelve todas las cuentas propiedad de un programa.
- getLatestBlockhash – Obtiene el último hash de bloque para la construcción de transacciones.
- simulateTransaction – Simula una transacción sin confirmarla.
- getSlot – Devuelve el número de slot actual.
- getBlock – Obtiene un bloque por su número de slot.
Conexión a Clústeres de Solana
Solana opera tres clústeres principales: Mainnet, Devnet y Testnet. Cada clúster tiene un endpoint RPC público, pero estos son compartidos y tienen límites de tasa. Para aplicaciones en producción, debes usar un proveedor RPC dedicado que ofrezca mayor rendimiento y confiabilidad.
Los endpoints públicos son:
Mainnet: https://api.mainnet.solana.com
Devnet: https://api.devnet.solana.com
Testnet: https://api.testnet.solana.com
- Mainnet – Red de producción que usa SOL real. Úsala para dApps en vivo.
- Devnet – Red de pruebas para desarrolladores con SOL gratuito del faucet. Ideal para desarrollo y pruebas.
- Testnet – Red de pruebas para validadores. Se usa para pruebas de rendimiento de la red.
Realizando tu Primera Llamada a la API
Aquí tienes un ejemplo simple usando curl para llamar al método getSlot en Mainnet de Solana a través de un endpoint público:
curl https://api.mainnet.solana.com -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[]}'
Para producción, reemplazarías el endpoint público con una URL específica del proveedor. Por ejemplo, usando el endpoint RPC de Solana de OnFinality:
curl https://solana.api.onfinality.io/public -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[]}'
- 1. Call
getLatestBlockhash - 2. Build and sign transaction with your keypair
- 3. Test with
simulateTransaction - 4. Submit with
sendTransaction - 5. Confirm with
getSignatureStatusesorsignatureSubscribe
Suscripciones WebSocket
La API de Solana también admite suscripciones WebSocket para actualizaciones en tiempo real. Puedes suscribirte a cambios de cuentas, logs de programas y actualizaciones de slots. Esto es útil para construir dApps receptivas que reaccionen a eventos en la cadena.
Ejemplo de suscripción a cambios de cuenta:
wscat -c wss://api.mainnet.solana.com
> {"jsonrpc":"2.0","id":1,"method":"accountSubscribe","params":["PUBLIC_KEY",{"commitment":"finalized"}]}
accountSubscribe– account data changeslogsSubscribe– program logsprogramSubscribe– program-owned account updatessignatureSubscribe– transaction confirmationslotSubscribe– new slot notifications
Elegir un Proveedor RPC de Solana
Al seleccionar un proveedor RPC de Solana para producción, considera los siguientes criterios:
| Criterio | Qué revisar | Por qué importa |
|---|---|---|
| Tiempo de actividad y confiabilidad | Acuerdos de Nivel de Servicio (support terms) y estadísticas históricas de tiempo de actividad. | El tiempo de inactividad puede romper tu aplicación y causar pérdida de confianza del usuario. |
| Latencia | Distribución geográfica de los endpoints y tiempos de respuesta. | La baja latencia mejora la experiencia del usuario, especialmente en aplicaciones en tiempo real. |
| Límites de tasa | Límites de solicitudes por segundo (RPS) y si escalan con tus necesidades. | Los límites de tasa pueden ralentizar tu aplicación durante picos de uso. |
| Nodos dedicados vs compartidos | Si el proveedor ofrece nodos dedicados con recursos garantizados. | Los nodos dedicados proporcionan un rendimiento consistente y son esenciales para aplicaciones de alto tráfico. |
| Soporte de red | Disponibilidad de endpoints de Mainnet, Devnet y Testnet. | Necesitas acceso a redes de prueba para desarrollo y staging. |
¿Por qué usar OnFinality para RPC de Solana?
OnFinality ofrece endpoints RPC de Solana confiables con soporte para Mainnet, Devnet y Testnet. Nuestra infraestructura está diseñada para cargas de trabajo en producción, con baja latencia y alta disponibilidad. Ya sea que necesites un endpoint público compartido o un nodo dedicado, OnFinality proporciona opciones flexibles para adaptarse a tu escala.
Comienza con una clave API gratuita y experimenta el rendimiento y la confiabilidad que OnFinality ofrece.
- Test the exact request patterns your frontend and backend will use.
- Confirm WebSocket access if you use subscriptions.
- Check archive support if you need historical data beyond recent slots.
- Verify rate limits and upgrade paths for sustained traffic.
- Use devnet for staging and test SOL from the official faucet.
- Monitor error rates, latency, and usage before full rollout.
Preguntas frecuentes
¿Qué es la API de Solana?
La API de Solana es una interfaz JSON-RPC que permite a los desarrolladores interactuar con la blockchain de Solana. Proporciona métodos para consultar el estado de la red, enviar transacciones y suscribirse a eventos en tiempo real.
¿Cómo obtengo una clave API de Solana?
Puedes obtener una clave API gratuita de proveedores como OnFinality. Simplemente regístrate y crea una clave API para acceder a los endpoints RPC de Solana.
¿Cuál es la diferencia entre Mainnet, Devnet y Testnet de Solana?
Mainnet es la red de producción que usa SOL real. Devnet es para que los desarrolladores prueben aplicaciones con SOL gratuito. Testnet es para pruebas de validadores y rendimiento de la red.
¿Puedo usar el endpoint RPC público de Solana para producción?
Los endpoints públicos tienen límites de tasa y son compartidos, lo que los hace inadecuados para producción. Usa un proveedor RPC dedicado para acceso confiable y escalable.
¿Cuáles son los métodos más comunes de la API de Solana?
Los métodos comunes incluyen getBalance, getTransaction, sendTransaction, getProgramAccounts, getLatestBlockhash y getSlot.