transactionSubscribe là gì?
Phương thức WebSocket transactionSubscribe (một tiện ích mở rộng của Helius dành cho API WebSocket Solana tiêu chuẩn) cho phép nhận các sự kiện giao dịch theo thời gian thực.
Để sử dụng, hãy cung cấp một TransactionSubscribeFilter và tùy chọn thêm TransactionSubscribeOptions để tùy chỉnh thêm.
transactionSubscribe sử dụng cùng các điểm cuối wss://mainnet.helius-rpc.com và wss://devnet.helius-rpc.com hợp nhất như các phương thức đăng ký Solana tiêu chuẩn.
TransactionSubscribeFilter
vote: cờ boolean để bao gồm/loại trừ các giao dịch liên quan đến biểu quyếtfailed: cờ boolean để bao gồm/loại trừ các giao dịch thất bạisignature: lọc các bản cập nhật cho một giao dịch cụ thể dựa trên chữ ký của giao dịch đóaccountInclude: danh sách tài khoản mà bạn muốn nhận bản cập nhật giao dịch. Chỉ cần một trong các tài khoản được bao gồm trong bản cập nhật giao dịch (ví dụ: Tài khoản 1 HOẶC 2).accountExclude: danh sách tài khoản mà bạn muốn loại trừ khỏi các bản cập nhật giao dịchaccountRequired: giao dịch phải bao gồm tất cả các tài khoản đã chỉ định thì mới được đưa vào bản cập nhật (ví dụ: Tài khoản 1 VÀ 2)tokenAccounts: tùy chọn mở rộng tài khoản token liên kết (ATA) (balanceChanged,allhoặcnone). Xem phần Theo dõi ví, bao gồm cả các lượt chuyển token bên dưới.
TransactionSubscribeOptions (Không bắt buộc)
commitment: mức cam kết để truy xuất dữ liệu (processed,confirmedhoặcfinalized)encoding: định dạng mã hóa của dữ liệu được trả về (base58,base64hoặcjsonParsed)transactionDetails: mức độ chi tiết của dữ liệu được trả về (full,signatures,accountsvànone)showRewards: cờ boolean cho biết có nên đưa dữ liệu phần thưởng vào các bản cập nhật hay khôngmaxSupportedTransactionVersion: chỉ định phiên bản giao dịch cao nhất mà bạn muốn nhận bản cập nhật. Đặt giá trị thành1để nhận các giao dịch legacy, v0 và v1. Xem Hỗ trợ giao dịch v1.
Cần có
maxSupportedTransactionVersion để trả về các tài khoản và thông tin chi tiết ở cấp độ đầy đủ của một giao dịch nhất định (tức là transactionDetails: "accounts" | "full").Ví dụ về đăng ký giao dịch
Trong ví dụ này, chúng ta đăng ký nhận thông tin về các giao dịch chứa tài khoản Raydium675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8.
Khi xảy ra một giao dịch có chứa tài khoản 675k...1Mp8 trong accountKeys của giao dịch, chúng ta sẽ nhận được thông báo WSS.
Dựa trên các tùy chọn đăng ký, thông báo giao dịch sẽ được gửi ở mức cam kết processed, mã hóa jsonParsed, thông tin chi tiết giao dịch full và sẽ hiển thị phần thưởng.
Ví dụ về thông báo
Theo dõi ví, bao gồm cả các lượt chuyển token
Khi theo dõi ví bằngaccountInclude, bạn chỉ khớp với các giao dịch mà khóa công khai của ví xuất hiện trực tiếp trong các khóa tài khoản. Một trường hợp phổ biến sẽ bị bỏ sót: khi ai đó gửi token SPL (chẳng hạn như USDC) đến ví, lượt chuyển sẽ tác động đến tài khoản token liên kết (ATA) của ví chứ không phải khóa công khai của ví — vì vậy, đăng ký accountInclude: [wallet] thông thường sẽ không bao giờ phát hiện được giao dịch đó.
Đặt trường tokenAccounts để mở rộng phạm vi khớp, nhờ đó tài khoản được theo dõi cũng khớp với các giao dịch mà tài khoản đó sở hữu số dư token:
balanceChanged: khớp khi ví sở hữu số dư token có số lượng thay đổi (hoặc tài khoản token bị đóng) trong giao dịch. Sử dụng tùy chọn này khi muốn “thông báo cho tôi khi tiền thực sự được chuyển”. Đây là lựa chọn có phạm vi hẹp hơn, lưu lượng thấp hơn và phổ biến nhất.all: khớp với mọi giao dịch tham chiếu đến số dư token mà ví sở hữu, ngay cả khi số dư không thay đổi. Lưu lượng cao hơn.none: không mở rộng. Tương tự như khi bỏ qua trường này (mặc định).
-32602. Các lượt đăng ký bỏ qua tokenAccounts hoạt động giống hệt như trước đây. Để xem tổng quan đầy đủ về cách hoạt động của tính năng mở rộng ATA, hãy xem Lọc tài khoản token (ATA) qua WebSocket.
Giám sát các DCA Jupiter mới
DCA Jupiter, hay phương pháp trung bình giá, là một cách để lên lịch giao dịch định kỳ trên Solana. Vì các lệnh mua/bán đã lên lịch này được ghi lại trên chuỗi, nhà giao dịch có thể sử dụng phương thứctransactionSubscribe và getAsset để theo dõi các lệnh mới.
Ví dụ về thông báo

Giám sát các token pump.fun mới
Ví dụ về thông báo

Quản lý lượt đăng ký
ID đăng ký
KhitransactionSubscribe thành công, máy chủ trả về một ID đăng ký trong trường result. Đây cũng là số xuất hiện trong params.subscription trên mọi thông báo từ lượt đăng ký đó:
Hủy đăng ký
Để ngừng nhận thông báo, hãy gọitransactionUnsubscribe với ID đăng ký. Mỗi lệnh gọi transactionSubscribe trên cùng một kết nối sẽ tạo một lượt đăng ký riêng với ID riêng. Vì vậy, hãy nhớ hủy đăng ký trước khi đăng ký lại để tránh nhận thông báo trùng lặp.
transactionUnsubscribe. Đây là hành vi bình thường.