Skip to main content

Parsed Streams là gì?

Parsed Streams là một dịch vụ WebSocket theo dõi mọi giao dịch Solana đã được xác nhận (không bao gồm giao dịch biểu quyết), giải mã chúng và gửi cho bạn những giao dịch khớp với bộ lọc do bạn xác định. Bạn có thể yêu cầu “Tôi quan tâm đến các chỉ thị định tuyến của Jupiter” hoặc “Tôi quan tâm đến mọi hoạt động liên quan đến tài khoản này”; máy chủ sẽ thay bạn theo dõi, giải mã và đối chiếu. Bạn nhận được toàn bộ giao dịch đã được giải mã: mọi chỉ thị với các đối số và tài khoản có tên, cùng với phí, danh sách đầy đủ các khóa tài khoản, summary ở cấp giao dịch về những gì đã xảy ra, các lượt chuyển SOL và token, cũng như tham chiếu đến chính xác các chỉ thị khớp với bộ lọc của bạn. Toàn bộ dữ liệu được gửi ở mức commitment confirmed.

Mô hình tư duy

Nếu đã nắm rõ cơ chế nội bộ của Solana, bạn có thể chuyển sang phần tiếp theo. Nếu chưa, đây là mô hình làm nền tảng cho toàn bộ API. Giao dịch là một thông điệp đã ký. Giao dịch xác định người trả phí, liệt kê mọi tài khoản mà nó sẽ tương tác và chứa một danh sách chỉ thị. Khi xem một giao dịch, bạn sẽ thấy: chữ ký (mã định danh duy nhất), slot chứa giao dịch, khoản phí đã trả, các khóa tài khoản, trạng thái thành công hoặc thất bại và các chỉ thị. Chỉ thị là một hành động: chạy chương trình này với dữ liệu đầu vào này bằng các tài khoản này. Ví dụ: một giao dịch hoán đổi trên Jupiter, một lượt chuyển token hoặc một bản ghi nhớ. Một giao dịch thường chứa nhiều chỉ thị và chúng chạy theo thứ tự. Các chương trình có thể gọi những chương trình khác. Khi Jupiter thực hiện một giao dịch hoán đổi, nó không tự di chuyển token. Chỉ thị định tuyến của Jupiter gọi chương trình token để di chuyển token và gọi các chương trình sàn giao dịch nắm giữ thanh khoản. Những lệnh gọi lồng nhau đó cũng là chỉ thị, được gọi là chỉ thị nội bộ (hoặc CPI, lệnh gọi liên chương trình). Điều này rất quan trọng khi bạn viết bộ lọc: phần lớn hoạt động thực tế, chẳng hạn như quá trình di chuyển token bên trong một giao dịch hoán đổi, diễn ra trong các chỉ thị nội bộ, vì vậy bộ lọc mặc định sẽ khớp với chúng. Nếu chỉ muốn các chỉ thị mà người dùng đã ký, hãy đặt includeCpi thành false. Tài khoản là những đối tượng trên chuỗi mà một chỉ thị tương tác: ví, số dư token, pool và mint. Mỗi chỉ thị chứa chúng dưới dạng danh sách địa chỉ có thứ tự, và thứ tự chính là quy ước: chương trình xác định ý nghĩa của từng vị trí. Ví dụ, chương trình token yêu cầu tài khoản gửi token ở vị trí đầu tiên, tiếp theo là tài khoản nhận token, rồi đến chủ sở hữu phê duyệt việc chuyển token. Vai trò đặt tên cho các vị trí đó. Hầu hết các chương trình phổ biến đều công bố một tài liệu hướng dẫn mà máy có thể đọc được cho giao diện của chương trình, gọi là IDL. Tài liệu này liệt kê mọi chỉ thị của chương trình, ý nghĩa của các trường dữ liệu và mục đích của từng vị trí tài khoản. Helius duy trì một danh mục các tài liệu này cho hàng nghìn chương trình. Nhờ đó, một danh sách địa chỉ thuần túy được chuyển thành các tài khoản có tên: đối với một lượt chuyển token, vị trí 0 trở thành source, vị trí 1 trở thành destination và vị trí 2 trở thành authority. Thay vì đoán địa chỉ thứ ba có ý nghĩa gì, bạn đọc {"name": "authority", "pubkey": "9xQe...", "isSigner": true}. Đây là những tên vai trò mà bạn có thể dùng để lọc. Giải mã là cùng một nguyên tắc được áp dụng cho dữ liệu đầu vào của chỉ thị. Khi truyền qua mạng, dữ liệu đó là các byte không thể đọc trực tiếp. Nhờ tài liệu hướng dẫn của chương trình, các byte trở thành những giá trị có tên: {"in_amount": "1000000", "slippage_bps": 50}. Không phải chỉ thị nào cũng có thể được giải mã, vì vậy mỗi chỉ thị thuộc một trong ba trạng thái mà bạn có thể nhận biết trực tiếp qua các trường của nó:
  • Đã giải mã: chỉ thị chứa một đối tượng decoded với các args có tên và các accounts có tên.
  • Đã nhận dạng: ngoài decoded, chỉ thị còn chứa summary với type (chẳng hạn như swap), description mà con người có thể đọc được và payload parsedData có cấu trúc, chẳng hạn như siêu dữ liệu hoán đổi gồm số lượng và mint.
  • Chưa giải mã: chương trình hoặc chỉ thị không có trong danh mục, decoded là null, và thay vào đó chỉ thị chứa các byte thô (rawData) cùng danh sách địa chỉ thuần túy (rawAccounts), vì vậy bạn luôn có dữ liệu để xử lý.
Đó là toàn bộ mô hình, và bộ lọc của bạn được xây dựng trực tiếp từ mô hình này:
  • programs: chỉ thị gọi chương trình nào
  • instructionNames: tài liệu hướng dẫn của chương trình gọi hành động đó là gì
  • accounts.include: chỉ thị tương tác với những địa chỉ nào
  • accounts.roles: vị trí có tên nào phải chứa địa chỉ nào
  • includeCpi và includeFailed: có tính các chỉ thị nội bộ và giao dịch thất bại hay không
Bộ lọc chọn các chỉ thị; thông báo gửi toàn bộ giao dịch.

So sánh với các dịch vụ khác

vs Enhanced WebSockets

Enhanced WebSockets truyền phát toàn bộ giao dịch hoặc bản cập nhật tài khoản mà không giải mã. Parsed Streams đối chiếu ở cấp chỉ thị và giải mã mọi thứ cho bạn.

vs LaserStream gRPC

LaserStream là luồng dữ liệu gRPC thông lượng cao mà bạn lọc và giải mã trên máy khách. Parsed Streams là một API WebSocket thực hiện việc lọc và giải mã trên máy chủ.

vs Parsed Events

Parsed Events áp dụng cùng cơ chế giải mã cho các giao dịch trong quá khứ: phân tích chữ ký hoặc duyệt từng trang lịch sử của một địa chỉ theo yêu cầu qua REST. Parsed Streams đẩy các giao dịch mới ngay khi chúng được ghi nhận.

Các chương trình được hỗ trợ

Parsed Streams giải mã hơn 3.600 chương trình từ IDL trên chuỗi của chúng, cùng với các chương trình cốt lõi như SPL Token, Token-2022 và System Program thông qua các bộ giải mã tích hợp sẵn. Bạn có thể lọc theo địa chỉ của bất kỳ chương trình nào. Những chỉ thị mà dịch vụ không thể giải mã sẽ được truyền phát dưới dạng dữ liệu chỉ thị thô. Một số chương trình được giải mã và sử dụng nhiều nhất:
Không thấy một chương trình? Có thể chương trình đó vẫn nằm trong danh mục. Hãy gọi describeProgram bằng địa chỉ của chương trình để xem các chỉ thị, sự kiện và vai trò tài khoản.

Quyền truy cập và giá

Parsed Streams được cung cấp rộng rãi trên tất cả các gói, bao gồm cả gói Free. Dịch vụ này thay thế Enhanced Transaction Webhooks để cung cấp dữ liệu giao dịch đã phân tích theo thời gian thực. Lấy khóa API từ Helius Dashboard. Mỗi sự kiện được gửi có giá 1 tín dụng, bằng với mức giá của sự kiện webhook. Xem Tín dụng để biết bảng giá đầy đủ. Việc tính tín dụng bắt đầu vào ngày 24 tháng 9 năm 2026. Các dự án đã sử dụng Parsed Streams trước ngày đó sẽ không bị tính phí cho đến ngày 1 tháng 10 năm 2026. Parsed Streams được cung cấp trên endpoint Gatekeeper, cùng máy chủ với lưu lượng RPC và WebSocket của Helius. Không có máy chủ Parsed Streams riêng:
Xác thực bằng khóa API của dự án, được truyền dưới dạng tham số truy vấn api-key (hoặc header x-api-key). Khóa được kiểm tra khi kết nối mở: khóa bị thiếu hoặc không hợp lệ sẽ bị từ chối bằng HTTP 401, còn dự án đã đạt giới hạn kết nối sẽ nhận HTTP 429.

Bắt đầu

Quickstart

Kết nối, gửi bộ lọc đầu tiên và đọc một thông báo.

Track Jupiter Swaps

Xây dựng và đăng ký một bộ lọc thực tế bằng tính năng khám phá chương trình.

Track Pump.fun Mints

Một trình lắng nghe an toàn khi kết nối lại, ghi nhật ký mọi lần triển khai token Pump.fun mới.

Handling Reconnects

Phát hiện ngắt kết nối, tăng dần thời gian chờ, đăng ký lại và truy xuất bổ sung các slot bị bỏ lỡ.