programUnsubscribe – Solana

The programUnsubscribe JSON-RPC method allows clients to unsubscribe from notifications regarding accounts owned by a specified program.

The programUnsubscribe RPC Solana method stops notifications for program-owned accounts by using a subscription ID.

It is crucial for Web3 applications that handle dynamic data streams and need efficient resource management.

Supported Networks

  • Mainnet

  • Devnet

Parameters

Required Parameter

  • number (required): The subscription ID of the program-owned account to unsubscribe.

Result

The response returns a boolean value indicating whether the unsubscribe operation was successful.

Result Format

  • bool: true if the unsubscribe was successful; otherwise, false.

Request Example

API Endpoints

wss://go.getblock.io/<ACCESS-TOKEN>/

JSON-RPC Request

wscat -c "wss://go.getblock.io/<ACCESS-TOKEN>/" --exec '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "programUnsubscribe",
  "params": [0]
}'

Response

A successful request returns a boolean value.

Example Response

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

In this response:

  • result: true indicates the unsubscribe operation was successful.

Error Handling

Common programUnsubscribe error scenarios:

  • Invalid subscription ID: The provided ID does not correspond to an active subscription.

  • Network issues: Problems with the Solana JSON-RPC API endpoints.

Example Error Response

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

Use Cases

The Solana programUnsubscribe method is essential for:

  • Managing network resources by terminating unused subscriptions.

  • Optimizing dApp performance.

  • Reducing network bandwidth consumption.

Code programUnsubscribe Example – Web3 Integration

const WebSocket = require('ws');

const url = "wss://go.getblock.io/<ACCESS-TOKEN>/";
const payload = {
  jsonrpc: "2.0",
  id: 1,
  method: "programUnsubscribe",
  params: [0]
};

const ws = new WebSocket(url);

ws.on('open', () => {
  ws.send(JSON.stringify(payload));
});

ws.on('message', (data) => {
  console.log("Unsubscribe Response:", JSON.parse(data));
});

ws.on('error', (error) => {
  console.error("WebSocket error:", error.message);
});

ws.on('close', () => {
  console.log("WebSocket connection closed");
});

Integration with Web3

By integrating Web3 programUnsubscribe into Solana's Core API, developers can efficiently manage subscription lifecycles, improve dApp performance, and optimize network resource utilization.

Last updated