Documentazione dell'endpoint RPC di Solana | ERPC

Documentazione dell'endpoint RPC di Solana

Usa ERPC come tuo endpoint RPC di Solana per richieste HTTP JSON-RPC e sottoscrizioni WebSocket. Lo stesso URL dell'endpoint Solana funziona per i metodi RPC standard, e la chiave API può essere gestita dalla ERPC Web Dashboard.
Aggiungi la tua chiave API al parametro 'api-key'.
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>

Esempi:

Ecco un esempio di richiesta 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"
}'
Ecco un esempio di sottoscrizione WebSocket. L'host è lo stesso dell'HTTP.
text
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"}
Puoi ottenere e verificare la tua chiave API sulla ERPC Web Dashboard: ERPC Web Dashboard
Se hai bisogno di una latenza inferiore rispetto a WebSocket, valuta Geyser gRPC o ShredStream. Puoi discutere i dettagli con noi tramite la ERPC Web Dashboard.

History Access

Aggiungi history=true all'URL edge.erpc.global di una richiesta HTTP per cercare blocchi e transazioni più vecchi; il valore deve essere esattamente true, in minuscolo. Fatta eccezione per getTransactionsForAddress, una richiesta senza history=true riceve risposta dall'intervallo recente che ogni nodo conserva; l'opzione si applica a questi metodi:
  • getBlock
  • getBlockTime
  • getBlocks
  • getBlocksWithLimit
  • getTransaction, incluso getParsedTransaction
  • getSignaturesForAddress
  • getSignatureStatuses, quando searchTransactionHistory è true
  • getTransactionsForAddress, quando transactionDetails è "full" (History Access richiesto)
Inserisci la chiave API e l'opzione nell'URL come parametri query:
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
Oppure invia Authorization: Bearer <YOUR_API_KEY> come header, con l'opzione nell'URL:
text
https://edge.erpc.global?history=true
Ecco un esempio di richiesta HTTP che 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}]
}'
Per ogni metodo tranne getTransactionsForAddress in modalità "full":
  • Ogni chiamata servita da History Access costa 640 token in più rispetto al suo prezzo normale: getBlock costa 42 + 640 = 682.
  • Il supplemento si applica anche a un risultato null, vuoto o parziale di History Access. Per una ricerca non riuscita non si applica alcun supplemento.
  • Una chiamata servita da dati recenti mantiene il suo prezzo normale, anche con history=true.
  • Un batch conta ogni chiamata singolarmente; getSignatureStatuses conta una volta per chiamata, non per firma.
  • Non usare history=true nel polling delle transazioni recenti: in quel caso il supplemento si applica a ogni null.
Le allocazioni gratuite, comprese quelle del piano Free, hanno un limite per History Access. Il piano Free è limitato a una richiesta con History Access ogni 10 secondi.
Una chiamata a getTransactionsForAddress con transactionDetails impostato su "full" è History Access, sia che le transazioni siano recenti sia che siano vecchie:
  • La chiamata richiede history=true nell'URL edge.erpc.global. Una richiesta senza questa opzione viene rifiutata con l'errore di History Access (codice -32011) e non comporta alcun costo.
  • Con history=true, la chiamata costa 420 + 640 × N token: il suo prezzo normale di 420, più 640 per ciascuna delle N transazioni recuperate, recenti o vecchie. Una riga senza transazione non viene conteggiata.
  • La chiamata deve essere inviata come richiesta separata. Un batch che la contiene viene rifiutato, con o senza history=true: ogni chiamata del batch riceve l'errore -32600 e il messaggio This request is not available in a mixed JSON-RPC batch. Please send it as a separate request., e nessuna viene inviata.
La modalità signatures predefinita non richiede history=true e non ha alcun supplemento. Per controllare periodicamente un indirizzo in cerca di nuove transazioni, usa la modalità signatures e recupera quelle che ti servono con getTransaction.
Una ricerca di blocchi o transazioni più vecchi può richiedere molto più tempo di una richiesta normale, in alcuni casi secondi. History Access è un'opzione separata che tiene queste ricerche distinte dalle richieste normali, così le richieste normali restano veloci.
Senza history=true, una richiesta getBlock o getBlockTime per uno slot più vecchio può restituire questo errore:
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 e getSignatureStatuses (con searchTransactionHistory: true) restituiscono null per una firma più vecchia di quanto il nodo conserva, mentre getSignaturesForAddress, getBlocks e getBlocksWithLimit restituiscono un risultato vuoto o parziale.
Una richiesta con history=true può restituire questi messaggi:
  • This plan has reached its limit for history access. Add a paid plan to use tokens for history access. — mostrato quando un'allocazione, come quella del piano Free, raggiunge il suo limite.
  • History access is unavailable while your token balance is low. Add tokens. — mostrato con un piano a pagamento quando il saldo di token è basso.
  • On the Free plan, history access is limited to one request per 10 seconds. Slow down or use a paid plan. — mostrato con il piano Free quando le richieste con History Access arrivano troppo in fretta.

Metodi supportati dagli Unlimited Endpoint

Gli Unlimited Endpoint sono endpoint HTTP dedicati ottimizzati per chiamate RPC standard di Solana a bassa latenza.
CategoriaUnlimited Endpoint
Metodi RPC standard di Solana supportatigetSlot, getBlockHeight, getLatestBlockhash, getBalance, getAccountInfo, getMultipleAccounts, getTransaction, sendTransaction, simulateTransaction, getSignatureStatuses, getRecentPrioritizationFees, getHealth, getVersion, getEpochInfo, getBlock
Per i metodi al di fuori di questo set supportato, usa https://edge.erpc.global?api-key=<YOUR_API_KEY>.

Metodi RPC di Solana e documentazione

Per l'elenco completo dei metodi, dei parametri e delle specifiche di sottoscrizione, consulta la documentazione ufficiale. Copre sia l'utilizzo HTTP che WebSocket.