Ringkasan
getTransactionsForAddress adalah metode RPC eksklusif Helius yang menampilkan riwayat transaksi suatu alamat dengan pemfilteran lanjutan, pengurutan fleksibel, dan paginasi efisien. Metode ini bukan bagian dari RPC Solana standar.
Tidak seperti getSignaturesForAddress, yang hanya menampilkan tanda tangan dan melewati akun token terkait, getTransactionsForAddress dapat menampilkan data transaksi lengkap, termasuk aktivitas associated token account (ATA) milik dompet, dalam satu panggilan. Karena itu, metode ini menjadi cara tercepat untuk mendapatkan riwayat lengkap suatu alamat guna melakukan backfill, pengindeksan, dan analitik.
Metode ini menampilkan hingga 1.000 transaksi lengkap per panggilan.
Flexible sorting
Urutkan secara kronologis (terlama lebih dahulu) atau terbalik (terbaru lebih dahulu).
Advanced filtering
Filter berdasarkan rentang waktu, slot, tanda tangan, status, dan transfer token.
Full transaction data
Dapatkan detail transaksi lengkap dalam satu panggilan tanpa memerlukan getTransaction lanjutan.
Token accounts
Sertakan transaksi untuk akun token terkait milik suatu alamat.
Kapan metode ini digunakan
GunakangetTransactionsForAddress ketika Anda memerlukan:
- Riwayat token dompet lengkap, termasuk akun token terkait
- Backfill cepat dalam satu panggilan untuk pengindeks atau pipeline data
- Analisis dan pelaporan transaksi berdasarkan waktu atau slot
- Pemfilteran status untuk hanya menyimpan transaksi yang berhasil atau gagal
- Pemutaran ulang riwayat secara kronologis (urutan dari terlama)
- Analisis peluncuran token: transaksi mint pertama dan pemegang awal
- Riwayat pendanaan dompet dan penemuan pihak lawan
- Laporan kepatuhan dan audit untuk periode waktu tertentu
getTransfersByAddress.
Dukungan jaringan
Mulai cepat
1
Get your API key
Dapatkan kunci API Anda dari Dasbor Helius.
2
Query with advanced features
Dapatkan semua transaksi yang berhasil untuk suatu dompet di antara dua tanggal, diurutkan secara kronologis:
3
Understand the parameters
Contoh ini menunjukkan fitur-fitur utama:
- transactionDetails: atur ke
'full'untuk mendapatkan data transaksi lengkap dalam satu panggilan - sortOrder: gunakan
'asc'untuk urutan kronologis (terlama lebih dahulu) atau'desc'untuk yang terbaru lebih dahulu - filters.blockTime: atur rentang waktu dengan
gte(lebih besar dari atau sama dengan) danlte(lebih kecil dari atau sama dengan) - filters.status: filter agar hanya menyertakan transaksi
'succeeded'atau'failed' - filters.tokenAccounts: sertakan transfer, mint, dan burn untuk akun token terkait
Parameter permintaan
string
wajib
Kunci publik akun berenkode base-58 yang riwayat transaksinya akan dikueri
string
default:"signatures"
Tingkat detail transaksi yang ditampilkan:
signatures: Informasi tanda tangan dasar (lebih cepat)full: Data transaksi lengkap (menghilangkan kebutuhan akan panggilan getTransaction, mendukung batas hingga 1.000)
string
default:"desc"
Urutan hasil:
desc: Terbaru lebih dahulu (default)asc: Terlama lebih dahulu (kronologis, cocok untuk analisis historis)
number
default:"1000"
Jumlah maksimum transaksi yang ditampilkan:
- Hingga 1000 saat
transactionDetails: "signatures" - Hingga 1000 saat
transactionDetails: "full"
string
Token paginasi dari respons sebelumnya (format:
"slot:position")string
default:"finalized"
Tingkat komitmen:
finalized atau confirmed. Komitmen processed tidak didukung.object
Opsi pemfilteran lanjutan untuk mempersempit hasil.
object
Filter berdasarkan nomor slot menggunakan operator perbandingan:
gte, gt, lte, ltContoh: { "slot": { "gte": 1000, "lte": 2000 } }object
Filter berdasarkan stempel waktu Unix menggunakan operator perbandingan:
gte, gt, lte, lt, eqContoh: { "blockTime": { "gte": 1640995200, "lte": 1641081600 } }object
Filter berdasarkan tanda tangan transaksi menggunakan operator perbandingan:
gte, gt, lte, ltContoh: { "signature": { "lt": "SIGNATURE_STRING" } }string
Filter berdasarkan status keberhasilan/kegagalan transaksi:
succeeded: Hanya transaksi yang berhasilfailed: Hanya transaksi yang gagalany: Transaksi yang berhasil dan gagal (default)
{ "status": "succeeded" }string
default:"none"
Filter transaksi untuk akun token terkait:
none: Hanya tampilkan transaksi yang merujuk alamat yang diberikan (default)balanceChanged: Tampilkan transaksi yang merujuk alamat yang diberikan atau mengubah saldo akun token milik alamat tersebut (direkomendasikan)all: Tampilkan transaksi yang merujuk alamat yang diberikan atau akun token apa pun milik alamat tersebut
{ "tokenAccounts": "balanceChanged" }object
Filter agar hanya menyertakan transaksi ketika alamat yang dikueri berpartisipasi dalam transfer token yang cocok dengan pihak lawan, arah, mint, atau rentang jumlah mentah. Semua bidang bersifat opsional dan digabungkan dengan semantik AND.Contoh:
{ "tokenTransfer": { "direction": "in", "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" } }string
Alamat pihak lawan. Mencocokkan transfer yang sisi lainnya merupakan alamat ini.
string
default:"any"
Filter berdasarkan arah transfer relatif terhadap alamat yang dikueri:
in: Transfer yang diterima alamat yang dikueriout: Transfer yang dikirim alamat yang dikueriany: Transfer masuk dan keluar
string
Mint token yang digunakan sebagai filter.
object
Perbandingan jumlah menggunakan jumlah mentah on-chain, bukan jumlah UI atau jumlah yang telah disesuaikan dengan desimal. Mendukung
gt, gte, lt, dan lte.string
Format enkode untuk data transaksi (hanya berlaku saat
transactionDetails: "full"). Sama seperti API getTransaction. Opsi: json, jsonParsed, base64, base58number
Atur versi transaksi maksimum yang akan ditampilkan. Jika dihilangkan, hanya transaksi lama yang akan ditampilkan. Atur ke
1 untuk menyertakan transaksi lama, v0, dan v1.number
Slot minimum tempat permintaan dapat dievaluasi
Pengukuran penggunaan
Respons yang berhasil diukur berdasarkan data yang ditampilkan:Respons
Struktur respons bergantung padatransactionDetails. Mode tanda tangan menampilkan catatan tanda tangan yang ringan; mode lengkap menampilkan objek transaksi dan metadata lengkap.
- Signatures Response
- Full Transaction Response
Bidang respons
Bidang
transactionIndex bersifat eksklusif untuk getTransactionsForAddress. Endpoint serupa lainnya seperti getSignaturesForAddress, getTransaction, dan getTransactions tidak menyertakan bidang ini.
Dalam mode lengkap, meta adalah objek metadata transaksi lengkap — strukturnya identik dengan yang ditampilkan oleh getTransaction. Objek ini mencakup preTokenBalances dan postTokenBalances, sehingga Anda dapat menghitung perubahan saldo token (misalnya, untuk mendeteksi swap) langsung dari respons tanpa panggilan lanjutan.
Filter
Anda dapat menggunakan operator perbandingan untukslot, blockTime, dan signature, serta filter khusus status, tokenAccounts, dan tokenTransfer. Menggabungkan beberapa filter akan mempersempit hasil ke irisannya.
Operator perbandingan
Operator ini bekerja seperti kueri basis data agar Anda dapat mengontrol rentang data secara presisi.Filter enum
Contoh filter gabungan:
Akun token terkait
Di Solana, dompet tidak menyimpan token secara langsung. Sebaliknya, dompet memiliki akun token, dan akun token tersebut menyimpan token. Ketika seseorang mengirim USDC kepada Anda, token itu masuk ke akun token USDC Anda, bukan ke alamat dompet utama Anda. Metode ini unik karena dapat mengkueri riwayat token lengkap, termasuk associated token account (ATA) milik dompet. Metode RPC native sepertigetSignaturesForAddress tidak menyertakan ATA.
Filter tokenAccounts mengontrol perilaku ini:
none(default): Hanya menampilkan transaksi yang secara langsung merujuk alamat dompet. Gunakan ini jika Anda hanya membutuhkan interaksi dompet langsung.balanceChanged(direkomendasikan): Menampilkan transaksi yang merujuk alamat dompet atau mengubah saldo akun token milik dompet. Opsi ini menyaring spam dan operasi yang tidak terkait, seperti pengumpulan biaya atau delegasi, sehingga Anda mendapatkan tampilan aktivitas dompet penting yang bersih.all: Menampilkan semua transaksi yang merujuk alamat dompet atau akun token apa pun milik dompet.
tokenAccounts tidak mendukung transaksi sebelum Desember 2022. Filter ini bergantung pada metadata transfer token yang diperkenalkan ke Solana pada slot 111,491,819. Untuk mencakup aktivitas sebelumnya, lihat solusi alternatif akun token historis.
Filter transfer token
FiltertokenTransfer mempersempit hasil ke transaksi ketika alamat yang dikueri berpartisipasi dalam transfer token yang cocok dengan kriteria tertentu: pihak lawan, mint, arah, atau rentang jumlah tertentu.
Gunakan filter ini untuk menjawab pertanyaan seperti:
- Kapan dompet ini menerima USDC dari pihak lawan tertentu?
- Tampilkan setiap transfer keluar di atas 1.000 token.
- Kapan dompet ini pernah berinteraksi dengan mint tertentu ini?
filters pada konfigurasi permintaan:
tokenTransfer bersifat opsional. Menggabungkan beberapa bidang diperlakukan sebagai AND.
Operator rentang jumlah:
Anda dapat menggabungkan operator jumlah, seperti
{ "gte": 1000000, "lte": 5000000 } untuk rentang tertutup. tokenTransfer dapat digabungkan dengan filter tingkat teratas lainnya (slot, blockTime, status, dan tokenAccounts); hasil akhirnya adalah irisan.
Contoh
Analitik berbasis waktu
Buat laporan transaksi bulanan:Pembuatan mint token
Temukan transaksi pembuatan mint untuk token tertentu:Transaksi pendanaan
Temukan pihak yang mendanai alamat tertentu:Transfer token
Filter berdasarkantokenTransfer untuk mengisolasi pergerakan token tertentu.
Aliran masuk USDC ke suatu alamat:
Paginasi
Jika jumlah transaksi melebihi batas Anda, gunakanpaginationToken dari respons untuk mengambil halaman berikutnya. Token ini berupa string sederhana dalam format "slot:position" yang memberi tahu API tempat untuk melanjutkan.
Gunakan token paginasi dari setiap respons untuk mengambil halaman berikutnya:
Beberapa alamat
Anda tidak dapat mengkueri beberapa alamat dalam satu permintaan. Setiap kueri alamat dihitung sebagai permintaan API terpisah dan diukur sesuai ketentuan. Untuk mengambil transaksi bagi beberapa alamat, kueri setiap alamat dalam rentang waktu atau slot yang sama, lalu gabungkan dan urutkan:Praktik terbaik
Performa. GunakantransactionDetails: "signatures" saat Anda tidak memerlukan data transaksi lengkap. Gunakan ukuran halaman yang wajar untuk waktu respons yang lebih baik, dan filter berdasarkan rentang waktu atau slot tertentu untuk kueri yang lebih terarah.
Pemfilteran. Mulai dengan filter yang luas, lalu persempit secara bertahap. Gunakan filter berbasis waktu untuk alur kerja analitik dan pelaporan, serta gabungkan beberapa filter untuk kueri presisi yang menargetkan jenis transaksi atau periode waktu tertentu.
Paginasi. Simpan token paginasi saat Anda perlu melanjutkan kueri besar nanti. Pantau kedalaman paginasi untuk perencanaan performa, dan gunakan urutan menaik saat Anda perlu memutar ulang peristiwa historis secara kronologis.
Penanganan kesalahan. Tangani batas laju dengan baik menggunakan backoff eksponensial. Validasi alamat sebelum membuat permintaan, dan simpan hasil dalam cache jika sesuai untuk mengurangi penggunaan API.
Batasan dan kasus khusus
Sejumlah kecil alamat diarahkan ke arsip lama, dibatasi pada fallback pemindaian slot, atau menampilkan hasil kosong. Penemuan akun token sebelum slot 111,491,819 juga memerlukan solusi alternatif. Perluas bagian di bawah untuk melihat detail lengkap.Unsupported and specially-routed addresses
Unsupported and specially-routed addresses
Diarahkan ke arsip lama. Permintaan untuk alamat-alamat ini diarahkan ke sistem arsip lama kami.
Fallback pemindaian slot. Permintaan untuk alamat-alamat ini diteruskan ke sistem arsip baru kami dan dapat dikueri melalui pendekatan pemindaian per slot (maksimum 100 slot). Namun, data ini tidak diindeks.
Menampilkan hasil kosong (
is_reserved_address). Permintaan diteruskan ke sistem arsip baru kami, tetapi datanya tidak diindeks dan kueri menampilkan hasil kosong.Workaround: historical token account discovery (before slot 111,491,819)
Workaround: historical token account discovery (before slot 111,491,819)
Untuk alamat dengan aktivitas akun token sebelum slot 111,491,819, filter
tokenAccounts tidak dapat menentukan kepemilikan karena bidang owner dalam metadata saldo token belum tersedia. Untuk mendapatkan hasil lengkap, Anda dapat menemukan akun token tersebut secara manual dengan menguraikan instruksi transaksi awal, lalu mengkueri getTransactionsForAddress secara paralel untuk masing-masing akun.Apa perbedaannya dengan getSignaturesForAddress?
Jika Anda sudah memahami metode standargetSignaturesForAddress, getTransactionsForAddress menyederhanakan alur kerja beberapa langkah menjadi satu panggilan serta menambahkan dukungan pemfilteran, pengurutan, dan akun token. Untuk konversi kode yang ada secara bertahap, lihat panduan migrasi.
Dapatkan transaksi lengkap dalam satu panggilan
DengangetSignaturesForAddress, Anda memerlukan dua langkah:
getTransactionsForAddress, Anda hanya memerlukan satu panggilan:
Dapatkan riwayat token dalam satu panggilan
DengangetSignaturesForAddress, Anda harus memanggil getTokenAccountsByOwner terlebih dahulu, lalu mengkueri setiap akun token:
getTransactionsForAddress, Anda hanya perlu mengatur filters.tokenAccounts:
Kemampuan tambahan
Chronological sorting
Urutkan transaksi dari yang terlama hingga terbaru dengan
sortOrder: 'asc'.Time-based filtering
Filter berdasarkan rentang waktu menggunakan filter
blockTime.Status filtering
Dapatkan hanya transaksi yang berhasil atau gagal dengan filter
status.Simpler pagination
Gunakan
paginationToken sebagai pengganti tanda tangan before/until yang membingungkan.Langkah berikutnya
Indexing guide
Gunakan getTransactionsForAddress untuk melakukan backfill dan menyinkronkan indeks Solana.
getTransfersByAddress
Riwayat yang telah diuraikan dan hanya mencakup transfer untuk pembayaran dan rekonsiliasi.
API reference
Skema permintaan dan respons lengkap untuk getTransactionsForAddress.
Historical data overview
Bandingkan semua metode data historis Solana.