Skip to main content

Ikhtisar

getTransfersByAddress adalah metode RPC eksklusif Helius yang mengembalikan objek transfer token dan SOL native yang telah diuraikan dan mudah dibaca untuk suatu alamat dompet. Metode ini bukan bagian dari RPC Solana standar. Metode ini berfokus pada aktivitas transfer, sehingga mengembalikan catatan transfer ringkas, bukan payload transaksi lengkap. Setiap catatan dinormalisasi dengan akun pemilik dan token yang telah diuraikan, mint, jumlah mentah, desimal, jumlah UI, posisi instruksi, dan status konfirmasi. Dengan demikian, Anda dapat merekonsiliasi pergerakan saldo tanpa mengimplementasikan ulang penguraian token Solana. Metode ini memerlukan paket Developer atau yang lebih tinggi dan dikenai biaya 10 kredit per permintaan.

Parsed transfer objects

Mengembalikan catatan transfer yang mudah dibaca dengan akun, jumlah, desimal, dan jenis transfer yang telah diuraikan.

Reconciliation ready

Memodelkan SOL, WSOL, biaya Token-2022, mint, burn, dan perubahan pemilik akun agar saldo dapat direkonsiliasi secara akurat.

Mint, time, and amount filters

Mempersempit riwayat transfer berdasarkan alamat mint, rentang waktu blok, atau rentang jumlah mentah.

Counterparty filters

Memfilter transfer berdasarkan pengirim atau penerima dengan with dan direction.

Kapan perlu menggunakannya

Gunakan getTransfersByAddress saat Anda memerlukan:
  • Riwayat transfer dompet untuk pembayaran atau pemantauan transfer
  • Aktivitas portofolio dan analitik pergerakan token
  • Rekonsiliasi saldo yang dapat diandalkan untuk buku besar dan akuntansi
  • Laporan transfer khusus pihak lawan (siapa yang mengirim atau menerima apa)
  • Penanganan SOL/WSOL, biaya Token-2022, mint, dan burn yang dinormalisasi tanpa menulis parser
Sebagai gantinya, gunakan getTransactionsForAddress saat Anda memerlukan data transaksi lengkap, riwayat yang hanya berisi tanda tangan, atau aktivitas selain transfer. Pola yang umum adalah menelusuri transfer per halaman di sini, lalu mengambil transaksi lengkap yang mendasarinya dengan panggilan getTransaction secara batch (lihat Ambil transaksi lengkap untuk baris transfer).

Akurasi dan rekonsiliasi

getTransfersByAddress dibuat untuk aplikasi yang memerlukan riwayat transfer yang dapat diandalkan untuk buku besar, pelacakan pembayaran, aktivitas portofolio, dan rekonsiliasi saldo. Alih-alih mengembalikan payload transaksi mentah dan menyerahkan setiap kasus khusus kepada parser Anda, API mengembalikan objek transfer yang dinormalisasi. Respons secara eksplisit memodelkan kasus transfer yang umumnya menyulitkan rekonsiliasi riwayat Solana:
  • Transfer token SPL standar dan SOL native.
  • Transfer Token-2022 dengan biaya yang ditahan, yang direpresentasikan sebagai baris transfer biasa dengan kolom biaya terpisah.
  • Mint dan burn, yang direpresentasikan sebagai transfer dengan pengirim atau penerima null.
  • Perilaku wrapping dan unwrapping SOL, dengan mode default yang dirancang untuk menghindari baris siklus hidup yang tidak diperlukan.
  • Perubahan pemilik akun token melalui SetAuthority.
  • Penarikan biaya Token-2022 yang ditahan.
  • Alur akun perantara, yang dikembalikan sebagai catatan transfer yang mendasarinya, bukan digabungkan menjadi perkiraan pergerakan bersih.
Untuk peristiwa transfer terlihat yang didukung, hal ini memungkinkan Anda merekonsiliasi pergerakan saldo tanpa mengimplementasikan ulang logika penguraian token Solana. Pengecualian yang diketahui, seperti pergerakan SOL tersembunyi yang hanya disimpulkan dari perubahan saldo, dijelaskan dalam Batasan.

Mulai cepat

Parameter permintaan

Masukkan alamat pemilik dompet, bukan associated token account (ATA). API menemukan aktivitas transfer untuk akun token yang dimiliki dompet tersebut.
string
wajib
Alamat dompet pemilik dengan pengodean Base58 yang transfernya akan dikueri. Masukkan alamat pemilik dompet, bukan associated token account (ATA).
object
Objek konfigurasi opsional untuk pemfilteran, paginasi, komitmen, pengurutan, serta perilaku SOL/WSOL.
string
Filter berdasarkan alamat pihak lawan. Hanya mengembalikan transfer ke atau dari alamat ini.
string
default:"any"
Filter berdasarkan arah transfer relatif terhadap address.
  • in: transfer yang diterima oleh address
  • out: transfer yang dikirim oleh address
  • any: transfer masuk dan keluar
string
Filter berdasarkan alamat mint token. Gunakan So11111111111111111111111111111111111111111 untuk SOL native dan So11111111111111111111111111111111111111112 untuk WSOL.
string
default:"merged"
Mengontrol cara SOL native dan WSOL direpresentasikan.
  • merged: WSOL diperlakukan sebagai SOL native. Baris siklus hidup wrap dan unwrap dikecualikan, dan nilai mint WSOL ditulis ulang menjadi mint SOL native.
  • separate: WSOL dipertahankan sebagai mint yang berbeda, dan baris siklus hidup wrap dan unwrap disertakan.
object
Filter tambahan untuk jumlah, waktu blok, dan slot.
number
default:"100"
Jumlah maksimum transfer yang akan dikembalikan. Rentang: 1 hingga 100.
string
Kursor dari respons sebelumnya untuk paginasi.
string
default:"finalized"
Tingkat komitmen data.
  • finalized
  • confirmed
number
Slot minimum tempat permintaan dapat dievaluasi
string
default:"desc"
Urutan hasil.
  • desc: terbaru terlebih dahulu
  • asc: terlama terlebih dahulu

Respons

Detail kolom respons

  • fromUserAccount dan toUserAccount selalu ada. Jika salah satu sisi tidak ada, nilainya adalah null.
  • fromTokenAccount dan toTokenAccount hanya disertakan saat endpoint akun token relevan untuk baris tersebut. Keduanya sepenuhnya dihilangkan untuk transfer SOL native.
  • Transfer mint bersifat satu sisi: fromUserAccount adalah null, dan transfer tersebut hanya dapat dikembalikan sebagai transfer masuk bagi penerima.
  • Transfer burn bersifat satu sisi: toUserAccount adalah null, dan transfer tersebut hanya dapat dikembalikan sebagai transfer keluar bagi pemilik yang melakukan burn.

Filter

Gunakan filter perbandingan untuk kueri rentang numerik. Semua kolom perbandingan bersifat opsional dan dapat digabungkan.

Jenis transfer

Kolom type mengidentifikasi perilaku transfer yang direpresentasikan oleh setiap baris.

Jenis transfer dan instruksi

Perilaku SOL dan wSOL

SOL tersedia di Solana dalam dua bentuk yang sering muncul bersama dalam aktivitas pengguna nyata:
  • SOL native adalah aset native rantai. Aset ini berada langsung di dompet atau akun sebagai lamport. Satu SOL setara dengan 1.000.000.000 lamport.
  • Wrapped SOL (WSOL, sering ditulis wSOL) adalah representasi token SPL dari SOL. Aset ini menggunakan mint WSOL So11111111111111111111111111111111111111112 dan berada dalam akun token, seperti USDC atau token SPL lainnya.
