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 denganaccountInclude: [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
TambahkantokenAccounts 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+).
Membaca hasil yang cocok
Setelah transaksi cocok melalui ekspansi ATA, pergerakan token dompet berada dalammeta.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.