RPC Websocket API
After connecting to the RPC PubSub websocket at ws://<ADDRESS>/
:
- Submit subscription requests to the websocket using the methods below
- Multiple subscriptions may be active at once
- Many subscriptions take the optional
commitment
parameter, defining how finalized a change should be to trigger a notification. For subscriptions, if commitment is unspecified, the default value isfinalized
.
RPC PubSub WebSocket Endpoint
Default port: 8900 e.g. ws://localhost:8900, http://192.168.1.88:8900
Methods
The following methods are supported in the RPC Websocket API:
accountSubscribe
Subscribe to an account to receive notifications when the lamports or data for a given account public key changes
Parameters:
string
required
object
optional
Configuration object containing the following fields:
commitment string
optional
encoding string
optional
Encoding format for Account data
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 thedata
field is typestring
.
Result:
<number>
- Subscription id (needed to unsubscribe)
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "accountSubscribe",
"params": [
"CM78CPUeXjn8o3yroDHxUtKsZZgoy4GPkPPXfouKNH12",
{
"encoding": "jsonParsed",
"commitment": "finalized"
}
]
}
Response:
{ "jsonrpc": "2.0", "result": 23784, "id": 1 }
Notification Format:
The notification format is the same as seen in the getAccountInfo RPC HTTP method.
Base58 encoding:
{
"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:
{
"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
}
}
accountUnsubscribe
Unsubscribe from account change notifications
Parameters:
number
required
Result:
<bool>
- unsubscribe success message
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "accountUnsubscribe",
"params": [0]
}
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
blockSubscribe
Subscribe to receive notification anytime a new block is Confirmed or Finalized.
This subscription is unstable and only available if the validator was started
with the --rpc-pubsub-enable-block-subscription
flag.
NOTE: The format of this subscription may change in the future
Parameters:
filter string | object
optional
filter criteria for the logs to receive results by account type; currently supported:
string
all
- include all transactions in block object
A JSON object with the following field:
mentionsAccountOrProgram: <string>
- return only transactions that mention the provided public key (as base-58 encoded string). If no mentions in a given block, then no notification will be sent.
object
optional
Configuration object containing the following fields:
commitment string
optional
transactionDetails string
optional
showRewards bool
optionalDefault: true
encoding string
optionalDefault: base64
Encoding format for Account data
Values: base58
base64
base64+zstd
jsonParsed
Details
base58
is slowjsonParsed
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 tobase64
encoding, detectable when thedata
field is typestring
.
Result:
integer
- subscription id (needed to unsubscribe)
Code sample:
{
"jsonrpc": "2.0",
"id": "1",
"method": "blockSubscribe",
"params": ["all"]
}
{
"jsonrpc": "2.0",
"id": "1",
"method": "blockSubscribe",
"params": [
{
"mentionsAccountOrProgram": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op"
},
{
"commitment": "confirmed",
"encoding": "base64",
"showRewards": true,
"transactionDetails": "full"
}
]
}
Response:
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:
The notification will be an object with the following fields:
slot: <u64>
- The corresponding slot.err: <object|null>
- Error if something went wrong publishing the notification otherwise null.block: <object|null>
- A block object as seen in the getBlock RPC HTTP method.
{
"jsonrpc": "2.0",
"method": "blockNotification",
"params": {
"result": {
"context": {
"slot": 112301554
},
"value": {
"slot": 112301554,
"block": {
"previousBlockhash": "GJp125YAN4ufCSUvZJVdCyWQJ7RPWMmwxoyUQySydZA",
"blockhash": "6ojMHjctdqfB55JDpEpqfHnP96fiaHEcvzEQ2NNcxzHP",
"parentSlot": 112301553,
"transactions": [
{
"transaction": [
"OpltwoUvWxYi1P2U8vbIdE/aPntjYo5Aa0VQ2JJyeJE2g9Vvxk8dDGgFMruYfDu8/IfUWb0REppTe7IpAuuLRgIBAAkWnj4KHRpEWWW7gvO1c0BHy06wZi2g7/DLqpEtkRsThAXIdBbhXCLvltw50ZnjDx2hzw74NVn49kmpYj2VZHQJoeJoYJqaKcvuxCi/2i4yywedcVNDWkM84Iuw+cEn9/ROCrXY4qBFI9dveEERQ1c4kdU46xjxj9Vi+QXkb2Kx45QFVkG4Y7HHsoS6WNUiw2m4ffnMNnOVdF9tJht7oeuEfDMuUEaO7l9JeUxppCvrGk3CP45saO51gkwVYEgKzhpKjCx3rgsYxNR81fY4hnUQXSbbc2Y55FkwgRBpVvQK7/+clR4Gjhd3L4y+OtPl7QF93Akg1LaU9wRMs5nvfDFlggqI9PqJl+IvVWrNRdBbPS8LIIhcwbRTkSbqlJQWxYg3Bo2CTVbw7rt1ZubuHWWp0mD/UJpLXGm2JprWTePNULzHu67sfqaWF99LwmwjTyYEkqkRt1T0Je5VzHgJs0N5jY4iIU9K3lMqvrKOIn/2zEMZ+ol2gdgjshx+sphIyhw65F3J/Dbzk04LLkK+CULmN571Y+hFlXF2ke0BIuUG6AUF+4214Cu7FXnqo3rkxEHDZAk0lRrAJ8X/Z+iwuwI5cgbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpDLAp8axcEkaQkLDKRoWxqp8XLNZSKial7Rk+ELAVVKWoWLRXRZ+OIggu0OzMExvVLE5VHqy71FNHq4gGitkiKYNFWSLIE4qGfdFLZXy/6hwS+wq9ewjikCpd//C9BcCL7Wl0iQdUslxNVCBZHnCoPYih9JXvGefOb9WWnjGy14sG9j70+RSVx6BlkFELWwFvIlWR/tHn3EhHAuL0inS2pwX7ZQTAU6gDVaoqbR2EiJ47cKoPycBNvHLoKxoY9AZaBjPl6q8SKQJSFyFd9n44opAgI6zMTjYF/8Ok4VpXEESp3QaoUyTI9sOJ6oFP6f4dwnvQelgXS+AEfAsHsKXxGAIUDQENAgMEBQAGBwgIDg8IBJCER3QXl1AVDBADCQoOAAQLERITDAjb7ugh3gOuTy==",
"base64"
],
"meta": {
"err": null,
"status": {
"Ok": null
},
"fee": 5000,
"preBalances": [
1758510880, 2067120, 1566000, 1461600, 2039280, 2039280,
1900080, 1865280, 0, 3680844220, 2039280
],
"postBalances": [
1758505880, 2067120, 1566000, 1461600, 2039280, 2039280,
1900080, 1865280, 0, 3680844220, 2039280
],
"innerInstructions": [
{
"index": 0,
"instructions": [
{
"programIdIndex": 13,
"accounts": [1, 15, 3, 4, 2, 14],
"data": "21TeLgZXNbtHXVBzCaiRmH"
},
{
"programIdIndex": 14,
"accounts": [3, 4, 1],
"data": "6qfC8ic7Aq99"
},
{
"programIdIndex": 13,
"accounts": [1, 15, 3, 5, 2, 14],
"data": "21TeLgZXNbsn4QEpaSEr3q"
},
{
"programIdIndex": 14,
"accounts": [3, 5, 1],
"data": "6LC7BYyxhFRh"
}
]
},
{
"index": 1,
"instructions": [
{
"programIdIndex": 14,
"accounts": [4, 3, 0],
"data": "7aUiLHFjSVdZ"
},
{
"programIdIndex": 19,
"accounts": [17, 18, 16, 9, 11, 12, 14],
"data": "8kvZyjATKQWYxaKR1qD53V"
},
{
"programIdIndex": 14,
"accounts": [9, 11, 18],
"data": "6qfC8ic7Aq99"
}
]
}
],
"logMessages": [
"Program QMNeHCGYnLVDn1icRAfQZpjPLBNkfGbSKRB83G5d8KB invoke [1]",
"Program QMWoBmAyJLAsA1Lh9ugMTw2gciTihncciphzdNzdZYV invoke [2]"
],
"preTokenBalances": [
{
"accountIndex": 4,
"mint": "iouQcQBAiEXe6cKLS85zmZxUqaCqBdeHFpqKoSz615u",
"uiTokenAmount": {
"uiAmount": null,
"decimals": 6,
"amount": "0",
"uiAmountString": "0"
},
"owner": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op",
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"accountIndex": 5,
"mint": "iouQcQBAiEXe6cKLS85zmZxUqaCqBdeHFpqKoSz615u",
"uiTokenAmount": {
"uiAmount": 11513.0679,
"decimals": 6,
"amount": "11513067900",
"uiAmountString": "11513.0679"
},
"owner": "rXhAofQCT7NN9TUqigyEAUzV1uLL4boeD8CRkNBSkYk",
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"accountIndex": 10,
"mint": "Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",
"uiTokenAmount": {
"uiAmount": null,
"decimals": 6,
"amount": "0",
"uiAmountString": "0"
},
"owner": "CL9wkGFT3SZRRNa9dgaovuRV7jrVVigBUZ6DjcgySsCU",
"programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
},
{
"accountIndex": 11,
"mint": "Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",
"uiTokenAmount": {
"uiAmount": 15138.514093,
"decimals": 6,
"amount": "15138514093",
"uiAmountString": "15138.514093"
},
"owner": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op",
"programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
}
],
"postTokenBalances": [
{
"accountIndex": 4,
"mint": "iouQcQBAiEXe6cKLS85zmZxUqaCqBdeHFpqKoSz615u",
"uiTokenAmount": {
"uiAmount": null,
"decimals": 6,
"amount": "0",
"uiAmountString": "0"
},
"owner": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op",
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"accountIndex": 5,
"mint": "iouQcQBAiEXe6cKLS85zmZxUqaCqBdeHFpqKoSz615u",
"uiTokenAmount": {
"uiAmount": 11513.103028,
"decimals": 6,
"amount": "11513103028",
"uiAmountString": "11513.103028"
},
"owner": "rXhAofQCT7NN9TUqigyEAUzV1uLL4boeD8CRkNBSkYk",
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"accountIndex": 10,
"mint": "Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",
"uiTokenAmount": {
"uiAmount": null,
"decimals": 6,
"amount": "0",
"uiAmountString": "0"
},
"owner": "CL9wkGFT3SZRRNa9dgaovuRV7jrVVigBUZ6DjcgySsCU",
"programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
},
{
"accountIndex": 11,
"mint": "Saber2gLauYim4Mvftnrasomsv6NvAuncvMEZwcLpD1",
"uiTokenAmount": {
"uiAmount": 15489.767829,
"decimals": 6,
"amount": "15489767829",
"uiAmountString": "15489.767829"
},
"owner": "BeiHVPRE8XeX3Y2xVNrSsTpAScH94nYySBVQ4HqgN9at",
"programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
}
],
"rewards": []
}
}
],
"blockTime": 1639926816,
"blockHeight": 101210751
},
"err": null
}
},
"subscription": 14
}
}
blockUnsubscribe
Unsubscribe from block notifications
Parameters:
integer
required
Result:
<bool>
- unsubscribe success message
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "blockUnsubscribe",
"params": [0]
}
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
logsSubscribe
Subscribe to transaction logging
Parameters:
filter string | object
required
string
A string with one of the following values:
all
- subscribe to all transactions except for simple vote transactionsallWithVotes
- subscribe to all transactions, including simple vote transactions
object
An object with the following field:
mentions: [ <string> ]
- array containing a single Pubkey (as base-58 encoded string); if present, subscribe to only transactions mentioning this address
Currently, the mentions
field
only supports one
Pubkey string per method call. Listing additional addresses will result in an
error.
object
optional
Configuration object containing the following fields:
commitment string
optional
Result:
<integer>
- Subscription id (needed to unsubscribe)
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "logsSubscribe",
"params": [
{
"mentions": [ "11111111111111111111111111111111" ]
},
{
"commitment": "finalized"
}
]
}
{
"jsonrpc": "2.0",
"id": 1,
"method": "logsSubscribe",
"params": [ "all" ]
}
Response:
{ "jsonrpc": "2.0", "result": 24040, "id": 1 }
Notification Format:
The notification will be an RpcResponse JSON object with value equal to:
signature: <string>
- The transaction signature base58 encoded.err: <object|null>
- Error if transaction failed, null if transaction succeeded. TransactionError definitionslogs: <array|null>
- Array of log messages the transaction instructions output during execution, null if simulation failed before the transaction was able to execute (for example due to an invalid blockhash or signature verification failure)
Example:
{
"jsonrpc": "2.0",
"method": "logsNotification",
"params": {
"result": {
"context": {
"slot": 5208469
},
"value": {
"signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
"err": null,
"logs": [
"SBF program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri success"
]
}
},
"subscription": 24040
}
}
logsUnsubscribe
Unsubscribe from transaction logging
Parameters:
integer
required
Result:
<bool>
- unsubscribe success message
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "logsUnsubscribe",
"params": [0]
}
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
programSubscribe
Subscribe to a program to receive notifications when the lamports or data for an account owned by the given program changes
Parameters:
string
required
Pubkey of the program_id
, as base-58 encoded string
object
optional
Configuration object containing the following fields:
commitment string
optional
filters array
optional
filter results using various filter objects
The resultant account must meet ALL filter criteria to be included in the returned results
encoding string
optional
Encoding format for Account data
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 tobase64
encoding, detectable when thedata
field is typestring
.
Result:
<integer>
- Subscription id (needed to unsubscribe)
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "programSubscribe",
"params": [
"11111111111111111111111111111111",
{
"encoding": "base64",
"commitment": "finalized"
}
]
}
{
"jsonrpc": "2.0",
"id": 1,
"method": "programSubscribe",
"params": [
"11111111111111111111111111111111",
{
"encoding": "jsonParsed"
}
]
}
{
"jsonrpc": "2.0",
"id": 1,
"method": "programSubscribe",
"params": [
"11111111111111111111111111111111",
{
"encoding": "base64",
"filters": [
{
"dataSize": 80
}
]
}
]
}
Response:
{ "jsonrpc": "2.0", "result": 24040, "id": 1 }
Notification format
The notification format is a single program account object as seen in the getProgramAccounts RPC HTTP method.
Base58 encoding:
{
"jsonrpc": "2.0",
"method": "programNotification",
"params": {
"result": {
"context": {
"slot": 5208469
},
"value": {
"pubkey": "H4vnBqifaSACnKa7acsxstsY1iV1bvJNxsCY7enrd1hq",
"account": {
"data": [
"11116bv5nS2h3y12kD1yUKeMZvGcKLSjQgX6BeV7u1FrjeJcKfsHPXHRDEHrBesJhZyqnnq9qJeUuF7WHxiuLuL5twc38w2TXNLxnDbjmuR",
"base58"
],
"executable": false,
"lamports": 33594,
"owner": "11111111111111111111111111111111",
"rentEpoch": 636,
"space": 80
}
}
},
"subscription": 24040
}
}
Parsed-JSON encoding:
{
"jsonrpc": "2.0",
"method": "programNotification",
"params": {
"result": {
"context": {
"slot": 5208469
},
"value": {
"pubkey": "H4vnBqifaSACnKa7acsxstsY1iV1bvJNxsCY7enrd1hq",
"account": {
"data": {
"program": "nonce",
"parsed": {
"type": "initialized",
"info": {
"authority": "Bbqg1M4YVVfbhEzwA9SpC9FhsaG83YMTYoR4a8oTDLX",
"blockhash": "LUaQTmM7WbMRiATdMMHaRGakPtCkc2GHtH57STKXs6k",
"feeCalculator": {
"lamportsPerSignature": 5000
}
}
}
},
"executable": false,
"lamports": 33594,
"owner": "11111111111111111111111111111111",
"rentEpoch": 636,
"space": 80
}
}
},
"subscription": 24040
}
}
programUnsubscribe
Unsubscribe from program-owned account change notifications
Parameters:
number
required
Result:
<bool>
- unsubscribe success message
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "programUnsubscribe",
"params": [0]
}
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
signatureSubscribe
Subscribe to a transaction signature to receive notification when a given transaction is committed. On signatureNotification
- the subscription is automatically cancelled.
The signature must be a txid, the first signature of a transaction.
Parameters:
string
required
object
optional
Configuration object containing the following fields:
commitment string
optional
Result:
<integer>
- subscription id (needed to unsubscribe)
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "signatureSubscribe",
"params": [
"2EBVM6cB8vAAD93Ktr6Vd8p67XPbQzCJX47MpReuiCXJAtcjaxpvWpcg9Ege1Nr5Tk3a2GFrByT7WPBjdsTycY9b",
{
"commitment": "finalized"
}
]
}
Response:
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:
The notification will be an RpcResponse JSON object with value containing an object with:
err: <object|null>
- Error if transaction failed, null if transaction succeeded. TransactionError definitions
Example:
{
"jsonrpc": "2.0",
"method": "signatureNotification",
"params": {
"result": {
"context": {
"slot": 5207624
},
"value": {
"err": null
}
},
"subscription": 24006
}
}
signatureUnsubscribe
Unsubscribe from signature confirmation notification
Parameters:
number
required
Result:
<bool>
- unsubscribe success message
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "signatureUnsubscribe",
"params": [0]
}
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
slotSubscribe
Subscribe to receive notification anytime a slot is processed by the validator
Parameters:
None
Result:
<integer>
- Subscription id (needed to unsubscribe)
Code sample:
{ "jsonrpc": "2.0", "id": 1, "method": "slotSubscribe" }
Response:
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:
The notification will be an object with the following fields:
parent: <u64>
- The parent slotroot: <u64>
- The current root slotslot: <u64>
- The newly set slot value
Example:
{
"jsonrpc": "2.0",
"method": "slotNotification",
"params": {
"result": {
"parent": 75,
"root": 44,
"slot": 76
},
"subscription": 0
}
}
slotUnsubscribe
Unsubscribe from slot notifications
Parameters:
integer
required
Result:
<bool>
- unsubscribe success message
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "slotUnsubscribe",
"params": [0]
}
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
slotsUpdatesSubscribe
Subscribe to receive a notification from the validator on a variety of updates on every slot
This subscription is unstable
NOTE: the format of this subscription may change in the future and it may not always be supported
Parameters:
None
Result:
<integer>
- Subscription id (needed to unsubscribe)
Code sample:
{ "jsonrpc": "2.0", "id": 1, "method": "slotsUpdatesSubscribe" }
Response:
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:
The notification will be an object with the following fields:
parent: <u64>
- The parent slotslot: <u64>
- The newly updated slottimestamp: <i64>
- The Unix timestamp of the updatetype: <string>
- The update type, one of:- "firstShredReceived"
- "completed"
- "createdBank"
- "frozen"
- "dead"
- "optimisticConfirmation"
- "root"
{
"jsonrpc": "2.0",
"method": "slotsUpdatesNotification",
"params": {
"result": {
"parent": 75,
"slot": 76,
"timestamp": 1625081266243,
"type": "optimisticConfirmation"
},
"subscription": 0
}
}
slotsUpdatesUnsubscribe
Unsubscribe from slot-update notifications
Parameters:
number
required
Result:
<bool>
- unsubscribe success message
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "slotsUpdatesUnsubscribe",
"params": [0]
}
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
rootSubscribe
Subscribe to receive notification anytime a new root is set by the validator.
Parameters:
None
Result:
integer
- subscription id (needed to unsubscribe)
Code sample:
{ "jsonrpc": "2.0", "id": 1, "method": "rootSubscribe" }
Response:
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:
The result is the latest root slot number.
{
"jsonrpc": "2.0",
"method": "rootNotification",
"params": {
"result": 42,
"subscription": 0
}
}
rootUnsubscribe
Unsubscribe from root notifications
Parameters:
number
required
Result:
<bool>
- unsubscribe success message
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "rootUnsubscribe",
"params": [0]
}
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
voteSubscribe
Subscribe to receive notification anytime a new vote is observed in gossip. These votes are pre-consensus therefore there is no guarantee these votes will enter the ledger.
This subscription is unstable and only available if the validator was started
with the --rpc-pubsub-enable-vote-subscription
flag. The format of this
subscription may change in the future
Parameters:
None
Result:
<integer>
- subscription id (needed to unsubscribe)
Code sample:
{ "jsonrpc": "2.0", "id": 1, "method": "voteSubscribe" }
Response:
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:
The notification will be an object with the following fields:
hash: <string>
- The vote hashslots: <array>
- The slots covered by the vote, as an array of u64 integerstimestamp: <i64|null>
- The timestamp of the votesignature: <string>
- The signature of the transaction that contained this vote
{
"jsonrpc": "2.0",
"method": "voteNotification",
"params": {
"result": {
"hash": "8Rshv2oMkPu5E4opXTRyuyBeZBqQ4S477VG26wUTFxUM",
"slots": [1, 2],
"timestamp": null
},
"subscription": 0
}
}
voteUnsubscribe
Unsubscribe from vote notifications
Parameters:
integer
required
Result:
<bool>
- unsubscribe success message
Code sample:
{
"jsonrpc": "2.0",
"id": 1,
"method": "voteUnsubscribe",
"params": [0]
}
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }