> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Luồng đã phân tích

> Đăng ký nhận các giao dịch Solana đã giải mã qua WebSocket với tính năng lọc phía máy chủ theo chương trình, tài khoản và tên chỉ thị.

## 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

<CardGroup cols={2}>
  <Card title="vs Enhanced WebSockets" icon="bolt">
    [Enhanced WebSockets](/docs/vi/rpc/websocket) 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.
  </Card>

  <Card title="vs LaserStream gRPC" icon="server">
    [LaserStream](/docs/vi/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ủ.
  </Card>

  <Card title="vs Parsed Events" icon="clock-rotate-left">
    [Parsed Events](/docs/vi/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.
  </Card>
</CardGroup>

## 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:

<AccordionGroup>
  <Accordion title="DEXs & AMMs" icon="arrow-right-arrow-left">
    | Chương trình          | Địa chỉ                                        |
    | --------------------- | ---------------------------------------------- |
    | Jupiter Aggregator v6 | `JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4`  |
    | Raydium CLMM          | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` |
    | Raydium CPMM          | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` |
    | Orca Whirlpool        | `whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc`  |
    | Meteora DLMM          | `LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo`  |
    | Meteora Pools         | `Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB` |
    | Lifinity v2           | `2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c` |
  </Accordion>

  <Accordion title="Launchpads" icon="rocket">
    | Chương trình | Địa chỉ                                       |
    | ------------ | --------------------------------------------- |
    | Pump.fun     | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` |
    | PumpSwap     | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` |
  </Accordion>

  <Accordion title="Lending & Perps" icon="building-columns">
    | Chương trình   | Địa chỉ                                       |
    | -------------- | --------------------------------------------- |
    | marginfi v2    | `MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA` |
    | Kamino Lending | `KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD` |
  </Accordion>

  <Accordion title="NFTs & Compression" icon="image">
    | Chương trình              | Địa chỉ                                        |
    | ------------------------- | ---------------------------------------------- |
    | Metaplex Bubblegum (cNFT) | `BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY` |
  </Accordion>
</AccordionGroup>

<Tip>
  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`](/docs/vi/parsed-streams/quickstart#khám-phá) 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.
</Tip>

## 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](/docs/vi/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](https://dashboard.helius.dev).

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](/docs/vi/billing/credits#tín-dụng-truyền-phát-dữ-liệu) để 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](/docs/vi/gatekeeper/overview), 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:

```text theme={"system"}
wss://beta.helius-rpc.com/?api-key=<API_KEY>
```

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

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" href="/docs/vi/parsed-streams/quickstart">
    Kết nối, gửi bộ lọc đầu tiên và đọc một thông báo.
  </Card>

  <Card title="Track Jupiter Swaps" icon="arrow-right-arrow-left" href="/docs/vi/parsed-streams/guides/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.
  </Card>

  <Card title="Track Pump.fun Mints" icon="rocket" href="/docs/vi/parsed-streams/guides/track-pumpfun-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.
  </Card>

  <Card title="Handling Reconnects" icon="rotate" href="/docs/vi/parsed-streams/guides/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ỡ.
  </Card>
</CardGroup>
