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

# signatureSubscribe

> Đăng ký nhận thông báo khi giao dịch có chữ ký đã cho đạt đến mức cam kết được chỉ định.

Đây là gói đăng ký chỉ nhận một thông báo. Máy chủ sẽ tự động hủy gói đăng ký sau khi RPC gửi thông báo `signatureNotification`.

## Điểm cuối

WebSocket có sẵn trên mainnet và devnet với 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ờ chờ 10 phút khi không hoạt động; bạn nên triển khai kiểm tra tình trạng 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

<ParamField body="params" type="array" required>
  <Expandable title="properties" defaultOpen>
    <ParamField body="signature" type="string" required>
      Chữ ký giao dịch dưới dạng chuỗi được mã hóa base-58.

      Chữ ký giao dịch phải là chữ ký đầu tiên của giao dịch (xem ID giao dịch để biết thêm chi tiết).
    </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 gói đăng ký. Có thể là `finalized`, `confirmed` hoặc `processed`.
      </ParamField>

      <ParamField body="enableReceivedNotification" type="boolean">
        Có gửi thông báo khi nhận được chữ ký giao dịch hay không.
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

## Phản hồi

<ResponseField name="result" type="integer">
  ID gói đă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 với giá trị chứa một đối tượng gồm:

* `slot: <u64>` - Slot tương ứng.
* `value: <object|string>` - giá trị thông báo RpcSignatureResult, cho một trong các kết quả sau:
  * khi `enableReceivedNotification` là `true` và chữ ký đã được nhận: chuỗi ký tự `"receivedSignature"`, hoặc
  * khi chữ ký đã được xử lý: `err: <object|null>`:
    * `null` nếu giao dịch được xử lý thành công ở mức cam kết được chỉ định, hoặc
    * một TransactionError nếu giao dịch thất bại

<RequestExample>
  ```json Request theme={"system"}
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "signatureSubscribe",
    "params": [
      "2EBVM6cB8vAAD93Ktr6Vd8p67XPbQzCJX47MpReuiCXJAtcjaxpvWpcg9Ege1Nr5Tk3a2GFrByT7WPBjdsTycY9b",
      {
        "commitment": "finalized",
        "enableReceivedNotification": false
      }
    ]
  }
  ```
</RequestExample>

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

  ```json Notification (Processed Transaction) theme={"system"}
  {
    "jsonrpc": "2.0",
    "method": "signatureNotification",
    "params": {
      "result": {
        "context": {
          "slot": 5207624
        },
        "value": {
          "err": null
        }
      },
      "subscription": 24006
    }
  }
  ```

  ```json Notification (Received Transaction) theme={"system"}
  {
    "jsonrpc": "2.0",
    "method": "signatureNotification",
    "params": {
      "result": {
        "context": {
          "slot": 5207624
        },
        "value": "receivedSignature"
      },
      "subscription": 24006
    }
  }
  ```
</ResponseExample>
