solana/docs/src/api/websocket/_accountSubscribe.mdx

161 lines
3.1 KiB
Plaintext

import {
DocBlock,
DocSideBySide,
CodeParams,
Parameter,
Field,
Values,
CodeSnippets,
} from "../../../components/CodeDocBlock";
<DocBlock>
## accountSubscribe
Subscribe to an account to receive notifications when the lamports or data for a given account public key changes
<DocSideBySide>
<CodeParams>
### Parameters:
<Parameter type={"string"} required={true}>
Account Pubkey, as base-58 encoded string
</Parameter>
<Parameter type={"object"} optional={true}>
Configuration object containing the following fields:
<Field
name="commitment"
type="string"
optional={true}
href="/api/http#configuring-state-commitment"
></Field>
<Field name="encoding" type="string" optional={true} href="/api/http#parsed-responses">
Encoding format for Account data
<Values values={["base58", "base64", "base64+zstd", "jsonParsed"]} />
<details>
- `base58` is slow.
- `jsonParsed` encoding attempts to use program-specific state parsers to return more
human-readable and explicit account state data
- If `jsonParsed` is requested but a parser cannot be found, the field falls back to
binary encoding, detectable when the `data`field is type`string`.
</details>
</Field>
</Parameter>
### Result:
`<number>` - Subscription id \(needed to unsubscribe\)
</CodeParams>
<CodeSnippets>
### Code sample:
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "accountSubscribe",
"params": [
"CM78CPUeXjn8o3yroDHxUtKsZZgoy4GPkPPXfouKNH12",
{
"encoding": "jsonParsed",
"commitment": "finalized"
}
]
}
```
### Response:
```json
{ "jsonrpc": "2.0", "result": 23784, "id": 1 }
```
</CodeSnippets>
</DocSideBySide>
#### Notification Format:
The notification format is the same as seen in the [getAccountInfo](#getAccountInfo) RPC HTTP method.
Base58 encoding:
```json
{
"jsonrpc": "2.0",
"method": "accountNotification",
"params": {
"result": {
"context": {
"slot": 5199307
},
"value": {
"data": [
"11116bv5nS2h3y12kD1yUKeMZvGcKLSjQgX6BeV7u1FrjeJcKfsHPXHRDEHrBesJhZyqnnq9qJeUuF7WHxiuLuL5twc38w2TXNLxnDbjmuR",
"base58"
],
"executable": false,
"lamports": 33594,
"owner": "11111111111111111111111111111111",
"rentEpoch": 635,
"space": 80
}
},
"subscription": 23784
}
}
```
Parsed-JSON encoding:
```json
{
"jsonrpc": "2.0",
"method": "accountNotification",
"params": {
"result": {
"context": {
"slot": 5199307
},
"value": {
"data": {
"program": "nonce",
"parsed": {
"type": "initialized",
"info": {
"authority": "Bbqg1M4YVVfbhEzwA9SpC9FhsaG83YMTYoR4a8oTDLX",
"blockhash": "LUaQTmM7WbMRiATdMMHaRGakPtCkc2GHtH57STKXs6k",
"feeCalculator": {
"lamportsPerSignature": 5000
}
}
}
},
"executable": false,
"lamports": 33594,
"owner": "11111111111111111111111111111111",
"rentEpoch": 635,
"space": 80
}
},
"subscription": 23784
}
}
```
</DocBlock>