Skip to main content
POST
getProgramAccountsV2

Ikhtisar

getProgramAccountsV2 adalah versi yang disempurnakan dari metode standar getProgramAccounts, yang dirancang untuk aplikasi yang perlu mengueri kumpulan besar akun milik program Solana tertentu secara efisien. Metode ini menyediakan paginasi berbasis kursor dan kemampuan pembaruan inkremental.
Fitur Baru di V2:
  • Paginasi berbasis kursor: Konfigurasikan batas dari 1 hingga 10.000 akun per permintaan
  • Pembaruan inkremental: Gunakan changedSinceSlot untuk mengambil hanya akun yang baru saja dimodifikasi
  • Performa lebih baik: Mencegah waktu habis dan mengurangi penggunaan memori untuk kumpulan data besar
  • Kompatibilitas mundur: Mendukung semua parameter getProgramAccounts yang ada
  • withContext opsional: true menambahkan slot dan apiVersion di bawah result.context; hilangkan atau gunakan false agar keduanya tidak disertakan

Manfaat Utama

Scalable Queries

Tangani program dengan jutaan akun melalui paginasi hasil yang efisien

Real-time Sync

Gunakan changedSinceSlot untuk pembaruan inkremental dan sinkronisasi data secara real-time

Prevent Timeouts

Kueri besar yang sebelumnya mengalami waktu habis kini berfungsi secara andal dengan paginasi

Memory Efficient

Proses data dalam beberapa bagian alih-alih memuat semuanya ke memori sekaligus

Praktik Terbaik Paginasi

Perilaku Paginasi Penting: Akhir paginasi hanya ditunjukkan ketika tidak ada akun yang dikembalikan. API dapat mengembalikan lebih sedikit akun daripada batas Anda karena pemfilteran—selalu lanjutkan paginasi hingga paginationKey adalah null.

Pola Paginasi Dasar

Pembaruan Inkremental

Tips Performa

Ukuran Batas Optimal: Untuk sebagian besar kasus penggunaan, batas 1.000–5.000 akun per permintaan memberikan keseimbangan terbaik antara performa dan keandalan.
  • Mulai dengan batas yang lebih kecil (1000), lalu tingkatkan berdasarkan performa jaringan Anda
  • Gunakan pengodean yang sesuai: jsonParsed untuk kemudahan, base64 untuk performa
  • Terapkan filter untuk mengurangi ukuran kumpulan data sebelum paginasi
  • Simpan paginationKey untuk melanjutkan kueri jika terhenti
  • Pantau waktu respons dan sesuaikan batas sebagaimana diperlukan

withContext (opsional)

Nilai Boolean pada objek konfigurasi program (params[1]). Hanya bentuk result yang berubah, bukan filter, batas, atau paginasi.

Migrasi dari getProgramAccounts

Migrasi dari metode asli cukup mudah—cukup ganti nama metode dan tambahkan parameter paginasi:

Metode Terkait

getProgramAccounts

Metode asli tanpa paginasi

getTokenAccountsByOwnerV2

Metode V2 untuk kueri akun token

Parameter Permintaan

string
wajib
Kunci publik (alamat) program Solana yang akunnya akan dikueri, dalam bentuk string yang dikodekan dengan base-58.
string
Tingkat komitmen untuk permintaan.
  • confirmed
  • finalized
  • processed
number
Slot minimum tempat permintaan dapat dievaluasi.
boolean
Jika true, mengembalikan result.context (metadata snapshot: slot, apiVersion) dan menempatkan accounts serta paginationKey di bawah result.value. Jika false atau dihilangkan, kolom tersebut muncul langsung pada result (misalnya result.accounts). Filter dan batas yang sama tetap berlaku.
string
Format pengodean untuk data akun yang dikembalikan.
  • jsonParsed
  • base58
  • base64
  • base64+zstd
object
Minta sebagian data akun.
number
Jumlah byte yang akan dikembalikan.
number
Offset byte tempat pembacaan dimulai.
number
Jumlah maksimum akun yang akan dikembalikan per permintaan (1–10.000).
string
Kursor paginasi yang dikodekan dengan base-58 untuk mengambil halaman berikutnya. Gunakan paginationKey dari respons sebelumnya.
number
Hanya kembalikan akun yang dimodifikasi pada atau setelah nomor slot ini. Berguna untuk pembaruan inkremental.
array
Sistem pemfilteran canggih untuk mengueri pola data akun Solana tertentu secara efisien.

Otorisasi

api-key
string
query
wajib

Kunci API Helius Anda. Anda dapat memperolehnya secara gratis di dasbor.

Body

application/json
jsonrpc
enum<string>
default:2.0
wajib

Versi protokol JSON-RPC.

Opsi yang tersedia:
2.0
Contoh:

"2.0"

id
string
default:1
wajib

Pengidentifikasi unik untuk permintaan.

Contoh:

"1"

method
enum<string>
default:getProgramAccountsV2
wajib

Nama metode RPC yang akan dipanggil.

Opsi yang tersedia:
getProgramAccountsV2
Contoh:

"getProgramAccountsV2"

params
(string | object)[]
wajib

Parameter untuk metode paginasi yang ditingkatkan.

Kunci publik (alamat) program Solana yang akunnya akan dikueri, sebagai string yang dikodekan dengan base-58.

Contoh:

"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"

Respons

Berhasil mengambil akun program yang dipaginasi.

jsonrpc
enum<string>

Versi protokol JSON-RPC.

Opsi yang tersedia:
2.0
Contoh:

"2.0"

id
string

Pengidentifikasi yang cocok dengan permintaan.

Contoh:

"1"

result
tanpa withContext · object

Akun program yang dipaginasi. Bidang yang sama muncul pada result saat withContext bernilai false atau dihilangkan, atau di bawah result.value saat withContext bernilai true.