---
title: "Documentação do Solana RPC endpoint"
description: "Use a ERPC como endpoint RPC da Solana de baixa latência para requisições HTTP JSON-RPC e assinaturas WebSocket."
canonical: "https://erpc.global/pt/doc/rpc/general/"
locale: "pt"
---

# 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'.

```text
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.

```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"}
```

Você pode obter e verificar sua API key no ERPC Dashboard: [ERPC Dashboard](https://dashboard.erpc.global/pt)

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:

```text
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:

```text
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.

[https://solana.com/docs/rpc](https://solana.com/docs/rpc)
