Solana RPC endpoint avec ERPC | Documentation

Endpoint RPC Solana

Utilisez cette URL comme RPC endpoint Solana pour vos appels Solana RPC HTTP et vos abonnements WebSocket. Ajoutez votre API key au paramètre api-key.
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>

Exemples d'utilisation

Voici un exemple de requête 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"
}'
Voici un exemple d'abonnement WebSocket. L'hôte est le même qu'en 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"}
Vous pouvez obtenir et vérifier votre API key dans le Dashboard ERPC: Dashboard ERPC
Si vous avez besoin d'une latence plus faible que WebSocket, considérez Geyser gRPC ou ShredStream. Vous pouvez discuter des détails avec nous via le Dashboard ERPC.

History Access

Ajoutez history=true à l'URL edge.erpc.global d'une requête HTTP pour rechercher des blocs et transactions plus anciens ; la valeur doit être exactement true, en minuscules. À l'exception de getTransactionsForAddress, une requête sans history=true est traitée à partir de la plage récente que détient chaque nœud ; l'option s'applique à ces méthodes :
  • getBlock
  • getBlockTime
  • getBlocks
  • getBlocksWithLimit
  • getTransaction, y compris getParsedTransaction
  • getSignaturesForAddress
  • getSignatureStatuses, lorsque searchTransactionHistory vaut true
  • getTransactionsForAddress, lorsque transactionDetails vaut "full" (History Access requis)
Placez l'API key et l'option dans l'URL sous forme de paramètres de requête :
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
Ou envoyez Authorization: Bearer <YOUR_API_KEY> comme en-tête, avec l'option dans l'URL :
text
https://edge.erpc.global?history=true
Voici un exemple de requête HTTP qui utilise 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}]
}'
Pour toutes les méthodes sauf getTransactionsForAddress en mode "full" :
  • Chaque appel traité par History Access coûte 640 jetons de plus que son prix habituel : getBlock coûte 42 + 640 = 682.
  • Le supplément s'applique aussi à un résultat null, vide ou partiel de History Access. Une recherche échouée n'entraîne aucun supplément.
  • Un appel traité à partir de données récentes conserve son prix habituel, même avec history=true.
  • Un batch compte chaque appel séparément ; getSignatureStatuses compte une fois par appel, et non par signature.
  • Laissez history=true de côté pour le polling des transactions récentes : le supplément s'applique à chaque null qui y est renvoyé.
Les allocations gratuites, y compris celles du forfait Free, ont une limite pour History Access. Le forfait Free est limité à une requête avec History Access toutes les 10 secondes.
Un appel getTransactionsForAddress avec transactionDetails défini sur "full" relève de History Access, que les transactions soient récentes ou anciennes :
  • L'appel exige history=true dans l'URL edge.erpc.global. Une requête sans cette option est refusée avec l'erreur History Access (code -32011) et n'entraîne aucun frais.
  • Avec history=true, l'appel coûte 420 + 640 × N jetons : son prix habituel de 420, plus 640 pour chacune des N transactions récupérées, récentes ou anciennes. Une ligne sans transaction n'est pas comptée.
  • L'appel doit être envoyé comme requête distincte. Un batch qui le contient est refusé, avec ou sans history=true : chaque appel du batch reçoit l'erreur -32600 et le message This request is not available in a mixed JSON-RPC batch. Please send it as a separate request., et aucun n'est envoyé.
Le mode signatures, par défaut, n'exige pas history=true et n'entraîne aucun supplément. Pour interroger régulièrement une adresse en quête de nouvelles transactions, utilisez le mode signatures et récupérez celles dont vous avez besoin avec getTransaction.
Une recherche de blocs ou de transactions plus anciens peut prendre beaucoup plus de temps qu'une requête ordinaire, parfois plusieurs secondes. History Access est une option distincte qui sépare ces recherches des requêtes ordinaires, afin que celles-ci restent rapides.
Sans history=true, une requête getBlock ou getBlockTime portant sur un slot plus ancien peut renvoyer cette erreur :
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 et getSignatureStatuses (avec searchTransactionHistory: true) renvoient null pour une signature plus ancienne que ce que détient le nœud, tandis que getSignaturesForAddress, getBlocks et getBlocksWithLimit renvoient un résultat vide ou partiel.
Une requête avec history=true peut renvoyer ces messages :
  • This plan has reached its limit for history access. Add a paid plan to use tokens for history access. — affiché lorsqu'une allocation, comme celle du forfait Free, atteint sa limite.
  • History access is unavailable while your token balance is low. Add tokens. — affiché avec un forfait payant lorsque le solde de jetons est faible.
  • On the Free plan, history access is limited to one request per 10 seconds. Slow down or use a paid plan. — affiché avec le forfait Free lorsque les requêtes avec History Access arrivent trop vite.

Méthodes Solana RPC et documentation

Pour la liste complète des méthodes, paramètres et spécifications d'abonnement, veuillez consulter la documentation officielle. Elle couvre à la fois l'utilisation HTTP et WebSocket.