---
title: "Dokumentasi Solana RPC Endpoint"
description: "Gunakan ERPC sebagai Solana RPC endpoint berlatensi rendah untuk HTTP JSON-RPC request dan WebSocket subscription."
canonical: "https://erpc.global/id/doc/rpc/general/"
locale: "id"
---

# Dokumentasi Solana RPC Endpoint

## Dokumentasi Solana RPC Endpoint

Gunakan ERPC sebagai endpoint RPC Solana untuk HTTP JSON-RPC request dan WebSocket subscription. URL endpoint Solana yang sama dapat dipakai untuk metode RPC standar, dan API key dapat dikelola dari ERPC Dashboard.

Tambahkan API key Anda ke parameter `api-key`.

```text
https://edge.erpc.global?api-key=<YOUR_API_KEY>
```

### Contoh

Contoh HTTP request:

```bash
curl https://edge.erpc.global?api-key=<YOUR_API_KEY> --header 'Content-Type: application/json' --data '{
  "jsonrpc":"2.0","id":1,
  "method":"getBlockHeight"
}'
```

Contoh WebSocket subscription. Host yang digunakan sama dengan 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"}
```

Anda dapat membuat dan memeriksa API key di ERPC Dashboard: [ERPC Dashboard](https://dashboard.erpc.global/id)

Jika Anda membutuhkan latensi yang lebih rendah daripada WebSocket, pertimbangkan Geyser gRPC atau ShredStream. Detail kebutuhan teknis dapat didiskusikan melalui ERPC Dashboard.

### History Access

Tambahkan `history=true` ke URL `edge.erpc.global` pada HTTP request untuk mencari blok dan transaksi yang lebih lama; nilainya harus tepat `true`, dengan huruf kecil. Kecuali `getTransactionsForAddress`, request tanpa `history=true` dijawab dari rentang terbaru yang disimpan setiap node; opsi ini berlaku untuk metode berikut:

- `getBlock`
- `getBlockTime`
- `getBlocks`
- `getBlocksWithLimit`
- `getTransaction`, termasuk `getParsedTransaction`
- `getSignaturesForAddress`
- `getSignatureStatuses`, jika `searchTransactionHistory` bernilai `true`
- `getTransactionsForAddress`, jika `transactionDetails` bernilai `"full"` (memerlukan History Access)

Letakkan API key dan opsinya di URL sebagai query parameter:

```text
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
```

Atau kirim `Authorization: Bearer <YOUR_API_KEY>` sebagai header, dengan opsi di URL:

```text
https://edge.erpc.global?history=true
```

Berikut contoh HTTP request yang menggunakan 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}]
}'
```

Untuk semua metode kecuali `getTransactionsForAddress` dalam mode `"full"`:

- Setiap panggilan yang dijawab oleh History Access berbiaya 640 token lebih banyak dari harga normalnya: `getBlock` berbiaya 42 + 640 = 682.
- Untuk hasil `null`, kosong, atau sebagian dari History Access, tetap ada biaya tambahan. Pada pencarian yang gagal, tidak ada biaya tambahan.
- Panggilan yang dijawab dari data terbaru tetap berharga normal, bahkan dengan `history=true`.
- Sebuah batch menghitung setiap panggilan secara terpisah; `getSignatureStatuses` dihitung satu kali per panggilan, bukan per signature.
- Jangan sertakan `history=true` pada polling transaksi terbaru: untuk setiap `null` di sana tetap ada biaya tambahan.

Alokasi gratis, termasuk milik Paket Free, memiliki limit untuk History Access. Paket Free dibatasi satu request History Access per 10 detik.

Panggilan `getTransactionsForAddress` dengan `transactionDetails` diatur ke `"full"` adalah History Access, baik transaksinya baru maupun lama:

- Panggilan ini memerlukan `history=true` di URL `edge.erpc.global`. Request tanpa opsi tersebut ditolak dengan error History Access (kode `-32011`) dan tidak ada biaya.
- Dengan `history=true`, panggilan ini berbiaya 420 + 640 × N token: harga normalnya 420, ditambah 640 untuk masing-masing dari N transaksi yang diambil, baik baru maupun lama. Baris tanpa transaksi tidak dihitung.
- Panggilan ini harus dikirim sebagai request terpisah. Batch yang berisi panggilan ini ditolak, dengan atau tanpa `history=true`: setiap panggilan dalam batch dijawab dengan error `-32600` dan pesan `This request is not available in a mixed JSON-RPC batch. Please send it as a separate request.`, dan tidak ada satu pun yang dikirim.

Mode `signatures` bawaan tidak memerlukan `history=true` dan tidak ada biaya tambahan. Untuk melakukan polling alamat guna mencari transaksi baru, gunakan mode `signatures` lalu ambil transaksi yang Anda perlukan dengan `getTransaction`.

Pencarian blok atau transaksi yang lebih lama dapat memakan waktu jauh lebih lama daripada request biasa, pada beberapa kasus hitungan detik. History Access adalah opsi terpisah yang memisahkan pencarian ini dari request biasa, sehingga request biasa tetap cepat.

Tanpa `history=true`, request `getBlock` atau `getBlockTime` untuk slot yang lebih lama dapat mengembalikan error ini:

```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`, dan `getSignatureStatuses` (dengan `searchTransactionHistory: true`) mengembalikan `null` untuk signature yang lebih lama dari yang disimpan node, sedangkan `getSignaturesForAddress`, `getBlocks`, dan `getBlocksWithLimit` mengembalikan hasil kosong atau sebagian.

Request dengan `history=true` dapat mengembalikan pesan berikut:

- `This plan has reached its limit for history access. Add a paid plan to use tokens for history access.` — ditampilkan saat suatu alokasi, seperti milik Paket Free, mencapai limitnya.
- `History access is unavailable while your token balance is low. Add tokens.` — ditampilkan pada paket berbayar saat saldo token rendah.
- `On the Free plan, history access is limited to one request per 10 seconds. Slow down or use a paid plan.` — ditampilkan pada Paket Free saat request History Access datang terlalu cepat.

### Method yang Didukung Unlimited Endpoint

Unlimited Endpoint adalah endpoint HTTP dedicated yang dioptimalkan untuk panggilan Solana RPC standar berlatensi rendah. Berikut method Solana RPC standar yang didukung:

- `getSlot`
- `getBlockHeight`
- `getLatestBlockhash`
- `getBalance`
- `getAccountInfo`
- `getMultipleAccounts`
- `getTransaction`
- `sendTransaction`
- `simulateTransaction`
- `getSignatureStatuses`
- `getRecentPrioritizationFees`
- `getHealth`
- `getVersion`
- `getEpochInfo`
- `getBlock`

Untuk method di luar daftar yang didukung ini, gunakan `https://edge.erpc.global?api-key=<YOUR_API_KEY>`.

### Metode dan Dokumentasi Solana RPC

Untuk daftar lengkap metode, parameter, dan spesifikasi subscription, lihat dokumentasi resmi Solana. Dokumentasi tersebut mencakup penggunaan HTTP dan WebSocket.

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