programUnsubscribe

The programUnsubscribe method cancels a program subscription created by programSubscribe, stopping further program account change notifications.


1. Request

Parameters

The program unsubscribe request accepts the following parameters.

ParameterTypeRequiredDescription
idinteger or stringrequiredA unique identifier for the request, used by the client to match requests with responses.
jsonrpcstringrequiredThe JSON-RPC protocol version. Always set to "2.0".
methodstringrequiredThe name of the method to invoke. Set to "programUnsubscribe".
paramsarrayrequiredAn array containing the subscription ID to cancel.

Example

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "programUnsubscribe",
  "params": [24040]
}

2. Response

Success Response

Returns true when the subscription is successfully cancelled.

{
  "jsonrpc": "2.0",
  "result": true,
  "id": 1
}

Error Response

Returns an error if the unsubscribe request fails.

{
  "jsonrpc": "2.0",
  "error": {
    "code": -32000,
    "message": "Invalid subscription ID"
  },
  "id": 1
}

3. How to Use

Connect to WebSocket Channel

wscat -c wss://api.mainnet-beta.solana.com

Subscribe to Program (First)

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "programSubscribe",
  "params": [
    "11111111111111111111111111111111",
    {
      "encoding": "base64",
      "filters": [{ "dataSize": 80 }]
    }
  ]
}

Receive Subscription ID

{
  "jsonrpc": "2.0",
  "result": 24040,
  "id": 1
}

Unsubscribe

There are two ways to cancel a subscription:

  1. Close the connection: Press CTRL+C in the terminal to close the WebSocket connection. All active subscriptions are automatically cancelled.

  2. Cancel a specific subscription: Use programUnsubscribe to cancel a specific subscription while keeping the connection open.

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "programUnsubscribe",
  "params": [24040]
}

Confirm Unsubscribe

{
  "jsonrpc": "2.0",
  "result": true,
  "id": 2
}