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

# logsSubscribe

> logsSubscribe truyền trực tiếp nhật ký giao dịch Solana theo thời gian thực qua WebSocket — đăng ký nhận tất cả giao dịch hoặc lọc theo một chương trình hay tài khoản bằng mentions.

## Điểm cuối

WebSocket khả dụng trên mainnet và devnet qua các URL sau:

* **Mainnet** `wss://mainnet.helius-rpc.com/?api-key=<api-key>`
* **Devnet** `wss://devnet.helius-rpc.com/?api-key=<api-key>`

<Note>WebSocket có bộ hẹn giờ ngắt kết nối sau 10 phút không hoạt động; bạn nên triển khai quy trình kiểm tra trạng thái và gửi ping mỗi phút để duy trì kết nối WebSocket.</Note>

## Xác thực

<ParamField query="api-key" type="string" required>
  Khóa API Helius của bạn. Bạn có thể nhận khóa miễn phí trong [bảng điều khiển](https://dashboard.helius.dev/api-keys).
</ParamField>

## Nội dung yêu cầu

<ParamField body="params" type="array" required>
  <Expandable title="properties" defaultOpen>
    <ParamField body="filter" type="string | object" required>
      Tiêu chí lọc nhật ký để nhận kết quả theo loại tài khoản. Hiện hỗ trợ các loại bộ lọc sau:

      * `all` - đăng ký nhận tất cả giao dịch, ngoại trừ các giao dịch bỏ phiếu đơn giản
      * `allWithVotes` - đăng ký nhận tất cả giao dịch, bao gồm cả các giao dịch bỏ phiếu đơn giản
      * Một đối tượng JSON có trường sau:
        * `mentions: [ <string> ]` - mảng chứa một Pubkey duy nhất (dưới dạng chuỗi mã hóa base-58); nếu có, chỉ đăng ký nhận các giao dịch đề cập đến địa chỉ này

      Lưu ý: Trường `mentions` hiện chỉ hỗ trợ một chuỗi Pubkey cho mỗi lần gọi phương thức. Việc liệt kê thêm địa chỉ sẽ gây ra lỗi.
    </ParamField>

    <ParamField body="config" type="object">
      Đối tượng cấu hình chứa các trường sau:

      <ParamField body="commitment" type="string">
        Mức cam kết cho lượt đăng ký. Có thể là `finalized`, `confirmed` hoặc `processed`.
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

## Phản hồi

<ResponseField name="result" type="integer">
  ID đăng ký (cần thiết để hủy đăng ký)
</ResponseField>

## Định dạng thông báo

Thông báo sẽ là một đối tượng JSON RpcResponse có giá trị bằng:

* `signature: <string>` - Chữ ký giao dịch được mã hóa bằng base58.
* `err: <object|null>` - Lỗi nếu giao dịch thất bại, null nếu giao dịch thành công. Xem các định nghĩa TransactionError.
* `logs: <array[string]>` - Mảng thông báo nhật ký do các lệnh giao dịch xuất ra trong quá trình thực thi.

<RequestExample>
  ```json Request theme={"system"}
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "logsSubscribe",
    "params": [
      {
        "mentions": ["11111111111111111111111111111111"]
      },
      {
        "commitment": "finalized"
      }
    ]
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={"system"}
  {
    "jsonrpc": "2.0",
    "result": 24040,
    "id": 1
  }
  ```

  ```json Notification theme={"system"}
  {
    "jsonrpc": "2.0",
    "method": "logsNotification",
    "params": {
      "result": {
        "context": {
          "slot": 5208469
        },
        "value": {
          "signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
          "err": null,
          "logs": [
            "SBF program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri success"
          ]
        }
      },
      "subscription": 24040
    }
  }
  ```
</ResponseExample>
