Skip to main content
Filter tokenAccounts LaserStream memungkinkan langganan transaksi gRPC mencocokkan aktivitas pada akun token terkait (ATA) yang dimiliki dompet, bukan hanya transaksi yang memuat pubkey dompet secara langsung. Filter yang sama tersedia melalui WebSocket — lihat Pemfilteran Akun Token (ATA) melalui WebSocket.

Masalahnya: filter akun biasa melewatkan transfer token masuk

Saat Anda memantau dompet dengan accountInclude: [wallet], yang dicocokkan hanya transaksi yang memuat pubkey dompet tersebut dalam kunci akun transaksi. Ada satu kasus umum yang terlewat: ketika seseorang mengirim token SPL (misalnya USDC) ke dompet, transfer tersebut menyentuh akun token terkait (ATA) milik dompet — alamat terpisah yang diturunkan dari program — bukan pubkey dompet itu sendiri. Akibatnya, langganan accountInclude: [wallet] biasa tidak pernah melihat transfer token masuk. Anda harus mencantumkan semua ATA milik dompet terlebih dahulu dan menambahkan masing-masing ke filter — tetapi ATA dibuat sesuai kebutuhan (satu per mint), sehingga Anda tidak dapat mengetahui seluruh kumpulannya sebelumnya.

Cara kerja ekspansi tokenAccounts

Tetapkan tokenAccounts pada filter transaksi untuk memperluas pencocokan, sehingga dompet accountInclude juga cocok dengan transaksi yang menyentuh akun token miliknya. Pencocokan dilakukan berdasarkan pemilik: LaserStream menentukan akun token yang dimiliki oleh alamat accountInclude Anda saat pencocokan, sehingga dapat menangkap setiap akun token milik dompet — termasuk akun nonkanonis — bukan hanya alamat ATA turunan. Anda tidak perlu mencantumkan sendiri semua ATA tersebut. Langganan yang tidak menyertakan tokenAccounts berperilaku sama persis seperti sebelumnya, sehingga aman untuk menambahkannya ke filter yang sudah ada. Untuk mencocokkan berdasarkan token, bukan berdasarkan dompet, lihat Pemfilteran Mint Token. Kedua flag dapat digabungkan, sehingga satu filter dapat memantau aktivitas satu dompet untuk satu token.

Mode ekspansi

tokenAccounts menerima salah satu dari tiga nilai string: Mulailah dengan "balanceChanged". Mode ini menangkap perpindahan dana yang sebenarnya dengan volume yang jauh lebih kecil daripada "all".

Menggunakannya di LaserStream gRPC

Tambahkan tokenAccounts ke filter transaksi dalam SubscribeRequest Anda. Helius LaserStream SDK mengonversi string tersebut menjadi enum TokenAccountExpansionControlFlag tingkat wire untuk Anda (bagian dari yellowstone-grpc-proto 12.5.0+).
Lihat panduan Pemantauan Transaksi untuk contoh yang lebih lengkap tentang perbandingan saldo sebelum dan sesudah, serta referensi Permintaan Langganan untuk semua kolom filter transaksi.

Membaca hasil yang cocok

Setelah transaksi cocok melalui ekspansi ATA, pergerakan token dompet berada dalam meta.postTokenBalances dan meta.preTokenBalances milik transaksi. Filter entri tersebut berdasarkan owner untuk mengisolasi saldo yang benar-benar dimiliki dompet Anda, lalu bandingkan preTokenBalances dengan postTokenBalances pada accountIndex yang sama untuk melihat seberapa banyak setiap mint berpindah. Contoh di atas menunjukkan langkah pemfilteran; panduan Pemantauan Transaksi menunjukkan perbandingan lengkapnya.

Terkait

Transaction Monitoring

Strategi pemfilteran lengkap dan contoh pemantauan dompet yang dapat dijalankan melalui gRPC.

Token Account Filtering (WebSocket)

Kolom tokenAccounts yang sama pada metode WebSocket transactionSubscribe.

Subscribe Request Reference

Semua kolom filter transaksi, termasuk tokenAccounts.

Compressed Filters

Lacak ratusan ribu akun dalam satu stream.

Token Mint Filtering

Berlangganan setiap transaksi untuk mint token dengan matchMints.