Skip to main content

programUnsubscribe

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

📘 Usage Notes

  • This method must be called via a WebSocket endpoint. HTTP is not supported.
  • Once unsubscribed, the subscription ID cannot be reused. Call programSubscribe again to create a new subscription.
  • If the WebSocket connection is dropped, subscriptions are automatically cancelled. Re-subscribe after reconnecting.

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
}