Documentação do Solana RPC endpoint

Documentação do Solana RPC endpoint

Use a ERPC como seu endpoint RPC da Solana para requisições HTTP JSON-RPC e assinaturas WebSocket. A mesma URL de endpoint Solana funciona para métodos RPC padrão, e a API key pode ser gerenciada no ERPC Dashboard.
Adicione sua API key ao parâmetro 'api-key'.
endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>

Exemplos:

Aqui está um exemplo de requisição 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"
}'
Aqui está um exemplo de assinatura WebSocket. O host é o mesmo do 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"}
Você pode obter e verificar sua API key no ERPC Dashboard: ERPC Dashboard
Se você precisar de latência mais baixa do que WebSocket, considere Geyser gRPC ou ShredStream. Você pode discutir detalhes conosco através do ERPC Dashboard.

History Access

Adicione history=true à URL edge.erpc.global de uma requisição HTTP para consultar blocos e transações mais antigos; o valor deve ser exatamente true, em minúsculas. Exceto por getTransactionsForAddress, uma requisição sem history=true é respondida a partir do intervalo recente que cada nó mantém; a opção se aplica a estes métodos:
  • getBlock
  • getBlockTime
  • getBlocks
  • getBlocksWithLimit
  • getTransaction, incluindo getParsedTransaction
  • getSignaturesForAddress
  • getSignatureStatuses, quando searchTransactionHistory é true
  • getTransactionsForAddress, quando transactionDetails é "full" (o History Access é obrigatório)
Coloque a API key e a opção na URL como query parameters:
endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
Ou envie Authorization: Bearer <YOUR_API_KEY> como header, com a opção na URL:
endpoint
https://edge.erpc.global?history=true
Aqui está um exemplo de requisição HTTP que usa o 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 os métodos, exceto getTransactionsForAddress no modo "full":
  • Cada chamada respondida pelo History Access custa 640 tokens a mais que o seu preço normal: getBlock custa 42 + 640 = 682.
  • Um resultado null, vazio ou parcial do History Access também tem o acréscimo. Uma consulta que falha não tem acréscimo.
  • Uma chamada respondida com dados recentes mantém o preço normal, mesmo com history=true.
  • Um lote conta cada chamada individualmente; getSignatureStatuses conta uma vez por chamada, não por assinatura.
  • Deixe history=true fora do polling de transações recentes: cada null ali tem o acréscimo.
As alocações gratuitas, incluindo as do Plano Free, têm um limite para o History Access. O Plano Free é limitado a uma requisição com History Access a cada 10 segundos.
Uma chamada a getTransactionsForAddress com transactionDetails definido como "full" é History Access, quer as transações sejam recentes, quer antigas:
  • A chamada exige history=true na URL edge.erpc.global. Uma requisição sem essa opção é recusada com o erro do History Access (código -32011) e não tem custo.
  • Com history=true, a chamada custa 420 + 640 × N tokens: o seu preço normal de 420, mais 640 para cada uma das N transações obtidas, recentes ou antigas. Uma linha sem transação não é contada.
  • A chamada deve ser enviada como uma requisição separada. Um lote que a contenha é recusado, com ou sem history=true: cada chamada do lote é respondida com o erro -32600 e a mensagem This request is not available in a mixed JSON-RPC batch. Please send it as a separate request., e nenhuma delas é enviada.
O modo signatures padrão não precisa de history=true e não tem acréscimo. Para verificar periodicamente se um endereço tem novas transações, use o modo signatures e busque as que você precisar com getTransaction.
Uma consulta por blocos ou transações mais antigos pode levar muito mais tempo do que uma requisição normal, em alguns casos segundos. O History Access é uma opção separada que mantém essas consultas afastadas das requisições normais, para que as requisições normais continuem rápidas.
Sem history=true, uma requisição getBlock ou getBlockTime para um slot mais antigo pode retornar este erro:
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 (com searchTransactionHistory: true) retornam null para uma assinatura mais antiga do que o nó mantém, enquanto getSignaturesForAddress, getBlocks e getBlocksWithLimit retornam um resultado vazio ou parcial.
Uma requisição com history=true pode retornar estas mensagens:
  • This plan has reached its limit for history access. Add a paid plan to use tokens for history access. — exibida quando uma alocação, como a do Plano Free, atinge o seu limite.
  • History access is unavailable while your token balance is low. Add tokens. — exibida em um plano pago quando o saldo de tokens está baixo.
  • On the Free plan, history access is limited to one request per 10 seconds. Slow down or use a paid plan. — exibida no Plano Free quando as requisições com History Access chegam rápido demais.

Métodos suportados pelo Unlimited Endpoint

Os Unlimited Endpoints são endpoints HTTP dedicados, otimizados para chamadas RPC padrão da Solana com baixa latência. Estes são os métodos RPC padrão da Solana suportados:
  • getSlot
  • getBlockHeight
  • getLatestBlockhash
  • getBalance
  • getAccountInfo
  • getMultipleAccounts
  • getTransaction
  • sendTransaction
  • simulateTransaction
  • getSignatureStatuses
  • getRecentPrioritizationFees
  • getHealth
  • getVersion
  • getEpochInfo
  • getBlock
Para métodos fora deste conjunto suportado, use https://edge.erpc.global?api-key=<YOUR_API_KEY>.

Métodos RPC da Solana e documentação

Para a lista completa de métodos, parâmetros e especificações de assinatura, consulte a documentação oficial. Ela cobre tanto o uso HTTP quanto WebSocket.