diff --git a/content/api-specs/chains/solana.json b/content/api-specs/chains/solana.json new file mode 100644 index 000000000..e22af32be --- /dev/null +++ b/content/api-specs/chains/solana.json @@ -0,0 +1,4360 @@ +{ + "$schema": "https://meta.open-rpc.org/", + "openrpc": "1.2.4", + "info": { + "title": "Alchemy Solana JSON-RPC Specification", + "description": "A specification of the standard JSON-RPC methods for Solana.", + "version": "0.0.0" + }, + "servers": [ + { + "url": "https://solana-mainnet.g.alchemy.com/v2", + "name": "Solana Mainnet" + }, + { + "url": "https://solana-devnet.g.alchemy.com/v2", + "name": "Solana Devnet" + } + ], + "methods": [ + { + "name": "getAccountInfo", + "description": "Returns all information associated with the account of provided Pubkey.", + "params": [ + { + "name": "Pubkey", + "required": true, + "description": "Pubkey of the account to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object for additional settings.", + "schema": { + "title": "GetAccountInfo Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "encoding": { + "description": "Encoding format for account data.", + "title": "Data Encoding", + "type": "string", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + }, + "dataSlice": { + "title": "Data Slice", + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Number of bytes to return." + }, + "offset": { + "type": "integer", + "description": "Byte offset from which to start reading." + } + } + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "examples": [ + { + "name": "getAccountInfo example", + "params": [ + { + "name": "Pubkey", + "value": "GwsPP9HHhCvEQeu3HTFzsVL6DEtnnYw4ALEtA3fMBC9Q" + } + ] + } + ], + "result": { + "name": "Account information", + "description": "Returns details of the account including balance, ownership, and other relevant data.", + "schema": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + } + }, + { + "name": "getBalance", + "description": "Returns the lamport balance of the account of the provided Pubkey.", + "params": [ + { + "name": "Pubkey", + "required": true, + "description": "Pubkey of the account to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetBalance Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "examples": [ + { + "name": "getBalance example", + "params": [ + { + "name": "Pubkey", + "value": "GwsPP9HHhCvEQeu3HTFzsVL6DEtnnYw4ALEtA3fMBC9Q" + } + ] + } + ], + "result": { + "name": "Lamport balance", + "description": "Returns the balance in lamports of the account queried.", + "schema": { + "title": "Lamport Balance", + "type": "integer", + "description": "The balance in lamports of the account." + } + } + }, + { + "name": "getBlock", + "description": "Returns identity and transaction information about a confirmed block in the ledger.", + "params": [ + { + "name": "slot", + "required": true, + "description": "Slot number as a u64 integer.", + "schema": { + "type": "integer" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetBlock Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + }, + "encoding": { + "type": "string", + "description": "Encoding format for transactions.", + "enum": [ + "json", + "jsonParsed", + "base58", + "base64" + ], + "default": "json" + }, + "transactionDetails": { + "type": "string", + "description": "Level of transaction detail to return.", + "enum": [ + "full", + "accounts", + "signatures", + "none" + ], + "default": "full" + }, + "maxSupportedTransactionVersion": { + "type": "integer", + "description": "Max transaction version to return." + }, + "rewards": { + "type": "boolean", + "description": "Include rewards array if true.", + "default": true + } + } + } + } + ], + "examples": [ + { + "name": "getBlock example", + "params": [ + { + "name": "slot", + "value": 237158054 + }, + { + "name": "Configuration", + "value": { + "encoding": "json", + "transactionDetails": "none" + } + } + ] + } + ], + "result": { + "name": "Block information", + "description": "Returns block information or null if the block is not confirmed.", + "schema": { + "title": "Block Information", + "type": "object", + "properties": { + "blockhash": { + "type": "string", + "description": "Blockhash of this block." + }, + "previousBlockhash": { + "type": "string", + "description": "Blockhash of the parent block." + }, + "parentSlot": { + "type": "integer", + "description": "Slot index of the parent block." + }, + "transactions": { + "type": "array", + "description": "Array of transaction objects.", + "items": { + "title": "Transaction", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "The slot this transaction was processed in." + }, + "transaction": { + "type": "object", + "description": "The transaction details, either in JSON format or encoded binary data, depending on the encoding parameter.", + "properties": { + "signatures": { + "type": "array", + "description": "An array of signatures applied to the transaction.", + "items": { + "type": "string" + } + }, + "message": { + "type": "object", + "properties": { + "accountKeys": { + "type": "array", + "description": "An array of account keys used by the transaction.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "header": { + "type": "object", + "properties": { + "numRequiredSignatures": { + "type": "integer", + "description": "The number of signatures required for the transaction." + }, + "numReadonlySignedAccounts": { + "type": "integer", + "description": "Number of read-only signed accounts." + }, + "numReadonlyUnsignedAccounts": { + "type": "integer", + "description": "Number of read-only unsigned accounts." + } + } + }, + "instructions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "accounts": { + "type": "array", + "description": "List of account indices to be passed to the program.", + "items": { + "type": "integer" + } + }, + "data": { + "type": "string", + "description": "The program input data encoded as a base-58 string." + }, + "programIdIndex": { + "type": "integer", + "description": "Index into the message.accountKeys array indicating the program account." + } + } + } + }, + "recentBlockhash": { + "type": "string", + "description": "The recent blockhash used by the transaction." + } + } + } + } + }, + "blockTime": { + "type": "integer", + "nullable": true, + "description": "Estimated production time as a Unix timestamp. Null if not available." + }, + "meta": { + "type": "object", + "nullable": true, + "description": "Transaction status metadata.", + "properties": { + "err": { + "type": "object", + "nullable": true, + "description": "Error if the transaction failed, null if it succeeded." + }, + "fee": { + "type": "integer", + "description": "Fee charged for this transaction." + }, + "preBalances": { + "type": "array", + "description": "Array of u64 account balances before the transaction.", + "items": { + "type": "integer" + } + }, + "postBalances": { + "type": "array", + "description": "Array of u64 account balances after the transaction.", + "items": { + "type": "integer" + } + }, + "innerInstructions": { + "type": "array", + "nullable": true, + "description": "List of inner instructions or null if not enabled.", + "items": { + "title": "Inner Instruction", + "type": "object", + "properties": { + "index": { + "type": "integer", + "description": "Index of the instruction in the transaction." + }, + "instructions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "programId": { + "title": "Pubkey", + "type": "string", + "description": "Program ID invoked by this instruction." + }, + "accounts": { + "type": "array", + "description": "Account addresses involved in this instruction.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "data": { + "type": "string", + "description": "The program input data encoded as a base-58 string." + } + } + } + } + } + } + }, + "preTokenBalances": { + "type": "array", + "nullable": true, + "description": "Token balances before the transaction, if available.", + "items": { + "title": "Token Balance", + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The raw balance without decimals, a string representation of u64." + }, + "decimals": { + "type": "integer", + "description": "Number of base-10 digits to the right of the decimal place." + }, + "uiAmount": { + "type": "number", + "nullable": true, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + "uiAmountString": { + "type": "string", + "description": "The balance as a string, using mint-prescribed decimals." + } + } + } + }, + "postTokenBalances": { + "type": "array", + "nullable": true, + "description": "Token balances after the transaction, if available.", + "items": { + "title": "Token Balance", + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The raw balance without decimals, a string representation of u64." + }, + "decimals": { + "type": "integer", + "description": "Number of base-10 digits to the right of the decimal place." + }, + "uiAmount": { + "type": "number", + "nullable": true, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + "uiAmountString": { + "type": "string", + "description": "The balance as a string, using mint-prescribed decimals." + } + } + } + }, + "logMessages": { + "type": "array", + "nullable": true, + "description": "Array of string log messages or null if not enabled.", + "items": { + "type": "string" + } + }, + "rewards": { + "type": "array", + "nullable": true, + "description": "Transaction-level rewards.", + "items": { + "title": "Reward", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "The public key of the rewarded account." + }, + "lamports": { + "type": "integer", + "description": "The amount of reward in lamports." + }, + "postBalance": { + "type": "integer", + "description": "The balance of the account after the reward was applied." + }, + "rewardType": { + "type": "string", + "description": "The type of reward.", + "enum": [ + "fee", + "rent", + "voting", + "staking" + ] + }, + "commission": { + "type": "integer", + "nullable": true, + "description": "The vote account commission when the reward was credited, if applicable." + } + } + } + }, + "loadedAddresses": { + "type": "object", + "nullable": true, + "description": "Transaction addresses loaded from address lookup tables." + }, + "returnData": { + "type": "object", + "nullable": true, + "description": "Return data generated by an instruction in the transaction." + }, + "computeUnitsConsumed": { + "type": "integer", + "nullable": true, + "description": "Number of compute units consumed by the transaction." + } + } + }, + "version": { + "type": "string", + "nullable": true, + "description": "Transaction version. Undefined if not set." + } + } + } + }, + "signatures": { + "type": "array", + "description": "Array of transaction signatures.", + "items": { + "type": "string" + } + }, + "rewards": { + "type": "array", + "description": "Block-level rewards.", + "items": { + "title": "Reward", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "The public key of the rewarded account." + }, + "lamports": { + "type": "integer", + "description": "The amount of reward in lamports." + }, + "postBalance": { + "type": "integer", + "description": "The balance of the account after the reward was applied." + }, + "rewardType": { + "type": "string", + "description": "The type of reward.", + "enum": [ + "fee", + "rent", + "voting", + "staking" + ] + }, + "commission": { + "type": "integer", + "nullable": true, + "description": "The vote account commission when the reward was credited, if applicable." + } + } + } + }, + "blockTime": { + "type": "integer", + "description": "Estimated production time as Unix timestamp." + }, + "blockHeight": { + "type": "integer", + "description": "Number of blocks beneath this block." + } + } + } + } + }, + { + "name": "getBlockCommitment", + "description": "Returns the commitment for a particular block.", + "params": [ + { + "name": "block", + "required": true, + "description": "Block number, identified by Slot.", + "schema": { + "type": "integer" + } + } + ], + "examples": [ + { + "name": "getBlockCommitment example", + "params": [ + { + "name": "block", + "value": 237158054 + } + ] + } + ], + "result": { + "name": "Block commitment", + "description": "Returns the commitment and total active stake for the block.", + "schema": { + "title": "GetBlockCommitment Result", + "type": "object", + "properties": { + "commitment": { + "type": "array", + "nullable": true, + "description": "Cluster stake in lamports voted on the block.", + "items": { + "type": "integer" + } + }, + "totalStake": { + "type": "integer", + "description": "Total active stake in lamports." + } + } + } + } + }, + { + "name": "getBlockHeight", + "description": "Returns the current block height of the node.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional request parameters.", + "schema": { + "title": "GetBlockHeight Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Block height", + "description": "The current block height, as a u64 integer.", + "schema": { + "title": "Block Height", + "type": "integer", + "description": "The current block height." + } + } + }, + { + "name": "getBlockProduction", + "description": "Returns recent block production information from the current or previous epoch.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetBlockProduction Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "identity": { + "title": "Pubkey", + "type": "string", + "description": "Validator identity to filter results." + }, + "range": { + "title": "Block Range", + "type": "object", + "properties": { + "firstSlot": { + "type": "integer", + "description": "First slot to return block production for." + }, + "lastSlot": { + "type": "integer", + "description": "Last slot to return block production for." + } + } + } + } + } + } + ], + "examples": [ + { + "name": "getBlockProduction example", + "params": [] + } + ], + "result": { + "name": "Block production information", + "description": "Returns block production information for the specified range.", + "schema": { + "title": "Block Production Information", + "type": "object", + "properties": { + "byIdentity": { + "type": "object", + "description": "Validator identities with leader slots and blocks produced.", + "additionalProperties": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "range": { + "title": "Block Range", + "type": "object", + "properties": { + "firstSlot": { + "type": "integer", + "description": "First slot to return block production for." + }, + "lastSlot": { + "type": "integer", + "description": "Last slot to return block production for." + } + } + } + } + } + } + }, + { + "name": "getBlocks", + "description": "Returns a list of confirmed blocks between two slots.", + "params": [ + { + "name": "start_slot", + "required": true, + "description": "The starting slot.", + "schema": { + "type": "integer" + } + }, + { + "name": "end_slot", + "required": false, + "description": "The ending slot.", + "schema": { + "type": "integer" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetBlocks Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + } + } + } + } + ], + "examples": [ + { + "name": "getBlocks (full example)", + "params": [ + { + "name": "start_slot", + "value": 237158000 + }, + { + "name": "end_slot", + "value": 237158050 + } + ] + } + ], + "result": { + "name": "List of confirmed blocks", + "description": "Returns an array of u64 integers listing confirmed blocks.", + "schema": { + "title": "Slot List", + "type": "array", + "description": "List of confirmed blocks between slots.", + "items": { + "type": "integer" + } + } + } + }, + { + "name": "getBlocksWithLimit", + "description": "Returns a list of confirmed blocks starting at the given slot.", + "params": [ + { + "name": "start_slot", + "required": true, + "description": "The starting slot.", + "schema": { + "type": "integer" + } + }, + { + "name": "limit", + "required": true, + "description": "The limit for the number of blocks to return.", + "schema": { + "type": "integer" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetBlocks Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + } + } + } + } + ], + "examples": [ + { + "name": "getBlocksWithLimit (with configuration)", + "params": [ + { + "name": "start_slot", + "value": 237158000 + }, + { + "name": "limit", + "value": 5 + } + ] + } + ], + "result": { + "name": "List of confirmed blocks", + "description": "Returns an array of u64 integers listing confirmed blocks starting at the start_slot.", + "schema": { + "title": "Slot List", + "type": "array", + "description": "List of confirmed blocks between slots.", + "items": { + "type": "integer" + } + } + } + }, + { + "name": "getBlockTime", + "description": "Returns the estimated production time of a block.", + "params": [ + { + "name": "block", + "required": true, + "description": "Block number, identified by Slot.", + "schema": { + "title": "GetBlockTime Parameters", + "type": "object", + "properties": { + "block": { + "type": "integer", + "description": "Block number identified by Slot." + } + } + } + } + ], + "examples": [ + { + "name": "getBlockTime example", + "params": [ + { + "name": "block", + "value": 237158054 + } + ] + } + ], + "result": { + "name": "Estimated production time", + "description": "The estimated production time of the block as a Unix timestamp.", + "schema": { + "title": "Estimated Production Time", + "type": "integer", + "description": "Estimated production time as Unix timestamp." + } + } + }, + { + "name": "getClusterNodes", + "description": "Returns information about all the nodes participating in the cluster.", + "params": [], + "result": { + "name": "List of nodes", + "description": "Returns an array of JSON objects, each containing information about a node in the cluster.", + "schema": { + "title": "Cluster Nodes List", + "type": "array", + "description": "Information about all nodes participating in the cluster.", + "items": { + "title": "Cluster Node Information", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "Node public key." + }, + "gossip": { + "type": "string", + "nullable": true, + "description": "Gossip network address." + }, + "tpu": { + "type": "string", + "nullable": true, + "description": "TPU network address." + }, + "rpc": { + "type": "string", + "nullable": true, + "description": "JSON RPC network address." + }, + "version": { + "type": "string", + "nullable": true, + "description": "Software version of the node." + }, + "featureSet": { + "type": "integer", + "nullable": true, + "description": "Unique identifier of the node's feature set." + }, + "shredVersion": { + "type": "integer", + "nullable": true, + "description": "Shred version used by the node." + } + } + } + } + } + }, + { + "name": "getEpochInfo", + "description": "Returns information about the current epoch.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetEpochInfo Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Epoch information", + "description": "Returns an object containing information about the current epoch.", + "schema": { + "title": "Epoch Information", + "type": "object", + "properties": { + "absoluteSlot": { + "type": "integer", + "description": "Current slot." + }, + "blockHeight": { + "type": "integer", + "description": "Current block height." + }, + "epoch": { + "type": "integer", + "description": "Current epoch." + }, + "slotIndex": { + "type": "integer", + "description": "Slot index relative to the start of the epoch." + }, + "slotsInEpoch": { + "type": "integer", + "description": "Number of slots in this epoch." + }, + "transactionCount": { + "type": "integer", + "nullable": true, + "description": "Total transactions processed without error since genesis." + } + } + } + } + }, + { + "name": "getEpochSchedule", + "description": "Returns the epoch schedule information from the cluster's genesis config.", + "params": [], + "result": { + "name": "Epoch schedule information", + "description": "Returns an object containing information about the epoch schedule.", + "schema": { + "title": "Epoch Schedule", + "type": "object", + "properties": { + "slotsPerEpoch": { + "type": "integer", + "description": "Max number of slots in each epoch." + }, + "leaderScheduleSlotOffset": { + "type": "integer", + "description": "Slots before epoch to calculate leader schedule." + }, + "warmup": { + "type": "boolean", + "description": "Whether epochs start short and grow." + }, + "firstNormalEpoch": { + "type": "integer", + "description": "First normal-length epoch." + }, + "firstNormalSlot": { + "type": "integer", + "description": "First normal slot." + } + } + } + } + }, + { + "name": "getFeeForMessage", + "description": "Get the fee the network will charge for a particular Message.", + "params": [ + { + "name": "Message", + "required": true, + "description": "Base-64 encoded Message.", + "schema": { + "title": "FeeForMessage Parameters", + "type": "object", + "properties": { + "Message": { + "type": "string", + "description": "Base-64 encoded Message." + } + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "FeeForMessage Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Fee for the message", + "description": "The fee corresponding to the message at the specified blockhash.", + "schema": { + "title": "Fee For Message Result", + "type": "integer", + "nullable": true, + "description": "Fee corresponding to the message at the specified blockhash." + } + } + }, + { + "name": "getFirstAvailableBlock", + "description": "Returns the slot of the lowest confirmed block that has not been purged from the ledger.", + "params": [], + "result": { + "name": "Slot", + "description": "The slot number of the lowest confirmed block that is still available in the ledger.", + "schema": { + "title": "First Available Block Slot", + "type": "integer", + "description": "Slot of the lowest confirmed block still available in the ledger." + } + } + }, + { + "name": "getGenesisHash", + "description": "Returns the genesis hash.", + "params": [], + "result": { + "name": "Genesis hash", + "description": "The genesis hash as a base-58 encoded string.", + "schema": { + "title": "Genesis Hash", + "type": "string", + "description": "The genesis hash as a base-58 encoded string." + } + } + }, + { + "name": "getHealth", + "description": "Returns the current health of the node.", + "params": [], + "result": { + "name": "Health status", + "description": "If the node is healthy, the result is \"ok\".", + "schema": { + "title": "Health Status", + "oneOf": [ + { + "type": "string", + "description": "Result is 'ok' if healthy." + }, + { + "type": "object", + "description": "An error object if unhealthy." + } + ], + "description": "Result is 'ok' if healthy, or an error object if unhealthy." + } + } + }, + { + "name": "getHighestSnapshotSlot", + "description": "Returns the highest slot information that the node has snapshots for.", + "params": [], + "result": { + "name": "Snapshot slot information", + "description": "Returns a JSON object with the highest full snapshot slot.", + "schema": { + "title": "Highest Snapshot Slot", + "type": "object", + "properties": { + "full": { + "type": "integer", + "description": "Highest full snapshot slot." + }, + "incremental": { + "type": "integer", + "nullable": true, + "description": "Highest incremental snapshot slot based on the full snapshot." + } + } + } + } + }, + { + "name": "getIdentity", + "description": "Returns the identity pubkey for the current node.", + "params": [], + "result": { + "name": "Identity pubkey", + "description": "The identity pubkey of the current node.", + "schema": { + "title": "Node Identity", + "type": "object", + "properties": { + "identity": { + "title": "Pubkey", + "type": "string", + "description": "Identity pubkey of the current node." + } + } + } + } + }, + { + "name": "getInflationGovernor", + "description": "Returns the current inflation governor.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetEpochInfo Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Inflation governor details", + "description": "Returns a JSON object containing the inflation governor parameters.", + "schema": { + "title": "Inflation Governor", + "type": "object", + "properties": { + "initial": { + "type": "number", + "description": "Initial inflation percentage from time 0." + }, + "terminal": { + "type": "number", + "description": "Terminal inflation percentage." + }, + "taper": { + "type": "number", + "description": "Rate per year at which inflation is lowered." + }, + "foundation": { + "type": "number", + "description": "Percentage of total inflation allocated to the foundation." + }, + "foundationTerm": { + "type": "number", + "description": "Duration of foundation pool inflation in years." + } + } + } + } + }, + { + "name": "getInflationRate", + "description": "Returns the specific inflation values for the current epoch.", + "params": [], + "result": { + "name": "Inflation rate details", + "description": "Returns a JSON object containing the inflation values for the current epoch.", + "schema": { + "title": "Inflation Rate", + "type": "object", + "properties": { + "total": { + "type": "number", + "description": "Total inflation rate." + }, + "validator": { + "type": "number", + "description": "Inflation rate allocated to validators." + }, + "foundation": { + "type": "number", + "description": "Inflation rate allocated to the foundation." + }, + "epoch": { + "type": "integer", + "description": "Epoch for which these values are valid." + } + } + } + } + }, + { + "name": "getInflationReward", + "description": "Returns the inflation or staking reward for a list of addresses for a specified epoch.", + "params": [ + { + "name": "Addresses", + "required": true, + "description": "An array of addresses to query.", + "schema": { + "title": "Inflation Reward Parameters", + "type": "object", + "properties": { + "Addresses": { + "type": "array", + "description": "Array of addresses to query.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "epoch": { + "type": "integer", + "description": "Epoch for which the reward occurs." + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Inflation reward details", + "description": "Returns a JSON array with reward details for each address.", + "schema": { + "type": "array", + "items": { + "title": "Inflation Reward", + "type": "object", + "nullable": true, + "properties": { + "epoch": { + "type": "integer", + "description": "Epoch for which the reward occurred." + }, + "effectiveSlot": { + "type": "integer", + "description": "Slot in which rewards are effective." + }, + "amount": { + "type": "integer", + "description": "Reward amount in lamports." + }, + "postBalance": { + "type": "integer", + "description": "Post balance of the account in lamports." + }, + "commission": { + "type": "integer", + "nullable": true, + "description": "Vote account commission when reward was credited." + } + } + } + } + } + }, + { + "name": "getLargestAccounts", + "description": "Returns the 20 largest accounts, by lamport balance.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "LargestAccounts Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "filter": { + "type": "string", + "description": "Filter results by account type.", + "enum": [ + "circulating", + "nonCirculating" + ] + } + } + } + } + ], + "result": { + "name": "Largest accounts", + "description": "An array of objects containing the address of the account and its lamport balance.", + "schema": { + "title": "Largest Accounts List", + "type": "array", + "description": "List of the 20 largest accounts.", + "items": { + "title": "Largest Account", + "type": "object", + "properties": { + "address": { + "title": "Pubkey", + "type": "string", + "description": "Address of the account." + }, + "lamports": { + "type": "integer", + "description": "Number of lamports in the account." + } + } + } + } + } + }, + { + "name": "getLatestBlockhash", + "description": "Returns the latest blockhash.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "A configuration object with optional fields for specifying commitment and minimum context slot.", + "schema": { + "title": "GetLatestBlockhash Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Latest Blockhash", + "description": "RpcResponse object with blockhash information.", + "schema": { + "title": "Latest Blockhash", + "type": "object", + "properties": { + "blockhash": { + "type": "string", + "description": "Blockhash as a base-58 encoded string." + }, + "lastValidBlockHeight": { + "type": "integer", + "description": "Last block height at which the blockhash is valid." + } + } + } + } + }, + { + "name": "getLeaderSchedule", + "description": "Returns the leader schedule for a given epoch.", + "params": [ + { + "name": "Slot", + "required": false, + "description": "The slot to fetch the leader schedule for. If unspecified, returns the leader schedule for the current epoch.", + "schema": { + "type": "integer", + "format": "uint64" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "type": "object", + "properties": { + "commitment": { + "type": "string", + "description": "The commitment level to use for the request." + }, + "identity": { + "type": "string", + "description": "Only return results for this validator identity (base-58 encoded)." + } + } + } + } + ], + "examples": [ + { + "name": "getLeaderSchedule example", + "params": [ + { + "name": "Slot", + "value": null + }, + { + "name": "Configuration", + "value": { + "commitment": "processed", + "identity": "dv2eQHeP4RFrJZ6UeiZWoc3XTtmtZCUKxxCApCDcRNV" + } + } + ] + } + ] + }, + { + "name": "getMaxRetransmitSlot", + "description": "Get the max slot seen from the retransmit stage.", + "params": [], + "result": { + "name": "Slot number", + "description": "The maximum slot number seen from the retransmit stage.", + "schema": { + "title": "Max Slot Result", + "type": "integer", + "description": "The maximum slot number observed." + } + } + }, + { + "name": "getMaxShredInsertSlot", + "description": "Get the max slot seen from after shred insert.", + "params": [], + "result": { + "name": "Slot number", + "description": "The maximum slot number seen after shred insert.", + "schema": { + "title": "Max Slot Result", + "type": "integer", + "description": "The maximum slot number observed." + } + } + }, + { + "name": "getMinimumBalanceForRentExemption", + "description": "Returns the minimum balance required to make an account rent exempt.", + "params": [ + { + "name": "Account data length", + "required": true, + "description": "The account's data length in bytes.", + "schema": { + "title": "MinimumBalanceForRentExemption Parameters", + "type": "object", + "properties": { + "dataLength": { + "type": "integer", + "description": "Account's data length in bytes." + } + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "MinimumBalanceForRentExemption Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + } + } + } + } + ], + "result": { + "name": "Minimum balance for rent exemption", + "description": "The minimum number of lamports required in the account to remain rent-free.", + "schema": { + "title": "Minimum Balance For Rent Exemption", + "type": "integer", + "description": "Minimum lamports required to make an account rent exempt." + } + } + }, + { + "name": "getMultipleAccounts", + "description": "Returns the account information for a list of Pubkeys.", + "params": [ + { + "name": "Pubkeys", + "required": true, + "description": "An array of Pubkeys to query.", + "schema": { + "type": "array", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetMultipleAccounts Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "dataSlice": { + "title": "Data Slice", + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Number of bytes to return." + }, + "offset": { + "type": "integer", + "description": "Byte offset from which to start reading." + } + } + }, + "encoding": { + "default": "base64", + "title": "Data Encoding", + "type": "string", + "description": "Encoding format for data.", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + } + } + } + } + ], + "examples": [ + { + "name": "getMultipleAccounts example", + "params": [ + { + "name": "Pubkeys", + "value": [ + "GwsPP9HHhCvEQeu3HTFzsVL6DEtnnYw4ALEtA3fMBC9Q", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" + ] + } + ] + } + ], + "result": { + "name": "Account information", + "description": "An array of JSON objects containing account details.", + "schema": { + "type": "array", + "items": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + } + } + }, + { + "name": "getPriorityFeeEstimate", + "description": "Calculate optimal priority fee recommendations for Solana transactions based on real-time network conditions.", + "params": [ + { + "name": "Configuration", + "required": true, + "description": "Single params object. Top-level keys are transaction, accountKeys, and options (nested). Put priorityLevel, recommended, etc. inside options.", + "schema": { + "title": "GetPriorityFeeEstimate Parameters", + "type": "object", + "description": "The single element in params (the config object). This object has two levels:\n- Top-level: transaction (optional), accountKeys (optional), and options (optional).\n- Put priorityLevel, recommended, lookbackSlots, etc. inside the options object, not next to transaction.\n", + "properties": { + "transaction": { + "type": "string", + "description": "Base58 or Base64 encoded Solana transaction for fee estimation analysis. Top-level key (sibling to options)." + }, + "accountKeys": { + "type": "array", + "description": "Array of Base58-encoded Solana account public keys. Top-level key (sibling to options).", + "items": { + "type": "string" + } + }, + "options": { + "description": "Nested object for tuning; put priorityLevel, recommended, lookbackSlots, etc. here.", + "title": "GetPriorityFeeEstimate Options (nested)", + "type": "object", + "properties": { + "transactionEncoding": { + "type": "string", + "enum": [ + "base58", + "base64" + ], + "description": "Encoding format of the transaction (default base58)." + }, + "priorityLevel": { + "type": "string", + "enum": [ + "Min", + "Low", + "Medium", + "High", + "VeryHigh", + "UnsafeMax", + "Default" + ], + "description": "Priority level for fee estimation. Each level maps to a percentile of recent fees: Min (0th), Low (25th), Medium (50th), High (75th), VeryHigh (95th), UnsafeMax (100th)." + }, + "includeAllPriorityFeeLevels": { + "type": "boolean", + "description": "When true, return estimates for all priority levels." + }, + "ignoreZeroFees": { + "type": "boolean", + "description": "When true, exclude zero-fee transactions from percentile calculation." + }, + "lookbackSlots": { + "type": "integer", + "minimum": 1, + "maximum": 150, + "description": "Number of recent slots to analyze for fee estimation. Default and max is 150." + }, + "recommended": { + "type": "boolean", + "default": false, + "description": "When true, return the recommended optimal fee (median)." + }, + "detailedBreakdown": { + "type": "boolean", + "default": false, + "description": "When true, return per-account fee breakdown." + } + } + } + } + } + } + ], + "examples": [ + { + "name": "getPriorityFeeEstimate with transaction", + "params": [ + { + "name": "Configuration", + "value": { + "transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEDArczbMia1tLmq7zz4DinMNN0pJ1JtLdqIJPUw3YrGCzYAMHBsgN27lcgB6H2WQvFgyZuJYHa46puOQo9yQ8CVQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp20C7Wj2aiuk5TReAXo+VTVg8QTHjs0UjNMMKCvpzZ+ABAgEBARU=", + "options": { + "priorityLevel": "High" + } + } + } + ] + } + ], + "result": { + "name": "Priority fee estimate", + "description": "Optimal priority fee estimate and optional fee levels for different priority tiers.", + "schema": { + "title": "Priority Fee Estimate Result", + "type": "object", + "description": "Optimal priority fee estimate and optional fee levels for different priority tiers.", + "properties": { + "priorityFee": { + "type": "integer", + "description": "Estimated optimal fee in microlamports per compute unit (returned when a single priorityLevel or recommended is requested)." + }, + "priorityFeeLevels": { + "description": "Fee estimates for each priority tier (returned when includeAllPriorityFeeLevels is true).", + "title": "Priority Fee Levels", + "type": "object", + "properties": { + "min": { + "type": "number", + "description": "Minimum (0th percentile) priority fee in microlamports." + }, + "low": { + "type": "number", + "description": "Low (25th percentile) priority fee in microlamports." + }, + "medium": { + "type": "number", + "description": "Medium (50th percentile) priority fee in microlamports." + }, + "high": { + "type": "number", + "description": "High (75th percentile) priority fee in microlamports." + }, + "veryHigh": { + "type": "number", + "description": "Very high (95th percentile) priority fee in microlamports." + }, + "unsafeMax": { + "type": "number", + "description": "Unsafe maximum (100th percentile) priority fee in microlamports." + } + } + }, + "detailedBreakdown": { + "type": "array", + "description": "Per-account fee breakdown (returned when detailedBreakdown option is true).", + "items": { + "title": "Account Fee Details", + "type": "object", + "properties": { + "account": { + "type": "string", + "description": "Base58-encoded account public key." + }, + "priorityFees": { + "description": "Fee estimates for this specific account.", + "title": "Priority Fee Levels", + "type": "object", + "properties": { + "min": { + "type": "number", + "description": "Minimum (0th percentile) priority fee in microlamports." + }, + "low": { + "type": "number", + "description": "Low (25th percentile) priority fee in microlamports." + }, + "medium": { + "type": "number", + "description": "Medium (50th percentile) priority fee in microlamports." + }, + "high": { + "type": "number", + "description": "High (75th percentile) priority fee in microlamports." + }, + "veryHigh": { + "type": "number", + "description": "Very high (95th percentile) priority fee in microlamports." + }, + "unsafeMax": { + "type": "number", + "description": "Unsafe maximum (100th percentile) priority fee in microlamports." + } + } + } + } + } + } + } + } + } + }, + { + "name": "getProgramAccounts", + "description": "Returns all accounts owned by the provided program Pubkey.", + "params": [ + { + "name": "Pubkey", + "required": true, + "description": "The Pubkey of the program.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetProgramAccounts Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "withContext": { + "type": "boolean", + "description": "If set, wraps the result in an `RpcResponse` JSON object." + }, + "encoding": { + "default": "json", + "title": "Data Encoding", + "type": "string", + "description": "Encoding format for data.", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + }, + "dataSlice": { + "title": "Data Slice", + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Number of bytes to return." + }, + "offset": { + "type": "integer", + "description": "Byte offset from which to start reading." + } + } + }, + "filters": { + "type": "array", + "description": "Filters to apply using up to 4 filter objects." + } + } + } + } + ], + "result": { + "name": "Program accounts", + "description": "An array of JSON objects containing program account details.", + "schema": { + "type": "array", + "items": { + "title": "Program Account", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "The account Pubkey as a base-58 encoded string." + }, + "account": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + } + } + } + } + }, + { + "name": "getRecentPerformanceSamples", + "description": "Returns a list of recent performance samples, in reverse slot order.", + "params": [ + { + "name": "limit", + "required": false, + "description": "The number of samples to return.", + "schema": { + "type": "integer" + } + } + ], + "result": { + "name": "Performance samples", + "description": "An array of performance sample data.", + "schema": { + "type": "array", + "items": { + "title": "Performance Sample", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "The slot in which the sample was taken." + }, + "numTransactions": { + "type": "integer", + "description": "The number of transactions processed during the sample period." + }, + "numSlots": { + "type": "integer", + "description": "The number of slots completed during the sample period." + }, + "samplePeriodSecs": { + "type": "integer", + "description": "The number of seconds in a sample window." + }, + "numNonVoteTransactions": { + "type": "integer", + "description": "The number of non-vote transactions processed during the sample period." + } + } + } + } + } + }, + { + "name": "getRecentPrioritizationFees", + "description": "Returns a list of prioritization fees from recent blocks.", + "params": [ + { + "name": "Account addresses", + "required": false, + "description": "An array of up to 128 account addresses. If provided, the response will reflect a fee to land a transaction locking all of the provided accounts as writable.", + "schema": { + "type": "array", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + } + } + ], + "result": { + "name": "Prioritization fees", + "description": "An array of prioritization fees observed in recent blocks.", + "schema": { + "title": "Recent Prioritization Fees", + "type": "array", + "description": "An array of prioritization fees observed in recent blocks.", + "items": { + "title": "Recent Prioritization Fee", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "Slot in which the fee was observed." + }, + "prioritizationFee": { + "type": "integer", + "description": "The per-compute-unit fee in micro-lamports." + } + } + } + } + } + }, + { + "name": "getSignaturesForAddress", + "description": "Returns signatures for confirmed transactions that include the given address.", + "params": [ + { + "name": "Account address", + "required": true, + "description": "The account address.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetSignaturesForAddress Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "limit": { + "type": "integer", + "description": "The maximum number of transaction signatures to return (between 1 and 1,000).", + "default": 1000 + }, + "before": { + "type": "string", + "description": "Start searching backwards from this transaction signature." + }, + "until": { + "type": "string", + "description": "Search until this transaction signature, if found before the limit is reached." + } + } + } + } + ], + "result": { + "name": "Transaction signatures", + "description": "An array of objects containing transaction signature information.", + "schema": { + "type": "array", + "items": { + "title": "Signature Information", + "type": "object", + "properties": { + "signature": { + "type": "string", + "description": "The transaction signature as a base-58 encoded string." + }, + "slot": { + "type": "integer", + "description": "The slot that contains the block with the transaction." + }, + "err": { + "type": "object", + "nullable": true, + "description": "Error if the transaction failed, null if the transaction succeeded." + }, + "memo": { + "type": "string", + "nullable": true, + "description": "The memo associated with the transaction, null if no memo is present." + }, + "blockTime": { + "type": "integer", + "nullable": true, + "description": "The estimated production time of the transaction as a Unix timestamp, null if not available." + }, + "confirmationStatus": { + "type": "string", + "nullable": true, + "description": "The transaction's cluster confirmation status, either `processed`, `confirmed`, or `finalized`." + } + } + } + } + } + }, + { + "name": "getSignatureStatuses", + "description": "Returns the statuses of a list of transaction signatures.", + "params": [ + { + "name": "Signatures", + "required": true, + "description": "An array of transaction signatures to confirm.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetSignatureStatuses Configuration", + "type": "object", + "properties": { + "searchTransactionHistory": { + "type": "boolean", + "description": "If true, searches the ledger cache for any signatures not found in the recent status cache." + } + } + } + } + ], + "result": { + "name": "Transaction statuses", + "description": "An array containing the status of each transaction signature.", + "schema": { + "type": "array", + "items": { + "title": "Transaction Status", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "The slot in which the transaction was processed." + }, + "confirmations": { + "type": "integer", + "nullable": true, + "description": "The number of blocks since signature confirmation, or null if rooted and finalized." + }, + "err": { + "type": "object", + "nullable": true, + "description": "Error if the transaction failed, or null if the transaction succeeded." + }, + "confirmationStatus": { + "type": "string", + "nullable": true, + "description": "The transaction's cluster confirmation status." + }, + "status": { + "type": "object", + "description": "DEPRECATED. The transaction status." + } + } + } + } + } + }, + { + "name": "getSlot", + "description": "Returns the slot that has reached the given or default commitment level.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "Slot Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Current slot", + "description": "The current slot at the specified commitment level.", + "schema": { + "type": "integer" + } + } + }, + { + "name": "getSlotLeader", + "description": "Returns the current slot leader.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "Slot Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Slot leader", + "description": "The node identity Pubkey as a base-58 encoded string.", + "schema": { + "title": "Slot Leader", + "type": "string", + "description": "The node identity Pubkey as a base-58 encoded string." + } + } + }, + { + "name": "getSlotLeaders", + "description": "Returns the slot leaders for a given slot range.", + "params": [ + { + "name": "Start slot", + "required": true, + "description": "The starting slot as a u64 integer.", + "schema": { + "type": "integer" + } + }, + { + "name": "Limit", + "required": true, + "description": "The number of slot leaders to return, between 1 and 5,000.", + "schema": { + "type": "integer" + } + } + ], + "result": { + "name": "Slot leaders", + "description": "An array of node identity public keys as base-58 encoded strings.", + "schema": { + "title": "Slot Leaders", + "type": "array", + "description": "An array of node identity public keys as base-58 encoded strings.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + } + } + }, + { + "name": "getStakeActivation", + "description": "Returns epoch activation information for a stake account.", + "params": [ + { + "name": "Stake account Pubkey", + "required": true, + "description": "Pubkey of the stake account to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "StakeActivation Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "epoch": { + "type": "integer", + "description": "Epoch for which to calculate activation details." + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "examples": [ + { + "name": "getStakeActivation example", + "params": [ + { + "name": "Stake account Pubkey", + "value": "CYRJWqiSjLitBAcRxPvWpgX3s5TvmN2SuRY3eEYypFvT" + } + ] + } + ], + "result": { + "name": "Stake activation info", + "description": "Returns epoch activation information for the stake account.", + "schema": { + "title": "Stake Activation", + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": [ + "active", + "inactive", + "activating", + "deactivating" + ], + "description": "The stake account's activation state." + }, + "active": { + "type": "integer", + "description": "Stake active during the epoch." + }, + "inactive": { + "type": "integer", + "description": "Stake inactive during the epoch." + } + } + } + } + }, + { + "name": "getSupply", + "description": "Returns information about the current supply of lamports.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetSupply Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "excludeNonCirculatingAccountsList": { + "type": "boolean", + "description": "Exclude non-circulating accounts list from the response." + } + } + } + } + ], + "result": { + "name": "Supply information", + "description": "An RpcResponse JSON object containing the current supply information.", + "schema": { + "title": "Supply Information", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total supply in lamports." + }, + "circulating": { + "type": "integer", + "description": "The circulating supply in lamports." + }, + "nonCirculating": { + "type": "integer", + "description": "The non-circulating supply in lamports." + }, + "nonCirculatingAccounts": { + "type": "array", + "description": "An array of account addresses of non-circulating accounts.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + } + } + } + } + }, + { + "name": "getTokenAccountBalance", + "description": "Returns the token balance of an SPL Token account.", + "params": [ + { + "name": "Token account Pubkey", + "required": true, + "description": "The Pubkey of the token account to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetTokenAccountBalance Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + } + } + } + } + ], + "examples": [ + { + "name": "getTokenAccountBalance example", + "params": [ + { + "name": "Token account Pubkey", + "value": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" + } + ] + } + ], + "result": { + "name": "Token account balance", + "description": "The balance of the SPL Token account.", + "schema": { + "title": "Token Balance", + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The raw balance without decimals, a string representation of u64." + }, + "decimals": { + "type": "integer", + "description": "Number of base-10 digits to the right of the decimal place." + }, + "uiAmount": { + "type": "number", + "nullable": true, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + "uiAmountString": { + "type": "string", + "description": "The balance as a string, using mint-prescribed decimals." + } + } + } + } + }, + { + "name": "getTokenAccountsByDelegate", + "description": "Returns all SPL Token accounts delegated to the provided account.", + "params": [ + { + "name": "Delegate Pubkey", + "required": true, + "description": "The Pubkey of the account delegate to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Token filter", + "required": false, + "description": "A filter object containing either the Mint Pubkey or the Token program Pubkey.", + "schema": { + "type": "object", + "properties": { + "mint": { + "title": "Pubkey", + "type": "string", + "description": "The Pubkey of the specific token Mint to limit accounts to." + }, + "programId": { + "title": "Pubkey", + "type": "string", + "description": "The Pubkey of the Token program that owns the accounts." + } + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetTokenAccountsByDelegate Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "dataSlice": { + "title": "Data Slice", + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Number of bytes to return." + }, + "offset": { + "type": "integer", + "description": "Byte offset from which to start reading." + } + } + }, + "encoding": { + "description": "Encoding format for account data.", + "title": "Data Encoding", + "type": "string", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + } + } + } + } + ], + "examples": [ + { + "name": "getTokenAccountsByDelegate example", + "params": [ + { + "name": "Delegate Pubkey", + "value": "4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T" + }, + { + "name": "Token filter", + "value": { + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + } + } + ] + } + ], + "result": { + "name": "Token accounts", + "description": "An array of JSON objects representing the token accounts delegated to the specified Pubkey.", + "schema": { + "type": "array", + "items": { + "title": "Token Account", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "The account Pubkey as a base-58 encoded string." + }, + "account": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + } + } + } + } + }, + { + "name": "getTokenAccountsByOwner", + "description": "Returns all SPL Token accounts owned by the specified token owner.", + "params": [ + { + "name": "Token owner Pubkey", + "required": true, + "description": "The Pubkey of the account owner to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Token filter", + "required": false, + "description": "A filter object containing either the Mint Pubkey or the Token program Pubkey.", + "schema": { + "type": "object", + "properties": { + "mint": { + "title": "Pubkey", + "type": "string", + "description": "The Pubkey of the specific token Mint to limit accounts to." + }, + "programId": { + "title": "Pubkey", + "type": "string", + "description": "The Pubkey of the Token program that owns the accounts." + } + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetTokenAccountsByOwner Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "dataSlice": { + "title": "Data Slice", + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Number of bytes to return." + }, + "offset": { + "type": "integer", + "description": "Byte offset from which to start reading." + } + } + }, + "encoding": { + "description": "Encoding format for account data.", + "title": "Data Encoding", + "type": "string", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + } + } + } + } + ], + "examples": [ + { + "name": "getTokenAccountsByOwner example", + "params": [ + { + "name": "Token owner Pubkey", + "value": "GwsPP9HHhCvEQeu3HTFzsVL6DEtnnYw4ALEtA3fMBC9Q" + } + ] + } + ], + "result": { + "name": "Token accounts", + "description": "An array of JSON objects representing the token accounts owned by the specified Pubkey.", + "schema": { + "type": "array", + "items": { + "title": "Token Account", + "type": "object", + "properties": { + "pubkey": { + "title": "Pubkey", + "type": "string", + "description": "The account Pubkey as a base-58 encoded string." + }, + "account": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + } + } + } + } + }, + { + "name": "getTokenLargestAccounts", + "description": "Returns the 20 largest accounts of a particular SPL Token type.", + "params": [ + { + "name": "Token Mint Pubkey", + "required": true, + "description": "The Pubkey of the token Mint to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetTokenLargestAccounts Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + } + } + } + } + ], + "examples": [ + { + "name": "getTokenLargestAccounts example", + "params": [ + { + "name": "Token Mint Pubkey", + "value": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" + } + ] + } + ], + "result": { + "name": "Largest token accounts", + "description": "An array of the 20 largest accounts of the specified token type.", + "schema": { + "title": "Token Largest Accounts List", + "type": "array", + "description": "List of the 20 largest token accounts.", + "items": { + "title": "Token Largest Account", + "type": "object", + "properties": { + "address": { + "title": "Pubkey", + "type": "string", + "description": "Address of the token account." + }, + "amount": { + "type": "string", + "description": "Raw amount in the account, without decimals." + }, + "decimals": { + "type": "integer", + "description": "Number of decimals configured for the token's mint." + }, + "uiAmount": { + "type": "number", + "nullable": true, + "description": "Token amount using mint-prescribed decimals. **DEPRECATED**" + }, + "uiAmountString": { + "type": "string", + "description": "Token amount as a string, using mint-prescribed decimals." + } + } + } + } + } + }, + { + "name": "getTokenSupply", + "description": "Returns the total supply of an SPL Token type.", + "params": [ + { + "name": "Token Mint Pubkey", + "required": true, + "description": "The Pubkey of the token Mint to query.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetTokenSupply Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + } + } + } + } + ], + "result": { + "name": "Token supply", + "description": "The total supply of the specified SPL Token.", + "schema": { + "title": "Token Balance", + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The raw balance without decimals, a string representation of u64." + }, + "decimals": { + "type": "integer", + "description": "Number of base-10 digits to the right of the decimal place." + }, + "uiAmount": { + "type": "number", + "nullable": true, + "description": "The balance, using mint-prescribed decimals. **DEPRECATED**" + }, + "uiAmountString": { + "type": "string", + "description": "The balance as a string, using mint-prescribed decimals." + } + } + } + } + }, + { + "name": "getTransaction", + "description": "Returns transaction details for a confirmed transaction.", + "params": [ + { + "name": "Transaction signature", + "required": true, + "description": "Transaction signature as a base-58 encoded string.", + "schema": { + "type": "string" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional settings.", + "schema": { + "title": "GetTransaction Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Commitment level to use. `Processed` is not supported.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "maxSupportedTransactionVersion": { + "type": "integer", + "description": "Sets the max transaction version to return." + }, + "encoding": { + "type": "string", + "description": "Encoding format for the returned transaction.", + "enum": [ + "json", + "jsonParsed", + "base64", + "base58" + ] + } + } + } + } + ], + "result": { + "name": "Transaction details", + "description": "The details of a confirmed transaction.", + "schema": { + "title": "Transaction Details", + "type": "object", + "properties": { + "slot": { + "type": "integer", + "description": "The slot this transaction was processed in." + }, + "transaction": { + "oneOf": [ + { + "type": "object", + "description": "The transaction details in JSON format." + }, + { + "type": "string", + "description": "The transaction details as encoded binary data." + } + ], + "description": "The transaction details, either in JSON format or encoded binary data." + }, + "blockTime": { + "type": "integer", + "nullable": true, + "description": "Estimated production time as a Unix timestamp." + }, + "meta": { + "type": "object", + "nullable": true, + "description": "Transaction status metadata." + }, + "version": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "nullable": true, + "description": "Transaction version." + } + } + } + } + }, + { + "name": "getTransactionCount", + "description": "Returns the current transaction count from the ledger.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetTransactionCount Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "examples": [ + { + "name": "getTransactionCount example", + "params": [] + } + ], + "result": { + "name": "Transaction count", + "description": "The current transaction count from the ledger.", + "schema": { + "title": "Transaction Count", + "type": "integer", + "description": "The current transaction count from the ledger." + } + } + }, + { + "name": "getTransactionsForAddress", + "description": "Returns transaction history for a given address with advanced filtering, bidirectional sorting, and pagination. Combines the functionality of `getSignaturesForAddress` and `getTransaction` into a single call, returning up to 1,000 signatures or up to 100 full transactions per request.", + "params": [ + { + "name": "Account address", + "required": true, + "description": "Base-58 encoded public key of the account to query transaction history for.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing transaction detail level, sort order, limit, pagination token, commitment, encoding, and filters (slot, blockTime, signature, status, tokenAccounts).", + "schema": { + "title": "GetTransactionsForAddress Configuration", + "type": "object", + "description": "Optional configuration object containing additional settings for the query.", + "properties": { + "transactionDetails": { + "type": "string", + "description": "Level of transaction detail to return. `signatures` returns basic signature info (faster). `full` returns complete transaction data, removing the need for follow-up `getTransaction` calls (requires `limit` <= 100).", + "enum": [ + "signatures", + "full" + ], + "default": "signatures" + }, + "sortOrder": { + "type": "string", + "description": "Sort order for results. `desc` returns newest first (default). `asc` returns oldest first (chronological order).", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + }, + "limit": { + "type": "integer", + "description": "Maximum number of transactions to return. Up to 1,000 when `transactionDetails` is `signatures`, or up to 100 when `transactionDetails` is `full`.", + "default": 1000 + }, + "paginationToken": { + "type": "string", + "description": "Pagination token from a previous response (format: `\"slot:position\"`)." + }, + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Commitment level. Only `finalized` or `confirmed` are supported; `processed` is not supported.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "encoding": { + "type": "string", + "description": "Encoding format for transaction data (only applies when `transactionDetails` is `full`).", + "enum": [ + "json", + "jsonParsed", + "base64", + "base58" + ] + }, + "maxSupportedTransactionVersion": { + "type": "integer", + "description": "The maximum transaction version to return. If omitted, only legacy transactions are returned. Set to `0` to include all versioned transactions." + }, + "filters": { + "title": "GetTransactionsForAddress Filters", + "type": "object", + "description": "Advanced filtering options for narrowing down results.", + "properties": { + "slot": { + "type": "object", + "description": "Filter by slot number using comparison operators: `gte`, `gt`, `lte`, `lt`.", + "properties": { + "gte": { + "type": "integer", + "description": "Include slots greater than or equal to this value." + }, + "gt": { + "type": "integer", + "description": "Include slots strictly greater than this value." + }, + "lte": { + "type": "integer", + "description": "Include slots less than or equal to this value." + }, + "lt": { + "type": "integer", + "description": "Include slots strictly less than this value." + } + } + }, + "blockTime": { + "type": "object", + "description": "Filter by Unix timestamp using comparison operators: `gte`, `gt`, `lte`, `lt`, `eq`.", + "properties": { + "gte": { + "type": "integer", + "description": "Include block times greater than or equal to this Unix timestamp." + }, + "gt": { + "type": "integer", + "description": "Include block times strictly greater than this Unix timestamp." + }, + "lte": { + "type": "integer", + "description": "Include block times less than or equal to this Unix timestamp." + }, + "lt": { + "type": "integer", + "description": "Include block times strictly less than this Unix timestamp." + }, + "eq": { + "type": "integer", + "description": "Include block times exactly equal to this Unix timestamp." + } + } + }, + "signature": { + "type": "object", + "description": "Filter by transaction signature using comparison operators: `gte`, `gt`, `lte`, `lt`.", + "properties": { + "gte": { + "type": "string", + "description": "Include signatures greater than or equal to this base-58 encoded value." + }, + "gt": { + "type": "string", + "description": "Include signatures strictly greater than this base-58 encoded value." + }, + "lte": { + "type": "string", + "description": "Include signatures less than or equal to this base-58 encoded value." + }, + "lt": { + "type": "string", + "description": "Include signatures strictly less than this base-58 encoded value." + } + } + }, + "status": { + "type": "string", + "description": "Filter by transaction success/failure status.", + "enum": [ + "succeeded", + "failed", + "any" + ], + "default": "any" + }, + "tokenAccounts": { + "type": "string", + "description": "Filter transactions for related token accounts. `none` returns only transactions that reference the provided address. `balanceChanged` also returns transactions that modify the balance of a token account owned by the provided address. `all` returns transactions that reference the provided address or any token account owned by it.", + "enum": [ + "none", + "balanceChanged", + "all" + ], + "default": "none" + } + } + } + } + } + } + ], + "examples": [ + { + "name": "getTransactionsForAddress example", + "params": [ + { + "name": "Account address", + "value": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY" + }, + { + "name": "Configuration", + "value": { + "transactionDetails": "signatures", + "sortOrder": "desc", + "limit": 100, + "filters": { + "status": "succeeded", + "tokenAccounts": "balanceChanged" + } + } + } + ] + } + ], + "result": { + "name": "Transaction history", + "description": "A paginated list of transactions for the address. Each entry includes the slot, transaction index, and either a signature plus metadata (when `transactionDetails` is `signatures`) or the full transaction and meta objects (when `transactionDetails` is `full`). A `paginationToken` is returned when more results are available.", + "schema": { + "title": "GetTransactionsForAddress Result", + "type": "object", + "description": "Paginated transaction history for the queried address.", + "properties": { + "data": { + "type": "array", + "description": "Array of transaction entries matching the query.", + "items": { + "title": "GetTransactionsForAddress Entry", + "type": "object", + "description": "A single transaction entry returned by `getTransactionsForAddress`.", + "properties": { + "signature": { + "type": "string", + "description": "The transaction signature as a base-58 encoded string. Only present when `transactionDetails` is `signatures`." + }, + "slot": { + "type": "integer", + "description": "The slot that contains the block with the transaction." + }, + "transactionIndex": { + "type": "integer", + "description": "The zero-based index of the transaction within its block." + }, + "blockTime": { + "type": "integer", + "nullable": true, + "description": "The estimated production time of the transaction as a Unix timestamp, null if not available." + }, + "err": { + "type": "object", + "nullable": true, + "description": "Error if the transaction failed, null if it succeeded. Only present when `transactionDetails` is `signatures`." + }, + "memo": { + "type": "string", + "nullable": true, + "description": "The memo associated with the transaction, null if no memo is present. Only present when `transactionDetails` is `signatures`." + }, + "confirmationStatus": { + "type": "string", + "nullable": true, + "description": "The transaction's cluster confirmation status. Only present when `transactionDetails` is `signatures`." + }, + "version": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "nullable": true, + "description": "Transaction version. Only present when `transactionDetails` is `full`." + }, + "transaction": { + "type": "object", + "description": "Full transaction data. Only present when `transactionDetails` is `full`." + }, + "meta": { + "type": "object", + "nullable": true, + "description": "Transaction status metadata. Only present when `transactionDetails` is `full`." + } + } + } + }, + "paginationToken": { + "type": "string", + "nullable": true, + "description": "Token for fetching the next page (format: `\"slot:position\"`), or null if no more results." + } + } + } + } + }, + { + "name": "getVersion", + "description": "Returns the current Solana version running on the node.", + "params": [], + "result": { + "name": "Version details", + "description": "The current Solana version running on the node.", + "schema": { + "title": "Version Information", + "type": "object", + "properties": { + "solana-core": { + "type": "string", + "description": "The software version of solana-core." + }, + "feature-set": { + "type": "integer", + "description": "Unique identifier of the current software's feature set." + } + } + } + } + }, + { + "name": "getVoteAccounts", + "description": "Returns the account info and associated stake for all voting accounts in the current bank.", + "params": [ + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetVoteAccounts Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "votePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Return results for this validator vote address." + }, + "keepUnstakedDelinquents": { + "type": "boolean", + "description": "Do not filter out delinquent validators with no stake." + }, + "delinquentSlotDistance": { + "type": "integer", + "description": "Number of slots behind the tip for a validator to be considered delinquent." + } + } + } + } + ], + "result": { + "name": "Vote accounts", + "description": "Information about current and delinquent vote accounts.", + "schema": { + "title": "Vote Accounts", + "type": "object", + "properties": { + "current": { + "type": "array", + "description": "List of current vote accounts.", + "items": { + "title": "Vote Account Information", + "type": "object", + "properties": { + "votePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Vote account address." + }, + "nodePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Validator identity." + }, + "activatedStake": { + "type": "integer", + "description": "Active stake in lamports delegated to this vote account." + }, + "epochVoteAccount": { + "type": "boolean", + "description": "Whether the vote account is staked for this epoch." + }, + "commission": { + "type": "number", + "description": "Percentage of rewards payout owed to the vote account." + }, + "lastVote": { + "type": "integer", + "description": "Most recent slot voted on by this vote account." + }, + "epochCredits": { + "type": "array", + "description": "History of earned credits for up to five epochs.", + "items": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "rootSlot": { + "type": "integer", + "description": "Current root slot for this vote account." + } + } + } + }, + "delinquent": { + "type": "array", + "description": "List of delinquent vote accounts.", + "items": { + "title": "Vote Account Information", + "type": "object", + "properties": { + "votePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Vote account address." + }, + "nodePubkey": { + "title": "Pubkey", + "type": "string", + "description": "Validator identity." + }, + "activatedStake": { + "type": "integer", + "description": "Active stake in lamports delegated to this vote account." + }, + "epochVoteAccount": { + "type": "boolean", + "description": "Whether the vote account is staked for this epoch." + }, + "commission": { + "type": "number", + "description": "Percentage of rewards payout owed to the vote account." + }, + "lastVote": { + "type": "integer", + "description": "Most recent slot voted on by this vote account." + }, + "epochCredits": { + "type": "array", + "description": "History of earned credits for up to five epochs.", + "items": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "rootSlot": { + "type": "integer", + "description": "Current root slot for this vote account." + } + } + } + } + } + } + } + }, + { + "name": "isBlockhashValid", + "description": "Returns whether a blockhash is still valid or not.", + "params": [ + { + "name": "blockhash", + "required": true, + "description": "The blockhash of the block to evaluate.", + "schema": { + "type": "string" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "IsBlockhashValid Parameters", + "type": "object", + "properties": { + "blockhash": { + "type": "string", + "description": "The blockhash to evaluate, as a base-58 encoded string." + }, + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Validity", + "description": "Indicates if the blockhash is still valid.", + "schema": { + "title": "Is Blockhash Valid Result", + "type": "boolean", + "description": "Indicates if the blockhash is still valid." + } + } + }, + { + "name": "minimumLedgerSlot", + "description": "Returns the lowest slot that the node has information about in its ledger.", + "params": [], + "result": { + "name": "Minimum ledger slot", + "description": "The lowest slot number the node has information about.", + "schema": { + "title": "Minimum Ledger Slot", + "type": "integer", + "description": "The lowest slot number the node has information about." + } + } + }, + { + "name": "requestAirdrop", + "description": "Requests an airdrop of lamports to a Pubkey.", + "params": [ + { + "name": "Pubkey", + "required": true, + "description": "The Pubkey of the account to receive lamports.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Lamports", + "required": true, + "description": "The number of lamports to airdrop, as a \"u64\".", + "schema": { + "type": "integer" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "RequestAirdrop Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ] + } + } + } + } + ], + "examples": [ + { + "name": "requestAirdrop example", + "params": [ + { + "name": "Pubkey", + "value": "GwsPP9HHhCvEQeu3HTFzsVL6DEtnnYw4ALEtA3fMBC9Q" + }, + { + "name": "Lamports", + "value": 1000000000000000000 + } + ] + } + ], + "result": { + "name": "Transaction signature", + "description": "Transaction Signature of the airdrop.", + "schema": { + "type": "string" + } + } + }, + { + "name": "sendTransaction", + "description": "Submits a signed transaction to the cluster for processing.", + "params": [ + { + "name": "Transaction", + "required": true, + "description": "Fully-signed Transaction, as encoded string.", + "schema": { + "type": "string" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "SendTransaction Configuration", + "type": "object", + "properties": { + "encoding": { + "type": "string", + "description": "Encoding used for the transaction data.", + "enum": [ + "base58", + "base64" + ], + "default": "base58" + }, + "skipPreflight": { + "type": "boolean", + "description": "Skip preflight transaction checks if `true`.", + "default": false + }, + "preflightCommitment": { + "title": "Commitment Level", + "type": "string", + "description": "Commitment level to use for preflight.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + }, + "maxRetries": { + "type": "integer", + "description": "Maximum retries for the RPC node to send the transaction." + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Transaction signature", + "description": "The first signature in the transaction, used as the transaction ID.", + "schema": { + "title": "Send Transaction Result", + "type": "string", + "description": "The transaction signature as a base-58 encoded string." + } + } + }, + { + "name": "simulateBundle", + "description": "Simulates sending a Jito bundle of transactions.", + "params": [ + { + "name": "Bundle", + "required": true, + "description": "Encoded, serialized transactions to simulate in a bundle.", + "schema": { + "title": "SimulateBundle Parameters", + "type": "object", + "required": [ + "encodedTransactions" + ], + "properties": { + "encodedTransactions": { + "type": "array", + "description": "Array of encoded, serialized transactions to simulate.", + "items": { + "type": "string" + } + } + } + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional options.", + "schema": { + "title": "SimulateBundle Configuration", + "type": "object", + "properties": { + "preExecutionAccountsConfigs": { + "type": "array", + "description": "Account capture configs for each transaction before execution. Array length must equal the number of transactions in the bundle. Use null for entries where no account state is requested.", + "items": { + "oneOf": [ + { + "title": "SimulateBundle Accounts Configuration", + "type": "object", + "properties": { + "addresses": { + "type": "array", + "description": "Base-58 encoded account addresses to capture.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "encoding": { + "description": "Encoding used for returned account data.", + "default": "base64", + "title": "Data Encoding", + "type": "string", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + } + } + }, + { + "type": "null" + } + ] + } + }, + "postExecutionAccountsConfigs": { + "type": "array", + "description": "Account capture configs for each transaction after execution. Array length must equal the number of transactions in the bundle. Use null for entries where no account state is requested.", + "items": { + "oneOf": [ + { + "title": "SimulateBundle Accounts Configuration", + "type": "object", + "properties": { + "addresses": { + "type": "array", + "description": "Base-58 encoded account addresses to capture.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "encoding": { + "description": "Encoding used for returned account data.", + "default": "base64", + "title": "Data Encoding", + "type": "string", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + } + } + }, + { + "type": "null" + } + ] + } + }, + "transactionEncoding": { + "type": "string", + "description": "Encoding used for the transactions in `encodedTransactions`.", + "enum": [ + "base64", + "base58" + ], + "default": "base64" + }, + "simulationBank": { + "type": "string", + "description": "Bank to simulate against." + }, + "skipSigVerify": { + "type": "boolean", + "description": "If true, signature verification is skipped before simulation.", + "default": false + }, + "replaceRecentBlockhash": { + "type": "boolean", + "description": "If true, replaces recent blockhash with the most recent one.", + "default": false + } + } + } + } + ], + "result": { + "name": "Simulated bundle result", + "description": "The result of simulating the bundle.", + "schema": { + "title": "Simulated Bundle Result", + "type": "object", + "properties": { + "summary": { + "type": "string", + "description": "Summary of the bundle simulation result." + }, + "transactionResults": { + "type": "array", + "description": "Result details for each transaction in the bundle.", + "items": { + "title": "Simulated Bundle Transaction Result", + "type": "object", + "properties": { + "err": { + "type": "object", + "nullable": true, + "description": "Error if the transaction failed, null if succeeded." + }, + "logs": { + "type": "array", + "nullable": true, + "description": "Log messages output during execution.", + "items": { + "type": "string" + } + }, + "preExecutionAccounts": { + "type": "array", + "nullable": true, + "description": "Account states before execution.", + "items": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + }, + "postExecutionAccounts": { + "type": "array", + "nullable": true, + "description": "Account states after execution.", + "items": { + "title": "Account Information", + "type": "object", + "properties": { + "lamports": { + "type": "integer", + "description": "Number of lamports assigned to this account." + }, + "owner": { + "title": "Pubkey", + "type": "string", + "description": "Program owner of this account." + }, + "data": { + "title": "Account Data", + "type": "array", + "description": "Account data in the specified encoding format.", + "items": { + "type": "string" + } + }, + "executable": { + "type": "boolean", + "description": "Indicates if the account contains a program." + }, + "rentEpoch": { + "type": "integer", + "description": "The epoch at which this account will next owe rent." + }, + "size": { + "type": "integer", + "description": "The data size of the account." + } + } + } + }, + "unitsConsumed": { + "type": "integer", + "description": "Compute budget units consumed." + }, + "returnData": { + "title": "Return Data", + "type": "object", + "nullable": true, + "properties": { + "programId": { + "title": "Pubkey", + "type": "string", + "description": "Program that generated the return data." + }, + "data": { + "type": "array", + "description": "Return data as base-64 encoded binary data.", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + ], + "x-bot-ignore": [ + "getAsset", + "getAssetProof", + "getAssetProofs", + "getAssets", + "getAssetsByAuthority", + "getAssetsByCreator", + "getAssetsByGroup", + "getAssetsByOwner", + "getAssetSignatures", + "getNftEditions", + "searchAssets", + "getCompressedAccount", + "getCompressedAccountProof", + "getCompressedAccountsByOwner", + "getCompressedBalance", + "getCompressedBalanceByOwner", + "getCompressedMintTokenHolders", + "getCompressedTokenAccountBalance", + "getCompressedTokenAccountsByDelegate", + "getCompressedTokenAccountsByOwner", + "getCompressedTokenBalancesByOwner", + "getCompressedTokenBalancesByOwnerV2", + "getCompressionSignaturesForAccount", + "getCompressionSignaturesForAddress", + "getCompressionSignaturesForOwner", + "getCompressionSignaturesForTokenOwner", + "getLatestCompressionSignatures", + "getLatestNonVotingSignatures", + "getMultipleCompressedAccountProofs", + "getMultipleCompressedAccounts", + "getMultipleNewAddressProofs", + "getMultipleNewAddressProofsV2", + "getTransactionWithCompressionInfo", + "getValidityProof", + "getValidityProofV2", + "getIndexerHealth", + "getIndexerSlot", + "alchemy_getTokenAccountsByOwner", + "get_solana_token_metadata", + "getTokenAccounts", + "getTransaction", + "alchemy_getProgramAccounts", + "alchemy_getTokenAccountsByDelegate", + "alchemy_getTokenLargestAccounts", + "sendStakedTransaction", + "alchemy_requestFeePayer_prefundRent", + "alchemy_requestFeePayer", + "simulateTransaction", + "sendTransaction", + "getHealth" + ], + "x-auth-params": [ + { + "name": "apiKey", + "in": "path", + "schema": { + "type": "string", + "default": "docs-demo", + "description": "For higher throughput, [create your own API key](https://dashboard.alchemy.com/signup)" + }, + "required": true + } + ] +} \ No newline at end of file