JSON RPC API -2
Subscription Websocket#
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 is "finalized".
accountSubscribe#
Subscribe to an account to receive notifications when the lamports or data for a given account public key changes
Parameters:#
<string> - account Pubkey, as base-58 encoded string
(optional) <object> - Configuration object containing the following optional fields:
(optional) commitment: <string> - Commitment
encoding: <string> - encoding for Account data, either "base58" (slow), "base64", "base64+zstd" or "jsonParsed". "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>.
Results:#
<number> - Subscription id (needed to unsubscribe)
Example:#
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "accountSubscribe",
"params": [
"CM78CPUeXjn8o3yroDHxUtKsZZgoy4GPkPPXfouKNH12",
{
"encoding": "base64",
"commitment": "finalized"
}
]
}
{
"jsonrpc": "2.0",
"id": 1,
"method": "accountSubscribe",
"params": [
"CM78CPUeXjn8o3yroDHxUtKsZZgoy4GPkPPXfouKNH12",
{
"encoding": "jsonParsed"
}
]
}
Result:
{ "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
}
},
"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
}
},
"subscription": 23784
}
}
accountUnsubscribe
Unsubscribe from account change notifications
Parameters:#
<number> - id of account Subscription to cancel
Results:#
<bool> - unsubscribe success message
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "accountUnsubscribe", "params": [0] }
Result:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
blockSubscribe - Unstable, disabled by default
This subscription is unstable and only available if the validator was started with the --rpc-pubsub-enable-block-subscription flag. The format of this subscription may change in the future
Subscribe to receive notification anytime a new block is Confirmed or Finalized. Parameters:#
filter: <string>|<object> - filter criteria for the logs to receive results by account type; currently supported:
"all" - include all transactions in block
{ "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.
(optional) <object> - Configuration object containing the following optional fields:
(optional) commitment: <string> - Commitment
(optional) encoding: <string> - encoding for Account data, either "base58" (slow), "base64", "base64+zstd" or "jsonParsed". "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 base64 encoding, detectable when the data field is type <string>. Default is "base64".
(optional) transactionDetails: <string> - level of transaction detail to return, either "full", "signatures", or "none". If parameter not provided, the default detail level is "full".
(optional) showRewards: bool - whether to populate the rewards array. If parameter not provided, the default includes rewards.
Results:#
integer - subscription id (needed to unsubscribe)
Example:#
Request:
{ "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"
}
]
}
Result:
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:#
The notification will be an object with the following fields:
-slot: - 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> - subscription id to cancel
Results:#
<bool> - unsubscribe success message
Example:#
Request:
{ "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> - filter criteria for the logs to receive results by account type; currently supported:
"all" - subscribe to all transactions except for simple vote transactions
"allWithVotes" - subscribe to all transactions including simple vote transactions
{ "mentions": [ <string> ] } - subscribe to all transactions that mention the provided Pubkey (as base-58 encoded string)
(optional) <object> - Configuration object containing the following optional fields:
(optional) commitment: <string> - Commitment
Results:#
<integer> - Subscription id (needed to unsubscribe)
Example:#
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "logsSubscribe",
"params": [
{
"mentions": [ "11111111111111111111111111111111" ]
},
{
"commitment": "finalized"
}
]
}
{
"jsonrpc": "2.0",
"id": 1,
"method": "logsSubscribe",
"params": [ "all" ]
}
Result: { "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 definitions
logs: <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": [
"BPF program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri success"
]
}
},
"subscription": 24040
}
}
logsUnsubscribe
Unsubscribe from transaction logging
Parameters:#
<integer> - id of subscription to cancel
Results:#
<bool> - unsubscribe success message
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "logsUnsubscribe", "params": [0] }
Result:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
programSubscribe
Subscribe to a program to receive notifications when the lamports or data for a given account owned by the program changes
Parameters:#
<string> - program_id Pubkey, as base-58 encoded string
(optional) <object> - Configuration object containing the following optional fields:
(optional) commitment: <string> - Commitment
encoding: <string> - encoding for Account data, either "base58" (slow), "base64", "base64+zstd" or "jsonParsed". "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 base64 encoding, detectable when the data field is type <string>.
(optional) filters: <array> - filter results using various filter objects; account must meet all filter criteria to be included in results
Results:#
<integer> - Subscription id (needed to unsubscribe)
Example:#
Request:
{
"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
}
]
}
]
}
Result:
{ "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
}
}
},
"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
}
}
},
"subscription": 24040
}
}
programUnsubscribe
Unsubscribe from program-owned account change notifications
Parameters:#
<integer> - id of account Subscription to cancel
Results:#
<bool> - unsubscribe success message
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "programUnsubscribe", "params": [0] }
Result:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
signatureSubscribe
Subscribe to a transaction signature to receive notification when the transaction is confirmed On signatureNotification, the subscription is automatically cancelled
Parameters:#
<string> - Transaction Signature, as base-58 encoded string
(optional) <object> - Configuration object containing the following field:
(optional) commitment: <string> - Commitment
Results:#
integer - subscription id (needed to unsubscribe)
Example:#
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "signatureSubscribe",
"params": [
"2EBVM6cB8vAAD93Ktr6Vd8p67XPbQzCJX47MpReuiCXJAtcjaxpvWpcg9Ege1Nr5Tk3a2GFrByT7WPBjdsTycY9b"
]
}
{
"jsonrpc": "2.0",
"id": 1,
"method": "signatureSubscribe",
"params": [
"2EBVM6cB8vAAD93Ktr6Vd8p67XPbQzCJX47MpReuiCXJAtcjaxpvWpcg9Ege1Nr5Tk3a2GFrByT7WPBjdsTycY9b",
{
"commitment": "finalized"
}
]
}
Result:
{ "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:#
<integer> - subscription id to cancel
Results:#
<bool> - unsubscribe success message
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "signatureUnsubscribe", "params": [0] }
Result:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
slotSubscribe
Subscribe to receive notification anytime a slot is processed by the validator
Parameters:#
None
Results:#
integer - subscription id (needed to unsubscribe)
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "slotSubscribe" }
Result:
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:#
The notification will be an object with the following fields:
parent: <u64> - The parent slot
root: <u64> - The current root slot
slot: <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> - subscription id to cancel
Results:#
<bool> - unsubscribe success message
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "slotUnsubscribe", "params": [0] }
Result:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
slotsUpdatesSubscribe - Unstable
This subscription is unstable; the format of this subscription may change in the future and it may not always be supported
Subscribe to receive a notification from the validator on a variety of updates on every slot
Parameters:#
None
Results:#
integer - subscription id (needed to unsubscribe)
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "slotsUpdatesSubscribe" }
Result: { "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:#
The notification will be an object with the following fields:
parent: <u64> - The parent slot
slot: <u64> - The newly updated slot
timestamp: <i64> - The Unix timestamp of the update
type: <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:#
<integer> - subscription id to cancel
Results:#
<bool> - unsubscribe success message
Example:#
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "slotsUpdatesUnsubscribe",
"params": [0]
}
Result:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
rootSubscribe
Subscribe to receive notification anytime a new root is set by the validator.
Parameters:#
None
Results:#
integer - subscription id (needed to unsubscribe)
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "rootSubscribe" }
Result:
{ "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:#
<integer> - subscription id to cancel
Results:#
<bool> - unsubscribe success message
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "rootUnsubscribe", "params": [0] }
Result:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
voteSubscribe - Unstable, disabled by default
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
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.
Parameters:#
None
Results:#
integer - subscription id (needed to unsubscribe)
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "voteSubscribe" }
Result:
{ "jsonrpc": "2.0", "result": 0, "id": 1 }
Notification Format:#
The notification will be an object with the following fields:
hash: <string> - The vote hash
slots: <array> - The slots covered by the vote, as an array of u64 integers
timestamp: <i64|null> - The timestamp of the vote
signature: <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> - subscription id to cancel
Results:#
<bool> - unsubscribe success message
Example:#
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "voteUnsubscribe", "params": [0] }
Response:
{ "jsonrpc": "2.0", "result": true, "id": 1 }
Last updated