diff --git a/content/api-reference/solana/solana-api-overview.mdx b/content/api-reference/solana/solana-api-overview.mdx index 5fba1d855..24d3f49c1 100644 --- a/content/api-reference/solana/solana-api-overview.mdx +++ b/content/api-reference/solana/solana-api-overview.mdx @@ -33,7 +33,7 @@ slug: docs/solana/solana-api-overview | [`getTokenAccountBalance`](/docs/chains/solana/solana-api-endpoints/get-token-account-balance) | [`getTokenAccountsByDelegate`](/docs/chains/solana/solana-api-endpoints/get-token-accounts-by-delegate) | | [`getTokenAccountsByOwner`](/docs/chains/solana/solana-api-endpoints/get-token-accounts-by-owner) | [`getTokenLargestAccounts`](/docs/chains/solana/solana-api-endpoints/get-token-largest-accounts) | | [`getTokenSupply`](/docs/chains/solana/solana-api-endpoints/get-token-supply) | [`getTransaction`](/docs/chains/solana/solana-api-endpoints/get-transaction) | -| [`getTransactionCount`](/docs/chains/solana/solana-api-endpoints/get-transaction-count) | [`getVersion`](/docs/chains/solana/solana-api-endpoints/get-version) | -| [`getVoteAccounts`](/docs/chains/solana/solana-api-endpoints/get-vote-accounts) | [`isBlockhashValid`](/docs/chains/solana/solana-api-endpoints/is-blockhash-valid) | -| [`minimumLedgerSlot`](/docs/chains/solana/solana-api-endpoints/minimum-ledger-slot) | [`requestAirdrop`](/docs/chains/solana/solana-api-endpoints/request-airdrop) | -| [`simulateBundle`](/docs/chains/solana/solana-api-endpoints/simulate-bundle) | | +| [`getTransactionCount`](/docs/chains/solana/solana-api-endpoints/get-transaction-count) | [`getTransactionsForAddress`](/docs/chains/solana/solana-api-endpoints/get-transactions-for-address) | +| [`getVersion`](/docs/chains/solana/solana-api-endpoints/get-version) | [`getVoteAccounts`](/docs/chains/solana/solana-api-endpoints/get-vote-accounts) | +| [`isBlockhashValid`](/docs/chains/solana/solana-api-endpoints/is-blockhash-valid) | [`minimumLedgerSlot`](/docs/chains/solana/solana-api-endpoints/minimum-ledger-slot) | +| [`requestAirdrop`](/docs/chains/solana/solana-api-endpoints/request-airdrop) | [`simulateBundle`](/docs/chains/solana/solana-api-endpoints/simulate-bundle) | diff --git a/content/api-specs/chains/solana.json b/content/api-specs/chains/solana.json new file mode 100644 index 000000000..f3e7f9c67 --- /dev/null +++ b/content/api-specs/chains/solana.json @@ -0,0 +1,4442 @@ +{ + "$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": "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 confirmed transactions that include the given address, with support for pagination, sort order, and filtering by slot range or block time range.", + "params": [ + { + "name": "Account address", + "required": true, + "description": "The account address as a base-58 encoded string.", + "schema": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "GetTransactionsForAddress Configuration", + "type": "object", + "properties": { + "transactionDetails": { + "type": "string", + "description": "Level of transaction detail to return. `signatures` returns only signature objects; `full` returns complete transaction data.", + "enum": [ + "signatures", + "full" + ], + "default": "signatures" + }, + "sortOrder": { + "type": "string", + "description": "Order in which to return transactions. `desc` returns newest first; `asc` returns oldest first.", + "enum": [ + "desc", + "asc" + ], + "default": "desc" + }, + "limit": { + "type": "integer", + "description": "Maximum number of results to return. Maximum is 1,000.", + "default": 1000 + }, + "paginationToken": { + "type": "string", + "description": "Opaque token returned by a previous response. When provided, the response resumes from the position identified by this token." + }, + "before": { + "type": "string", + "description": "Return transactions older than this transaction signature (exclusive)." + }, + "until": { + "type": "string", + "description": "Stop searching at this transaction signature (exclusive). Results will not include the transaction identified by this signature." + }, + "encoding": { + "type": "string", + "description": "Encoding format for transaction data. Only applies when `transactionDetails` is `full`.", + "enum": [ + "json", + "jsonParsed", + "base64", + "base58" + ], + "default": "json" + }, + "maxSupportedTransactionVersion": { + "type": "integer", + "description": "The maximum transaction version to return. Only applies when `transactionDetails` is `full`." + }, + "filters": { + "title": "GetTransactionsForAddress Filters", + "type": "object", + "properties": { + "blockTime": { + "description": "Restrict results to transactions whose `blockTime` falls within this range (Unix timestamps). Converted internally to an approximate slot range.", + "title": "Range Filter", + "type": "object", + "properties": { + "gte": { + "type": "integer", + "description": "Inclusive lower bound of the range." + }, + "lte": { + "type": "integer", + "description": "Inclusive upper bound of the range." + } + } + }, + "slot": { + "description": "Restrict results to transactions within this slot range.", + "title": "Range Filter", + "type": "object", + "properties": { + "gte": { + "type": "integer", + "description": "Inclusive lower bound of the range." + }, + "lte": { + "type": "integer", + "description": "Inclusive upper bound of the range." + } + } + } + } + } + } + } + } + ], + "examples": [ + { + "name": "getTransactionsForAddress example (signatures)", + "params": [ + { + "name": "Account address", + "value": "GwsPP9HHhCvEQeu3HTFzsVL6DEtnnYw4ALEtA3fMBC9Q" + }, + { + "name": "Configuration", + "value": { + "transactionDetails": "signatures", + "limit": 3, + "sortOrder": "desc" + } + } + ], + "result": { + "name": "Transaction signatures result", + "value": { + "data": [ + { + "signature": "5UfDuX7WXcCJZMDKMaNbDcBrF5P3dHBvxFAGVmNXEWpLVFGHqvFbKHq7gVd4qePXkY2Lw3nZbM3fhKJtxqzCNVk", + "slot": 251000042, + "err": null, + "blockTime": 1710000123, + "confirmationStatus": "finalized" + }, + { + "signature": "3kxVBJHbNbBWU4Yr5rHzVyxMzNh4bzmGP7w5dQtmjqBT4e6Dkv2FvGLxHyNE9MbqUjuAzXsW8aM7EkXLsQNpYm3", + "slot": 250999987, + "err": null, + "blockTime": 1710000099, + "confirmationStatus": "finalized" + }, + { + "signature": "2mJkNpXyWv9NQxbLfBhzGCu3FbVeKxDsTHAjpMwYRN6nBqe5RsEzKWa4VJHoMtNcUxbPyL1sdEo8RvGkLz4DpAf", + "slot": 250999801, + "err": null, + "blockTime": 1710000011, + "confirmationStatus": "finalized" + } + ], + "paginationToken": "250999801:42" + } + } + } + ], + "result": { + "name": "Transactions result", + "description": "An object containing an array of transaction data and a pagination token for fetching the next page.", + "schema": { + "title": "GetTransactionsForAddress Result", + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Array of transaction results. Each item is a signature object when `transactionDetails` is `signatures`, or a full transaction object when `transactionDetails` is `full`.", + "items": { + "oneOf": [ + { + "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`." + }, + "transactionIndex": { + "type": "integer", + "description": "The index of this transaction within its block." + } + } + }, + { + "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." + }, + "transactionIndex": { + "type": "integer", + "description": "The index of this transaction within its block." + } + } + } + ] + } + }, + "paginationToken": { + "type": "string", + "nullable": true, + "description": "Token to pass as `paginationToken` in the next request to retrieve the following page of results. `null` when there are 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": "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" + } + } + } + } + } + } + } + } + } + } + }, + { + "name": "simulateTransaction", + "description": "Simulates sending a transaction.", + "params": [ + { + "name": "Transaction", + "required": true, + "description": "The transaction to simulate, as an encoded string.", + "schema": { + "type": "string" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object containing additional options.", + "schema": { + "title": "SimulateTransaction Configuration", + "type": "object", + "properties": { + "commitment": { + "title": "Commitment Level", + "type": "string", + "description": "Configures the state commitment for querying.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + }, + "sigVerify": { + "type": "boolean", + "description": "If true, the transaction signatures will be verified.", + "default": false + }, + "replaceRecentBlockhash": { + "type": "boolean", + "description": "If true, replaces recent blockhash with the most recent one.", + "default": false + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + }, + "encoding": { + "type": "string", + "description": "Encoding used for the transaction data.", + "enum": [ + "base58", + "base64" + ], + "default": "base58" + }, + "innerInstructions": { + "type": "boolean", + "description": "If true, includes inner instructions in the response.", + "default": false + }, + "accounts": { + "title": "SimulateTransaction Accounts Configuration", + "type": "object", + "properties": { + "addresses": { + "type": "array", + "description": "An array of account Pubkeys to return.", + "items": { + "title": "Pubkey", + "type": "string", + "description": "Base-58 encoded public key." + } + }, + "encoding": { + "description": "Encoding for returned account data.", + "default": "base64", + "title": "Data Encoding", + "type": "string", + "enum": [ + "base58", + "base64", + "base64+zstd", + "jsonParsed" + ] + } + } + } + } + } + } + ], + "examples": [ + { + "name": "simulateTransaction example", + "params": [ + { + "name": "Transaction", + "value": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEDZDnD3LUKXWQB8kE0TBLbgGOZmAFW2KdPBOEJie5JAGbhbwJIKOS2F6RAMYzzNMwSCCpNg9MnCHEbVcVPNRByxQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpjJclj04lr3XiJv5dZ3MN1MlkHd0BkPZ/IFOrnFYCxQECAgABDAIAAAAgTgAAAAAAAA==" + }, + { + "name": "Configuration", + "value": { + "encoding": "base64" + } + } + ], + "result": { + "name": "Simulated transaction result", + "value": { + "err": null, + "logs": [ + "Program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb invoke [1]", + "Program log: Instruction: Transfer", + "Program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb consumed 1714 of 200000 compute units", + "Program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb success" + ], + "accounts": null, + "unitsConsumed": 1714, + "returnData": null, + "innerInstructions": null + } + } + } + ], + "result": { + "name": "Simulated transaction result", + "description": "The result of simulating the transaction.", + "schema": { + "title": "Simulated Transaction Result", + "type": "object", + "properties": { + "err": { + "type": "string", + "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" + } + }, + "accounts": { + "type": "array", + "nullable": true, + "description": "Array of account information.", + "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" + } + } + } + }, + "innerInstructions": { + "type": "object", + "nullable": true, + "description": "Inner instructions if `innerInstructions` is true." + } + } + } + } + } + ], + "x-bot-ignore": [ + "getAsset", + "getAssetProof", + "getAssetProofs", + "getAssets", + "getAssetsByAuthority", + "getAssetsByCreator", + "getAssetsByGroup", + "getAssetsByOwner", + "getAssetSignatures", + "getNftEditions", + "searchAssets", + "alchemy_getTokenAccountsByOwner", + "get_solana_token_metadata", + "getTokenAccounts", + "getTransaction", + "alchemy_getProgramAccounts", + "alchemy_getTokenAccountsByDelegate", + "alchemy_getTokenLargestAccounts", + "sendStakedTransaction", + "alchemy_requestFeePayer", + "simulateTransaction" + ], + "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 + } + ] +} diff --git a/src/openrpc/chains/_components/solana/methods.yaml b/src/openrpc/chains/_components/solana/methods.yaml index 51996d093..8735b5e05 100644 --- a/src/openrpc/chains/_components/solana/methods.yaml +++ b/src/openrpc/chains/_components/solana/methods.yaml @@ -1079,3 +1079,58 @@ components: description: The current transaction count from the ledger. schema: $ref: ./state.yaml#/components/schemas/TransactionCount + + getTransactionsForAddress: + name: getTransactionsForAddress + description: >- + Returns confirmed transactions that include the given address, with + support for pagination, sort order, and filtering by status, token + account activity, slot range, or block time range. + params: + - name: Account address + required: true + description: The account address as a base-58 encoded string. + schema: + $ref: "./base-types.yaml#/components/schemas/Pubkey" + - name: Configuration + required: false + description: Optional configuration object. + schema: + $ref: "./transaction.yaml#/components/schemas/GetTransactionsForAddressConfig" + examples: + - name: getTransactionsForAddress example (signatures) + params: + - name: Account address + value: "GwsPP9HHhCvEQeu3HTFzsVL6DEtnnYw4ALEtA3fMBC9Q" + - name: Configuration + value: + transactionDetails: "signatures" + limit: 3 + sortOrder: "desc" + result: + name: Transaction signatures result + value: + data: + - signature: "5UfDuX7WXcCJZMDKMaNbDcBrF5P3dHBvxFAGVmNXEWpLVFGHqvFbKHq7gVd4qePXkY2Lw3nZbM3fhKJtxqzCNVk" + slot: 251000042 + err: null + blockTime: 1710000123 + confirmationStatus: "finalized" + - signature: "3kxVBJHbNbBWU4Yr5rHzVyxMzNh4bzmGP7w5dQtmjqBT4e6Dkv2FvGLxHyNE9MbqUjuAzXsW8aM7EkXLsQNpYm3" + slot: 250999987 + err: null + blockTime: 1710000099 + confirmationStatus: "finalized" + - signature: "2mJkNpXyWv9NQxbLfBhzGCu3FbVeKxDsTHAjpMwYRN6nBqe5RsEzKWa4VJHoMtNcUxbPyL1sdEo8RvGkLz4DpAf" + slot: 250999801 + err: null + blockTime: 1710000011 + confirmationStatus: "finalized" + paginationToken: "2mJkNpXyWv9NQxbLfBhzGCu3FbVeKxDsTHAjpMwYRN6nBqe5RsEzKWa4VJHoMtNcUxbPyL1sdEo8RvGkLz4DpAf" + result: + name: Transactions result + description: >- + An object containing an array of transaction data and a pagination + token for fetching the next page. + schema: + $ref: "./transaction.yaml#/components/schemas/GetTransactionsForAddressResult" diff --git a/src/openrpc/chains/_components/solana/transaction.yaml b/src/openrpc/chains/_components/solana/transaction.yaml index 5223e7472..8526b7963 100644 --- a/src/openrpc/chains/_components/solana/transaction.yaml +++ b/src/openrpc/chains/_components/solana/transaction.yaml @@ -341,6 +341,119 @@ components: - type: number nullable: true description: Transaction version. + GetTransactionsForAddressConfig: + title: GetTransactionsForAddress Configuration + type: object + properties: + transactionDetails: + type: string + description: >- + Level of transaction detail to return. `signatures` returns only + signature objects; `full` returns complete transaction data. + enum: + - signatures + - full + default: signatures + sortOrder: + type: string + description: Order in which to return transactions. `desc` returns newest first; `asc` returns oldest first. + enum: + - desc + - asc + default: desc + limit: + type: integer + description: Maximum number of results to return. Maximum is 1,000. + default: 1000 + paginationToken: + type: string + description: >- + Opaque token returned by a previous response. When provided, + the response begins after the transaction identified by this token, + overriding any `before` parameter. + before: + type: string + description: >- + Return transactions older than this transaction signature (exclusive). + Ignored when `paginationToken` is provided. + until: + type: string + description: >- + Stop searching at this transaction signature (exclusive). Results will + not include the transaction identified by this signature. + encoding: + type: string + description: Encoding format for transaction data. Only applies when `transactionDetails` is `full`. + enum: + - json + - jsonParsed + - base64 + - base58 + default: json + maxSupportedTransactionVersion: + type: integer + description: >- + The maximum transaction version to return. Only applies when + `transactionDetails` is `full`. + commitment: + type: string + description: >- + Commitment level for the request. Must be `confirmed` or `finalized`; + passing `processed` returns an error. Defaults to `finalized`. + enum: + - confirmed + - finalized + default: finalized + filters: + $ref: "#/components/schemas/GetTransactionsForAddressFilters" + GetTransactionsForAddressFilters: + title: GetTransactionsForAddress Filters + type: object + properties: + blockTime: + $ref: "#/components/schemas/RangeFilter" + description: >- + Restrict results to transactions whose `blockTime` falls within + this range (Unix timestamps, seconds). + slot: + $ref: "#/components/schemas/RangeFilter" + description: Restrict results to transactions within this slot range. + RangeFilter: + title: Range Filter + type: object + properties: + gte: + type: integer + description: Match values greater than or equal to this bound. + gt: + type: integer + description: Match values strictly greater than this bound. + lte: + type: integer + description: Match values less than or equal to this bound. + lt: + type: integer + description: Match values strictly less than this bound. + GetTransactionsForAddressResult: + title: GetTransactionsForAddress Result + type: object + properties: + data: + type: array + description: >- + Array of transaction results. Each item is a signature object when + `transactionDetails` is `signatures`, or a full transaction object + when `transactionDetails` is `full`. + items: + oneOf: + - $ref: "#/components/schemas/SignatureInfo" + - $ref: "#/components/schemas/TransactionDetails" + paginationToken: + type: string + nullable: true + description: >- + Token to pass as `paginationToken` in the next request to retrieve + the following page of results. `null` when there are no more results. SlotConfig: title: Slot Configuration type: object diff --git a/src/openrpc/chains/solana/solana.yaml b/src/openrpc/chains/solana/solana.yaml index 30d0c7e1c..49cb62923 100644 --- a/src/openrpc/chains/solana/solana.yaml +++ b/src/openrpc/chains/solana/solana.yaml @@ -71,6 +71,8 @@ methods: ../_components/solana/methods.yaml#/components/methods/getTokenLargestAccounts - $ref: ../_components/solana/methods.yaml#/components/methods/getTokenSupply - $ref: ../_components/solana/methods.yaml#/components/methods/getTransactionCount + - $ref: >- + ../_components/solana/methods.yaml#/components/methods/getTransactionsForAddress - $ref: ../_components/solana/methods.yaml#/components/methods/getVersion - $ref: ../_components/solana/methods.yaml#/components/methods/getVoteAccounts - $ref: ../_components/solana/methods.yaml#/components/methods/isBlockhashValid