Documentación del endpoint RPC de Solana

Documentación del endpoint RPC de Solana

Usa ERPC como tu endpoint RPC de Solana para solicitudes HTTP JSON-RPC y suscripciones WebSocket. La misma URL de endpoint de Solana funciona con los métodos RPC estándar, y la API key se gestiona desde ERPC Dashboard.
Añade tu API key al parámetro 'api-key'.
endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>

Ejemplos:

Este es un ejemplo de solicitud HTTP.
bash
curl https://edge.erpc.global?api-key=<YOUR_API_KEY> --header 'Content-Type: application/json' --data '{
  "jsonrpc":"2.0","id":1,
  "method":"getBlockHeight"
}'
Este es un ejemplo de suscripción WebSocket. El host es el mismo que HTTP.
endpoint
wss://edge.erpc.global?api-key=<YOUR_API_KEY>
bash
# Example: subscribe to slot updates
wscat -c "wss://edge.erpc.global?api-key=<YOUR_API_KEY>"
# After connected, send:
{"jsonrpc":"2.0","id":1,"method":"slotSubscribe"}
Puedes obtener y comprobar tu API key en ERPC Dashboard: ERPC Dashboard
Si necesitas menor latencia que WebSocket, considera Geyser gRPC o ShredStream. Puedes hablar de los detalles con nosotros a través de ERPC Dashboard.

History Access

Añade history=true a la URL edge.erpc.global de una solicitud HTTP para consultar bloques y transacciones más antiguos; el valor debe ser exactamente true, en minúsculas. Excepto getTransactionsForAddress, una solicitud sin history=true se responde desde el rango reciente que conserva cada nodo; la opción se aplica a estos métodos:
  • getBlock
  • getBlockTime
  • getBlocks
  • getBlocksWithLimit
  • getTransaction, incluido getParsedTransaction
  • getSignaturesForAddress
  • getSignatureStatuses, cuando searchTransactionHistory es true
  • getTransactionsForAddress, cuando transactionDetails es "full" (se requiere History Access)
Incluye la API key y la opción en la URL como parámetros de consulta:
endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
O envía Authorization: Bearer <YOUR_API_KEY> como cabecera, con la opción en la URL:
endpoint
https://edge.erpc.global?history=true
Este es un ejemplo de solicitud HTTP que usa History Access.
bash
curl 'https://edge.erpc.global?history=true' \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
  "jsonrpc":"2.0","id":1,
  "method":"getBlock",
  "params":[<SLOT>,{"maxSupportedTransactionVersion":1}]
}'
Para todos los métodos excepto getTransactionsForAddress en modo "full":
  • Cada llamada respondida por History Access cuesta 640 tokens más que su precio normal: getBlock cuesta 42 + 640 = 682.
  • Un resultado null, vacío o parcial de History Access también lleva el recargo. Una consulta fallida no lleva recargo.
  • Una llamada respondida con datos recientes mantiene su precio normal, incluso con history=true.
  • Un lote cuenta cada llamada por separado; getSignatureStatuses cuenta una vez por llamada, no por firma.
  • No uses history=true al sondear transacciones recientes: cada null de ese sondeo lleva el recargo.
Las asignaciones gratuitas, incluidas las del Plan Free, tienen un límite para History Access. El Plan Free se limita a una solicitud de History Access cada 10 segundos.
Una llamada a getTransactionsForAddress con transactionDetails establecido en "full" es History Access, tanto si las transacciones son recientes como antiguas:
  • La llamada requiere history=true en la URL edge.erpc.global. Una solicitud sin esta opción se rechaza con el error de History Access (código -32011) y no conlleva ningún cargo.
  • Con history=true, la llamada cuesta 420 + 640 × N tokens: su precio normal de 420, más 640 por cada una de las N transacciones obtenidas, recientes o antiguas. Una fila sin transacción no se cuenta.
  • La llamada debe enviarse como una solicitud independiente. Un lote que la contenga se rechaza, con o sin history=true: cada llamada del lote se responde con el error -32600 y el mensaje This request is not available in a mixed JSON-RPC batch. Please send it as a separate request., y ninguna de ellas se envía.
El modo signatures predeterminado no necesita history=true y no lleva recargo. Para sondear una dirección en busca de transacciones nuevas, usa el modo signatures y obtén las que necesites con getTransaction.
Una consulta de bloques o transacciones más antiguos puede tardar mucho más que una solicitud normal, en algunos casos segundos. History Access es una opción independiente que mantiene estas consultas separadas de las solicitudes normales, de modo que las solicitudes normales sigan siendo rápidas.
Sin history=true, una solicitud getBlock o getBlockTime para un slot más antiguo puede devolver este error:
json
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32011,
    "message": "This request needs history access. Add history=true to the endpoint URL.",
    "data": {
      "erpcCode": "ERPC_HISTORY_OPTION_REQUIRED"
    }
  },
  "id": 1
}
getTransaction, getParsedTransaction y getSignatureStatuses (con searchTransactionHistory: true) devuelven null para una firma más antigua de lo que conserva el nodo, mientras que getSignaturesForAddress, getBlocks y getBlocksWithLimit devuelven un resultado vacío o parcial.
Una solicitud con history=true puede devolver estos mensajes:
  • This plan has reached its limit for history access. Add a paid plan to use tokens for history access. — se muestra cuando una asignación, como la del Plan Free, alcanza su límite.
  • History access is unavailable while your token balance is low. Add tokens. — se muestra en un plan de pago cuando el saldo de tokens es bajo.
  • On the Free plan, history access is limited to one request per 10 seconds. Slow down or use a paid plan. — se muestra en el Plan Free cuando las solicitudes de History Access llegan demasiado rápido.

Métodos compatibles con Unlimited Endpoint

Los Unlimited Endpoints son endpoints HTTP dedicados, optimizados para llamadas estándar de Solana RPC de baja latencia. Estos son los métodos estándar de Solana RPC compatibles:
  • getSlot
  • getBlockHeight
  • getLatestBlockhash
  • getBalance
  • getAccountInfo
  • getMultipleAccounts
  • getTransaction
  • sendTransaction
  • simulateTransaction
  • getSignatureStatuses
  • getRecentPrioritizationFees
  • getHealth
  • getVersion
  • getEpochInfo
  • getBlock
Para los métodos fuera de este conjunto compatible, usa https://edge.erpc.global?api-key=<YOUR_API_KEY>.

Métodos y documentación de Solana RPC

Para la lista completa de métodos, parámetros y especificaciones de suscripción, consulta la documentación oficial. Cubre tanto el uso por HTTP como por WebSocket.