
Memperkenalkan Filter Akun Token untuk gTFA
Oktober lalu, kami merilis getTransactionsForAddress, panggilan RPC Solana baru untuk mengkueri data historis yang menggabungkan getSignaturesForAddress dan getTransaction dalam satu metode.
Hari ini, kami dengan senang hati mengumumkan bahwa getTransactionsForAddress (gTFA) kini dapat mengkueri riwayat transfer token dompet hanya dengan satu panggilan RPC.
Fitur tokenAccounts baru memungkinkan pengguna menyertakan transaksi untuk Akun Token Terkait milik dompet—yang sebelumnya tidak disertakan dalam gTFA dan pendahulunya, getSignaturesForAddress.
Sebelumnya, developer harus mengkueri getTokenAccountsByOwner, lalu getSignaturesForAddress untuk setiap akun token.
Proses ini lambat dan mahal, serta sering kali memerlukan ratusan panggilan RPC tambahan.
Sekarang, Anda hanya perlu melakukan satu panggilan ke getTransactionsForAddress dengan tokenAccounts.
Masalahnya
Di Solana, dompet Anda sebenarnya tidak menyimpan token secara langsung.
Sebaliknya, dompet Anda memiliki Associated Token Accounts (ATA), dan akun token tersebut menyimpan token Anda.
Misalnya, saat seseorang mengirimkan USDC kepada Anda, token tersebut masuk ke akun token USDC Anda, bukan ke alamat utama dompet Anda.
Hal ini menimbulkan masalah besar saat mengkueri riwayat transaksi dompet:
Saat Anda memanggil getSignaturesForAddress pada dompet, Anda hanya mendapatkan transaksi yang secara langsung merujuk alamat dompet tersebut.
Transfer token yang berinteraksi dengan akun token Anda—tetapi tidak menyebut dompet Anda—tidak akan muncul.
Solusi Sementara
Sebelum hari ini, developer harus menerapkan solusi sementara yang merepotkan:
- Panggil
getTokenAccountsByOwneruntuk mendapatkan akun token milik dompet - Panggil
getSignaturesForAddressuntuk dompet itu sendiri - Panggil
getSignaturesForAddressuntuk setiap akun token - Gabungkan semua hasil
- Hapus duplikat (banyak transaksi melibatkan beberapa akun)
- Urutkan secara kronologis
Pendekatan ini bermasalah karena beberapa alasan:
1. Performa lambat
Dompet dengan 50 akun token memerlukan lebih dari 51 panggilan RPC hanya untuk menyusun riwayat lengkap. Trader profesional, pengguna berat DeFi, atau trader memecoin rekreasional dapat memiliki ratusan akun token.
2. Paginasi tidak efisien
Ingin mendapatkan 20 transaksi terbaru? Anda tidak bisa sekadar mengambil 20 transaksi dari setiap sumber lalu menggabungkannya—Anda harus mengambil semuanya, menghapus duplikat, mengurutkannya, lalu mengambil 20 transaksi pertama.
Tidak ada cara untuk melakukan paginasi secara efisien tanpa mengambil data secara berlebihan.
3. Biaya RPC terus bertambah
Setiap panggilan RPC memiliki overhead. Mengalikan overhead tersebut dengan lebih dari 100 panggilan per permintaan pengguna akan cepat menjadi mahal, terutama dalam skala besar.
Solusinya
Dengan filter tokenAccounts baru, Anda bisa mendapatkan riwayat lengkap dompet dalam satu permintaan RPC:
{
"jsonrpc": "2.0",
"id": "helius-example",
"method": "getTransactionsForAddress",
"params": [
"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
{
"filters": {
"tokenAccounts": "all"
},
"sortOrder": "asc",
"limit": 100
}
]
}Selesai. Satu panggilan. Riwayat lengkap.
Opsi Pemfilteran
Filter tokenAccounts menyediakan tiga opsi: none, balanceChanged, dan all.
none (default)
Saat filter tokenAccounts diatur ke none, transaksi harus merujuk alamat dompet.
balanceChanged (direkomendasikan)
Saat balanceChanged diterapkan, transaksi akan merujuk alamat dompet atau mengubah saldo akun token milik dompet tersebut.
all
Mengatur tokenAccounts ke all mengharuskan transaksi merujuk alamat dompet atau akun token milik dompet tersebut.
Kasus Penggunaan
Fitur baru ini penting untuk:
- Dompet yang menampilkan riwayat transaksi lengkap
- Pelacak portofolio yang memerlukan setiap pergerakan token
- Perangkat lunak pajak yang menghitung keuntungan/kerugian di seluruh token
- Dasbor analitik yang menampilkan aktivitas pengguna
Mulai Gunakan
Fitur tokenAccounts kini tersedia.
Cukup tambahkan tokenAccounts: balanceChanged (atau all) ke objek filter Anda, dan semuanya siap digunakan!
Belum menggunakan getTransactionsForAddress?
Baca dokumentasi dan SDK kami untuk mempelajari lebih lanjut dan mulai menggunakannya.
Artikel Terkait
Berlangganan Helius
Ikuti perkembangan terbaru dalam pengembangan Solana dan dapatkan pembaruan saat kami memublikasikan postingan


