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

> Suscríbete para recibir una notificación cuando la transacción con la firma indicada alcance el nivel de compromiso especificado.

Esta es una suscripción a una sola notificación. El servidor la cancela automáticamente una vez que el RPC envía la notificación `signatureNotification`.

## Puntos de conexión

Los WebSockets están disponibles en mainnet y devnet con las siguientes URL:

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

<Note>Los WebSockets tienen un temporizador de inactividad de 10 minutos. Te recomendamos encarecidamente implementar comprobaciones de estado y enviar pings cada minuto para mantener activa la conexión WebSocket.</Note>

## Autorizaciones

<ParamField query="api-key" type="string" required>
  Tu clave de API de Helius. Puedes obtener una gratis en el [panel](https://dashboard.helius.dev/api-keys).
</ParamField>

## Cuerpo

<ParamField body="params" type="array" required>
  <Expandable title="properties" defaultOpen>
    <ParamField body="signature" type="string" required>
      Firma de la transacción, como una cadena codificada en base 58.

      La firma de la transacción debe ser la primera firma de la transacción (consulta el identificador de la transacción para obtener más detalles).
    </ParamField>

    <ParamField body="config" type="object">
      Objeto de configuración que contiene los siguientes campos:

      <ParamField body="commitment" type="string">
        El nivel de compromiso de la suscripción. Puede ser `finalized`, `confirmed` o `processed`.
      </ParamField>

      <ParamField body="enableReceivedNotification" type="boolean">
        Indica si se debe enviar una notificación cuando se reciba la firma de la transacción.
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

## Respuesta

<ResponseField name="result" type="integer">
  ID de la suscripción (necesario para cancelar la suscripción)
</ResponseField>

## Formato de la notificación

La notificación será un objeto JSON RpcResponse cuyo valor contendrá un objeto con lo siguiente:

* `slot: <u64>` - El slot correspondiente.
* `value: <object|string>` - un valor de notificación RpcSignatureResult que produce uno de los siguientes resultados:
  * cuando `enableReceivedNotification` es `true` y se recibe la firma: la cadena literal `"receivedSignature"`, o
  * cuando se procesa la firma: `err: <object|null>`:
    * `null` si la transacción se procesó correctamente con el nivel de compromiso especificado, o
    * un TransactionError, si la transacción falló

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