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.
endpoint
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.
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"}
Anda dapat membuat dan memeriksa API key di ERPC Dashboard: ERPC Dashboard
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:
endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
Atau kirim Authorization: Bearer <YOUR_API_KEY> sebagai header, dengan opsi di URL:
endpoint
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.