
Giới thiệu Parsed Events API và Parsed Streams
Mục lục
- Vì sao việc đọc giao dịch Solana lại khó?
- Phản hồi của Parsed Events bao gồm những gì?
- Parsed Streams: Gửi trực tiếp các giao dịch đã giải mã đến bạn
- Làm thế nào để lấy tên lệnh của các chương trình Solana?
- Parsed Events API: Giải mã giao dịch theo yêu cầu
- Parsed Events so với Enhanced Transaction API
- Công cụ phân tích cú pháp nào phù hợp với tôi?
- Bắt đầu
- Hướng dẫn
Parsed Streams và Parsed Events API là hai sản phẩm dữ liệu đã phân tích cú pháp mới của Helius, trả về các giao dịch Solana được giải mã đầy đủ cho hơn 3.600 chương trình dựa trên IDL onchain của chúng:
- Các tài khoản có tên
- Các đối số lệnh có tên
- Nội dung tóm tắt bằng ngôn ngữ tự nhiên
- Mọi giao dịch chuyển SOL và token
Parsed Streams gửi các giao dịch phù hợp đến bạn qua WebSocket ngay khi chúng được xác nhận.
Parsed Events API trả về cùng một mô hình đã giải mã theo yêu cầu qua REST và GraphQL, cho bất kỳ chữ ký nào hoặc toàn bộ lịch sử của bất kỳ địa chỉ nào.
Cả hai hiện đều ở giai đoạn beta mở và khả dụng trên mọi gói trả phí.
Vì sao việc đọc giao dịch Solana lại khó?
Khi truy vấn các node RPC tiêu chuẩn để biết điều gì đã xảy ra trong một giao dịch, bạn nhận được một danh sách địa chỉ tài khoản không có tên và dữ liệu lệnh dưới dạng một khối base58 không rõ nội dung.
Theo cách truyền thống, để chuyển dữ liệu đó thành "ví này đã hoán đổi 1.500 SOL lấy PUMP trên Jupiter", bạn phải:
- Tìm nạp giao dịch và xác định mọi chương trình mà giao dịch đã tương tác
- Tìm IDL của từng chương trình (giao diện được công bố), nếu có
- Giải mã dữ liệu lệnh (thường là Borsh) dựa trên IDL đó
- Ánh xạ các tài khoản theo vị trí với vai trò của chúng: địa chỉ thứ ba là bên có thẩm quyền hay đích nhận? Chỉ giao diện của chương trình mới biết
- Đệ quy vào các lệnh bên trong (CPI), nơi diễn ra phần lớn hoạt động thực tế, chẳng hạn như việc dịch chuyển token bên trong một giao dịch hoán đổi
- Lặp lại cho mọi chương trình bạn quan tâm và luôn cập nhật các bộ giải mã khi chương trình phát hành phiên bản mới
Bạn phải bỏ ra nhiều tuần làm việc kỹ thuật trước khi trả lời được dù chỉ một câu hỏi. Đây cũng là một trong những trở ngại lớn nhất khi bắt đầu với Solana. Dữ liệu của chuỗi là công khai nhưng không dễ đọc.
Chúng tôi đã xây dựng một lớp giải mã phía máy chủ để bạn không phải tự làm việc đó.
Phản hồi của Parsed Events bao gồm những gì?
Mọi giao dịch trả về đều được giải mã thông qua danh mục IDL của Helius.
Dưới đây là một giao dịch hoán đổi thực tế trên Jupiter, được rút gọn để chỉ giữ lại những điểm chính:
{
"summary": {
"type": "swap",
"description": "GV6UUm… swapped 1500 SOL for 64672839.26195 PUMP via Jupiter",
"parsedData": {
"protocol": "jupiter",
"in_amount": "1500000000000",
"actual_out_amount": "64672839261950",
"input_mint": "So11111111111111111111111111111111111111112",
"output_mint": "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn"
}
},
"instructions": [
{
"programName": "jupiter",
"instructionName": "shared_accounts_route_v2",
"decoded": {
"args": { "in_amount": "1500000000000", "slippage_bps": 2200 },
"accounts": [
{ "name": "user_transfer_authority", "pubkey": "GV6UUm…", "isSigner": true },
{ "name": "source_mint", "pubkey": "So1111…" }
]
}
}
]
}Thay vì đoán địa chỉ thứ ba trong danh sách tài khoản có ý nghĩa gì, bạn chỉ cần đọc "name": "user_transfer_authority".
Các đối số cũng được giải mã khi trả về: "slippage_bps": 2200 thay vì byte thô.
Và summary ở cấp giao dịch có thể được hiển thị nguyên văn cho người dùng.
Mỗi kết quả cũng bao gồm phí và tài khoản trả phí, các giao dịch chuyển SOL gốc, giao dịch chuyển SPL và Token-2022, cũng như lỗi chương trình tùy chỉnh đã giải mã khi có siêu dữ liệu.
Đối với các chương trình không có trong danh mục, lệnh sẽ dùng dữ liệu thô và tài khoản thô làm phương án dự phòng, vì vậy bạn luôn có dữ liệu để xử lý.
Parsed Streams: Gửi trực tiếp các giao dịch đã giải mã đến bạn
Parsed Streams là một dịch vụ WebSocket theo dõi mọi giao dịch đã xác nhận, giải mã chúng rồi gửi đến bạn những giao dịch khớp với bộ lọc ở cấp lệnh ngay từ phía máy chủ.
Bạn không bao giờ phải xử lý luồng dữ liệu thô khổng lồ hay duy trì bộ giải mã.
Một bộ lọc được tạo từ năm trường:
programsinstructionNamesaccounts(theo điều kiện có chứa hoặc theo vai trò có tên)includeCpiincludeFailed
Ví dụ, "mọi lệnh định tuyến Jupiter có tương tác với ví này" sẽ là:
{
"jsonrpc": "2.0",
"id": 1,
"method": "parsedTransactionSubscribe",
"params": [
{
"programs": ["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"],
"instructionNames": ["route", "shared_accounts_route"]
}
]
}Mỗi thông báo chứa toàn bộ giao dịch đã giải mã, cùng với matchedIndexes trỏ đến các lệnh khớp với bộ lọc của bạn.
Làm thế nào để lấy tên lệnh của các chương trình Solana?
Đoán tên lệnh là nguyên nhân phổ biến nhất khiến bộ lọc âm thầm không khớp với dữ liệu nào. Để lấy tên lệnh của các chương trình Solana, hãy gọi describeProgram với địa chỉ của bất kỳ chương trình nào. Phương thức này sẽ trả về các lệnh, sự kiện và vai trò tài khoản mà trình đối sánh dùng để so sánh:
{
"id": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",
"name": "jupiter",
"instructions": ["route", "shared_accounts_route", "exact_out_route"],
"events": ["SwapEvent"],
"roles": ["user_transfer_authority", "destination_token_account"]
}Tra cứu chương trình, thêm các tên vào bộ lọc rồi đăng ký nhận dữ liệu.
Hướng dẫn theo dõi các giao dịch hoán đổi trên Jupiter trình bày toàn bộ quy trình này từ đầu đến cuối.
Parsed Events API: Giải mã giao dịch theo yêu cầu
Đối với nhu cầu tra cứu thay vì dữ liệu trực tiếp, Parsed Events API áp dụng cùng cơ chế giải mã bằng danh mục IDL theo yêu cầu.
Phân tích cú pháp giao dịch nhận các chữ ký và trả về chúng dưới dạng đã giải mã.
Lịch sử giao dịch đã phân tích cú pháp phân trang toàn bộ lịch sử đã giải mã của một địa chỉ và trả về các giao dịch mới nhất trước.
curl -X POST "https://mainnet.helius-rpc.com/v1/parsed-events/transactions?api-key=YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"transactions": ["5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH"]}'Cả hai phương thức cũng khả dụng qua GraphQL, vì vậy bạn chỉ cần chọn các trường đã phân tích cú pháp mà ứng dụng của mình cần.
Parsed Events so với Enhanced Transaction API
Parsed Events là sản phẩm kế nhiệm Enhanced Transactions API.
Trong khi Enhanced Transactions phân loại giao dịch vào một danh sách cố định các loại sự kiện, Parsed Events giải mã từng lệnh thông qua danh mục IDL và sử dụng dữ liệu thô làm phương án dự phòng thay vì UNKNOWN đối với các chương trình không nhận dạng được.
Nếu hiện đang sử dụng Enhanced Transactions API, hướng dẫn di chuyển sẽ ánh xạ mọi endpoint, tham số và trường phản hồi, đồng thời cung cấp một câu lệnh để agent của bạn có thể tự chạy và hoàn tất quá trình di chuyển.
Công cụ phân tích cú pháp nào phù hợp với tôi?
| Bạn muốn | Sử dụng |
| Nhận giao dịch đã giải mã theo thời gian thực, với bộ lọc phía máy chủ | Parsed Streams |
| Giải mã một chữ ký cụ thể hoặc phân trang lịch sử của một địa chỉ | Parsed Events API |
| Luồng dữ liệu thô đầy đủ với khả năng kiểm soát phía máy khách và độ trễ thấp nhất cho các giao dịch đã xử lý | LaserStream |
| Lịch sử giao dịch thô và bổ sung dữ liệu cũ ở quy mô lớn | getTransactionsForAddress |
| Các đối tượng giao dịch chuyển token và SOL gốc dễ đọc cho một địa chỉ ví | getTransfersByAddress |
Hai sản phẩm mới dùng chung một công cụ giải mã, nên giao dịch có cùng định dạng dù được nhận qua luồng hay lệnh gọi REST. Quan trọng hơn, bạn có thể tạo nguyên mẫu dựa trên dữ liệu lịch sử bằng Parsed Events rồi chuyển sang dữ liệu trực tiếp với Parsed Streams mà không cần thay đổi mã phân tích cú pháp.
Bắt đầu
Parsed Streams và Parsed Events API đang ở giai đoạn beta mở và khả dụng trên mọi gói trả phí. Lấy khóa API từ Bảng điều khiển Helius.
Để kết nối, hãy sử dụng các endpoint sau:
Parsed Streams:
wss://fs-beta.helius-rpc.com/?api-key=YOUR_API_KEY
Parsed Events API:
https://mainnet.helius-rpc.com/v1/parsed-events/...?api-key=YOUR_API_KEY
Hướng dẫn
Hướng dẫn bắt đầu nhanh với Parsed Streams giúp bạn nhận thông báo đã giải mã đầu tiên chỉ trong vài phút, còn Hướng dẫn bắt đầu nhanh với Parsed Events cũng giúp bạn làm điều tương tự với chữ ký được phân tích cú pháp đầu tiên.
Các sản phẩm này đang ở giai đoạn beta mở và có thể thay đổi trước khi được phát hành rộng rãi.
Nếu có câu hỏi, vui lòng liên hệ với chúng tôi trên Telegram hoặc Discord.
Bài viết liên quan
Đăng ký nhận tin từ Helius
Luôn cập nhật những thông tin mới nhất về phát triển Solana và nhận thông báo khi chúng tôi đăng bài


