The accountSubscribe method opens a stream that emits a notification any time the lamports or data of a specified account change. Pair it with accountUnsubscribe to stop receiving notifications.
-
pubkey:string- Account pubkey, as a base-58 encoded string. -
config(optional):object- Configuration object containing:commitment:string- The commitment level to use. One ofprocessed,confirmed,finalized. Defaults tofinalized.encoding:string- Account data encoding. One ofbase58,base64,base64+zstd,jsonParsed. Defaults tobase58.
// initiate websocket stream first
wscat -c wss://solana-mainnet.g.alchemy.com/v2/<-- ALCHEMY APP API KEY -->
// then call subscription
{"jsonrpc":"2.0","id":1,"method":"accountSubscribe","params":["CM78CPUeXjn8o3yroDHxUtKsZZgoy4GPkPPXfouKNH12",{"encoding":"jsonParsed","commitment":"finalized"}]}// subscribe response
{"jsonrpc":"2.0","result":23784,"id":1}
// notification
{
"jsonrpc": "2.0",
"method": "accountNotification",
"params": {
"result": {
"context": { "slot": 5199307 },
"value": {
"data": ["11116bv5nS2h3y12kD1yUKeMZvGcKLSjQgX6BeV7u1FrjeJcKfsHRTPuR3oZ1EioKtYGiYxpxMG5vpbZLsbcBYBEmZZcMKaSoGx9JZeAuWf", "base58"],
"executable": false,
"lamports": 33594,
"owner": "11111111111111111111111111111111",
"rentEpoch": 635,
"space": 80
}
},
"subscription": 23784
}
}Use accountUnsubscribe with the subscription id returned by accountSubscribe to cancel the stream.
subscription_id:number- The subscription id to cancel.
{"jsonrpc":"2.0","id":1,"method":"accountUnsubscribe","params":[subscription_id]}{"jsonrpc":"2.0","result":true,"id":1}When using @solana/web3.js, call connection.removeAccountChangeListener(subscriptionId) instead of sending the raw JSON-RPC request.