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