programUnsubscribe
The Solana programUnsubscribe method cancels a program subscription created by programSubscribe, stopping further program account change notifications.
Usage Notes
- Must be called via a WebSocket endpoint; HTTP is not supported.
- After unsubscribing, you cannot re-subscribe using the same subscription ID. If you need a new subscription, you must call programSubscribe again.
- If the WebSocket connection is dropped, subscriptions are automatically cancelled, so you must re-establish subscriptions upon reconnection.
1. Request
Parameters
The program unsubscribe request accepts the following parameters.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer or string | required | A unique identifier for the request. Used by the client to match requests with responses. |
| jsonrpc | string | required | The JSON-RPC protocol version. Always set to "2.0". |
| method | string | required | The name of the method to execute. Set to "programUnsubscribe" here. |
| params | array | required | An array containing the subscription ID of the subscription to cancel. |
Example
{
"jsonrpc": "2.0",
"id": 1,
"method": "programUnsubscribe",
"params": [24040]
}
2. Response
Success Response
Upon successful cancellation of the subscription, true is returned.
{
"jsonrpc": "2.0",
"result": true,
"id": 1
}
Error Response
If the subscription cancellation fails, an error is returned.
{
"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:
-
Close the connection: Enter
Ctrl+Cin the terminal window to close the WebSocket connection, which automatically cancels all subscriptions. -
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
}