Pengguna dan aplikasi melakukan wrap pada SOL saat mereka memerlukan SOL untuk berperilaku seperti token SPL, biasanya untuk DeFi, swap, akuntansi berbasis akun token, atau antarmuka program yang hanya menerima token SPL. Proses wrapping biasanya mendanai akun token dengan SOL native dan menyinkronkannya menjadi WSOL. Proses unwrapping menutup akun token WSOL dan mengembalikan SOL ke tujuan lamport. Siklus hidup tersebut dapat menghasilkan riwayat yang membingungkan jika Anda mencoba menjawab pertanyaan sederhana seperti “berapa banyak SOL yang berpindah antara dompet ini dan pihak lain?” Proses wrap atau unwrap sering memindahkan SOL di antara akun yang dikendalikan oleh pemilik yang sama. Jika baris siklus hidup tersebut ditampilkan secara default sebagai transfer biasa, aplikasi dapat menghitung aktivitas dua kali atau menampilkan pembukuan internal sebagai pembayaran eksternal. Secara default, getTransfersByAddress menggunakan solMode: "merged". Dalam mode ini:
  • SOL native dan WSOL diperlakukan sebagai satu aset SOL saat melakukan kueri berdasarkan So11111111111111111111111111111111111111111.
  • Baris transfer WSOL dinormalisasi ke mint SOL native agar riwayat dalam denominasi SOL lebih mudah direkonsiliasi.
  • Baris siklus hidup wrap dan unwrap dikecualikan karena biasanya merepresentasikan pergerakan antara akun yang dikendalikan oleh pemilik yang sama, bukan pembayaran kepada pengguna lain.
  • Transfer SOL dan WSOL antara pemilik yang berbeda tetap direpresentasikan sebagai transfer.
  • Rent yang diperoleh kembali dari CloseAccount direpresentasikan sebagai baris unwrap SOL native saat baris siklus hidup penutupan akun dikembalikan.
Gunakan solMode: "separate" saat Anda memerlukan WSOL sebagai mint token SPL yang berbeda atau ingin memeriksa catatan siklus hidup wrap dan unwrap. Dalam mode ini, WSOL mempertahankan mint So11111111111111111111111111111111111111112, dan catatan wrap/unwrap dikembalikan dengan type: "wrap" atau type: "unwrap". Untuk penutupan akun WSOL dalam solMode: "separate", catatan unwrap untuk mint WSOL merepresentasikan sisa saldo token WSOL yang dikembalikan sebagai SOL. Rent yang dikembalikan dari akun token yang ditutup akan dikembalikan sebagai baris unwrap SOL native terpisah.

Biaya transfer Token-2022

Instruksi TransferCheckedWithFee Token-2022 direpresentasikan sebagai satu catatan transfer dengan type: "transfer". Jumlah tujuan dikembalikan dalam amount; detail biaya yang ditahan dikembalikan dalam feeAmount dan feeUiAmount. Untuk transfer dengan biaya, amount + feeAmount didebit dari sumber, sedangkan amount dikreditkan ke tujuan.

Contoh

Filter berdasarkan USDC

Transfer masuk dari pengirim

Rentang jumlah dan waktu

Permintaan dengan paginasi

Ambil transaksi lengkap untuk baris transfer

getTransfersByAddress mengembalikan baris transfer yang telah diuraikan, bukan payload transaksi lengkap. Jika Anda memerlukan transaksi lengkap untuk setiap transfer, telusuri transfer per halaman terlebih dahulu, hapus duplikat berdasarkan signature, lalu ambil transaksi lengkap dengan panggilan getTransaction secara batch. getTransfersByAddress tidak dapat dijalankan secara batch untuk beberapa alamat pemilik. Kueri satu alamat pemilik pada satu waktu, lalu jalankan permintaan getTransaction yang dihasilkan secara batch berdasarkan tanda tangan. Satu transaksi dapat menghasilkan beberapa baris transfer, jadi selalu hapus tanda tangan duplikat sebelum mengambil transaksi.

Batasan

  • Transaksi yang gagal tidak disertakan dalam V1.
  • Pergerakan SOL tersembunyi yang hanya disimpulkan dari perubahan saldo tidak didukung dalam V1.
  • harvestWithheldTokensToMint tidak didukung dalam V1 karena tidak menunjukkan jumlah yang dikumpulkan.
  • Alur akun perantara tidak disederhanakan. Jika transaksi memindahkan dana melalui akun perantara, catatan transfer yang mendasarinya akan dikembalikan.
  • Tidak dapat dijalankan secara batch untuk beberapa alamat pemilik. Kueri satu pemilik pada satu waktu.

Langkah berikutnya

getTransactionsForAddress

Riwayat transaksi lengkap dengan dukungan pemfilteran, pengurutan, dan akun token.

API reference

Skema permintaan dan respons lengkap untuk getTransfersByAddress.

Indexing guide

Lakukan backfill dan sinkronkan data transfer ke indeks Anda sendiri.

Historical data overview

Bandingkan semua metode data historis Solana.