From 32a45b57c2f64e67947ed4cfe581328caeee7062 Mon Sep 17 00:00:00 2001 From: trevoraron Date: Tue, 31 Mar 2026 23:33:08 -0400 Subject: [PATCH 1/5] [OpenRPC] Add getTransactionsForAddress to Solana spec Adds the new getTransactionsForAddress JSON-RPC method with support for pagination, sort order, and filtering by status, token account activity, slot range, and block time range. --- .../_components/solana/transaction.yaml | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/src/openrpc/chains/_components/solana/transaction.yaml b/src/openrpc/chains/_components/solana/transaction.yaml index 188f2c975..96fe64727 100644 --- a/src/openrpc/chains/_components/solana/transaction.yaml +++ b/src/openrpc/chains/_components/solana/transaction.yaml @@ -534,6 +534,127 @@ 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 for + `signatures` mode and 100 for `full` mode. + 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`. + filters: + $ref: "#/components/schemas/GetTransactionsForAddressFilters" + GetTransactionsForAddressFilters: + title: GetTransactionsForAddress Filters + type: object + properties: + status: + type: string + description: Filter by transaction outcome. + enum: + - any + - succeeded + - failed + default: any + blockTime: + $ref: "#/components/schemas/RangeFilter" + description: >- + Restrict results to transactions whose `blockTime` falls within + this range (Unix timestamps). Converted internally to an + approximate slot range. + slot: + $ref: "#/components/schemas/RangeFilter" + description: Restrict results to transactions within this slot range. + tokenAccounts: + type: string + description: >- + Filter by token account activity. `all` returns only transactions + that include token balances; `balanceChanged` returns only + transactions where at least one pre/post token balance differs; + `none` applies no token-account filter. + enum: + - none + - all + - balanceChanged + default: none + RangeFilter: + 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. + 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 From 9a4a991879326b3925e506290566e7858de5fdcc Mon Sep 17 00:00:00 2001 From: trevoraron Date: Mon, 27 Apr 2026 10:58:17 -0400 Subject: [PATCH 2/5] [OpenRPC] Remove status and tokenAccounts filters from getTransactionsForAddress Only slot and blockTime filters are supported in the initial release. Also adds gt/lt operators to RangeFilter to match the Rust struct. Co-Authored-By: Claude Sonnet 4.6 --- .../_components/solana/transaction.yaml | 33 +++++-------------- 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/src/openrpc/chains/_components/solana/transaction.yaml b/src/openrpc/chains/_components/solana/transaction.yaml index 96fe64727..eb36919c5 100644 --- a/src/openrpc/chains/_components/solana/transaction.yaml +++ b/src/openrpc/chains/_components/solana/transaction.yaml @@ -596,45 +596,30 @@ components: title: GetTransactionsForAddress Filters type: object properties: - status: - type: string - description: Filter by transaction outcome. - enum: - - any - - succeeded - - failed - default: any blockTime: $ref: "#/components/schemas/RangeFilter" description: >- Restrict results to transactions whose `blockTime` falls within - this range (Unix timestamps). Converted internally to an - approximate slot range. + this range (Unix timestamps, seconds). slot: $ref: "#/components/schemas/RangeFilter" description: Restrict results to transactions within this slot range. - tokenAccounts: - type: string - description: >- - Filter by token account activity. `all` returns only transactions - that include token balances; `balanceChanged` returns only - transactions where at least one pre/post token balance differs; - `none` applies no token-account filter. - enum: - - none - - all - - balanceChanged - default: none RangeFilter: title: Range Filter type: object properties: gte: type: integer - description: Inclusive lower bound of the range. + 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: Inclusive upper bound of the range. + 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 From 1de6fc23eec65957191be8786651edc6a4201581 Mon Sep 17 00:00:00 2001 From: trevoraron Date: Mon, 27 Apr 2026 11:07:31 -0400 Subject: [PATCH 3/5] [OpenRPC] Fix limit description and add commitment param to getTransactionsForAddress Max limit is 1,000 for all modes. Document commitment validation behavior. Co-Authored-By: Claude Sonnet 4.6 --- .../chains/_components/solana/transaction.yaml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/openrpc/chains/_components/solana/transaction.yaml b/src/openrpc/chains/_components/solana/transaction.yaml index eb36919c5..6f05e5813 100644 --- a/src/openrpc/chains/_components/solana/transaction.yaml +++ b/src/openrpc/chains/_components/solana/transaction.yaml @@ -556,9 +556,7 @@ components: default: desc limit: type: integer - description: >- - Maximum number of results to return. Maximum is 1,000 for - `signatures` mode and 100 for `full` mode. + description: Maximum number of results to return. Maximum is 1,000. default: 1000 paginationToken: type: string @@ -590,6 +588,15 @@ components: 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: From 056ed0ea0b3f9d99449ef214d64931b5c1b33732 Mon Sep 17 00:00:00 2001 From: trevoraron Date: Thu, 30 Apr 2026 09:17:08 -0400 Subject: [PATCH 4/5] [OpenRPC] Update getTransactionsForAddress: remove status/tokenAccounts filters, add transactionIndex, fix paginationToken format Co-Authored-By: Claude Sonnet 4.6 --- content/api-specs/chains/solana.json | 4442 ++++++++++++++++++++++++++ 1 file changed, 4442 insertions(+) create mode 100644 content/api-specs/chains/solana.json 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 + } + ] +} From 800bb3d26cd0ef876df54889ad93b816271e36b0 Mon Sep 17 00:00:00 2001 From: trevoraron Date: Mon, 11 May 2026 12:10:27 -0400 Subject: [PATCH 5/5] fix(solana): remove duplicate getTransactionsForAddress schemas Rebase conflict resolution kept both the PR's new schemas and main's existing ones, producing duplicate YAML mapping keys for GetTransactionsForAddressConfig, GetTransactionsForAddressFilters, and GetTransactionsForAddressResult. Drop main's block (including the RangeFilter helper, which was only used by it) and regenerate solana.json. Co-Authored-By: Claude Opus 4.7 (1M context) --- content/api-specs/chains/solana.json | 652 ++++++++---------- .../_components/solana/transaction.yaml | 113 --- 2 files changed, 285 insertions(+), 480 deletions(-) diff --git a/content/api-specs/chains/solana.json b/content/api-specs/chains/solana.json index f3e7f9c67..e22af32be 100644 --- a/content/api-specs/chains/solana.json +++ b/content/api-specs/chains/solana.json @@ -1239,6 +1239,29 @@ } } }, + { + "name": "getHealth", + "description": "Returns the current health of the node.", + "params": [], + "result": { + "name": "Health status", + "description": "If the node is healthy, the result is \"ok\".", + "schema": { + "title": "Health Status", + "oneOf": [ + { + "type": "string", + "description": "Result is 'ok' if healthy." + }, + { + "type": "object", + "description": "An error object if unhealthy." + } + ], + "description": "Result is 'ok' if healthy, or an error object if unhealthy." + } + } + }, { "name": "getHighestSnapshotSlot", "description": "Returns the highest slot information that the node has snapshots for.", @@ -3334,12 +3357,12 @@ }, { "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.", + "description": "Returns transaction history for a given address with advanced filtering, bidirectional sorting, and pagination. Combines the functionality of `getSignaturesForAddress` and `getTransaction` into a single call, returning up to 1,000 signatures or up to 100 full transactions per request.", "params": [ { "name": "Account address", "required": true, - "description": "The account address as a base-58 encoded string.", + "description": "Base-58 encoded public key of the account to query transaction history for.", "schema": { "title": "Pubkey", "type": "string", @@ -3349,14 +3372,15 @@ { "name": "Configuration", "required": false, - "description": "Optional configuration object.", + "description": "Optional configuration object containing transaction detail level, sort order, limit, pagination token, commitment, encoding, and filters (slot, blockTime, signature, status, tokenAccounts).", "schema": { "title": "GetTransactionsForAddress Configuration", "type": "object", + "description": "Optional configuration object containing additional settings for the query.", "properties": { "transactionDetails": { "type": "string", - "description": "Level of transaction detail to return. `signatures` returns only signature objects; `full` returns complete transaction data.", + "description": "Level of transaction detail to return. `signatures` returns basic signature info (faster). `full` returns complete transaction data, removing the need for follow-up `getTransaction` calls (requires `limit` <= 100).", "enum": [ "signatures", "full" @@ -3365,78 +3389,146 @@ }, "sortOrder": { "type": "string", - "description": "Order in which to return transactions. `desc` returns newest first; `asc` returns oldest first.", + "description": "Sort order for results. `desc` returns newest first (default). `asc` returns oldest first (chronological order).", "enum": [ - "desc", - "asc" + "asc", + "desc" ], "default": "desc" }, "limit": { "type": "integer", - "description": "Maximum number of results to return. Maximum is 1,000.", + "description": "Maximum number of transactions to return. Up to 1,000 when `transactionDetails` is `signatures`, or up to 100 when `transactionDetails` is `full`.", "default": 1000 }, "paginationToken": { "type": "string", - "description": "Opaque token returned by a previous response. When provided, the response resumes from the position identified by this token." + "description": "Pagination token from a previous response (format: `\"slot:position\"`)." }, - "before": { + "commitment": { + "title": "Commitment Level", "type": "string", - "description": "Return transactions older than this transaction signature (exclusive)." + "description": "Commitment level. Only `finalized` or `confirmed` are supported; `processed` is not supported.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" }, - "until": { - "type": "string", - "description": "Stop searching at this transaction signature (exclusive). Results will not include the transaction identified by this signature." + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." }, "encoding": { "type": "string", - "description": "Encoding format for transaction data. Only applies when `transactionDetails` is `full`.", + "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`." + "description": "The maximum transaction version to return. If omitted, only legacy transactions are returned. Set to `0` to include all versioned transactions." }, "filters": { "title": "GetTransactionsForAddress Filters", "type": "object", + "description": "Advanced filtering options for narrowing down results.", "properties": { - "blockTime": { - "description": "Restrict results to transactions whose `blockTime` falls within this range (Unix timestamps). Converted internally to an approximate slot range.", - "title": "Range Filter", + "slot": { "type": "object", + "description": "Filter by slot number using comparison operators: `gte`, `gt`, `lte`, `lt`.", "properties": { "gte": { "type": "integer", - "description": "Inclusive lower bound of the range." + "description": "Include slots greater than or equal to this value." + }, + "gt": { + "type": "integer", + "description": "Include slots strictly greater than this value." }, "lte": { "type": "integer", - "description": "Inclusive upper bound of the range." + "description": "Include slots less than or equal to this value." + }, + "lt": { + "type": "integer", + "description": "Include slots strictly less than this value." } } }, - "slot": { - "description": "Restrict results to transactions within this slot range.", - "title": "Range Filter", + "blockTime": { "type": "object", + "description": "Filter by Unix timestamp using comparison operators: `gte`, `gt`, `lte`, `lt`, `eq`.", "properties": { "gte": { "type": "integer", - "description": "Inclusive lower bound of the range." + "description": "Include block times greater than or equal to this Unix timestamp." + }, + "gt": { + "type": "integer", + "description": "Include block times strictly greater than this Unix timestamp." }, "lte": { "type": "integer", - "description": "Inclusive upper bound of the range." + "description": "Include block times less than or equal to this Unix timestamp." + }, + "lt": { + "type": "integer", + "description": "Include block times strictly less than this Unix timestamp." + }, + "eq": { + "type": "integer", + "description": "Include block times exactly equal to this Unix timestamp." } } + }, + "signature": { + "type": "object", + "description": "Filter by transaction signature using comparison operators: `gte`, `gt`, `lte`, `lt`.", + "properties": { + "gte": { + "type": "string", + "description": "Include signatures greater than or equal to this base-58 encoded value." + }, + "gt": { + "type": "string", + "description": "Include signatures strictly greater than this base-58 encoded value." + }, + "lte": { + "type": "string", + "description": "Include signatures less than or equal to this base-58 encoded value." + }, + "lt": { + "type": "string", + "description": "Include signatures strictly less than this base-58 encoded value." + } + } + }, + "status": { + "type": "string", + "description": "Filter by transaction success/failure status.", + "enum": [ + "succeeded", + "failed", + "any" + ], + "default": "any" + }, + "tokenAccounts": { + "type": "string", + "description": "Filter transactions for related token accounts. `none` returns only transactions that reference the provided address. `balanceChanged` also returns transactions that modify the balance of a token account owned by the provided address. `all` returns transactions that reference the provided address or any token account owned by it.", + "enum": [ + "none", + "balanceChanged", + "all" + ], + "default": "none" } } } @@ -3446,158 +3538,103 @@ ], "examples": [ { - "name": "getTransactionsForAddress example (signatures)", + "name": "getTransactionsForAddress example", "params": [ { "name": "Account address", - "value": "GwsPP9HHhCvEQeu3HTFzsVL6DEtnnYw4ALEtA3fMBC9Q" + "value": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY" }, { "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" + "sortOrder": "desc", + "limit": 100, + "filters": { + "status": "succeeded", + "tokenAccounts": "balanceChanged" } - ], - "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.", + "name": "Transaction history", + "description": "A paginated list of transactions for the address. Each entry includes the slot, transaction index, and either a signature plus metadata (when `transactionDetails` is `signatures`) or the full transaction and meta objects (when `transactionDetails` is `full`). A `paginationToken` is returned when more results are available.", "schema": { "title": "GetTransactionsForAddress Result", "type": "object", + "description": "Paginated transaction history for the queried address.", "properties": { "data": { "type": "array", - "description": "Array of transaction results. Each item is a signature object when `transactionDetails` is `signatures`, or a full transaction object when `transactionDetails` is `full`.", + "description": "Array of transaction entries matching the query.", "items": { - "oneOf": [ - { - "title": "Signature Information", + "title": "GetTransactionsForAddress Entry", + "type": "object", + "description": "A single transaction entry returned by `getTransactionsForAddress`.", + "properties": { + "signature": { + "type": "string", + "description": "The transaction signature as a base-58 encoded string. Only present when `transactionDetails` is `signatures`." + }, + "slot": { + "type": "integer", + "description": "The slot that contains the block with the transaction." + }, + "transactionIndex": { + "type": "integer", + "description": "The zero-based index of the transaction within its block." + }, + "blockTime": { + "type": "integer", + "nullable": true, + "description": "The estimated production time of the transaction as a Unix timestamp, null if not available." + }, + "err": { "type": "object", - "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`." + "nullable": true, + "description": "Error if the transaction failed, null if it succeeded. Only present when `transactionDetails` is `signatures`." + }, + "memo": { + "type": "string", + "nullable": true, + "description": "The memo associated with the transaction, null if no memo is present. Only present when `transactionDetails` is `signatures`." + }, + "confirmationStatus": { + "type": "string", + "nullable": true, + "description": "The transaction's cluster confirmation status. Only present when `transactionDetails` is `signatures`." + }, + "version": { + "oneOf": [ + { + "type": "string" }, - "transactionIndex": { - "type": "integer", - "description": "The index of this transaction within its block." + { + "type": "number" } - } + ], + "nullable": true, + "description": "Transaction version. Only present when `transactionDetails` is `full`." }, - { - "title": "Transaction Details", + "transaction": { "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." - } - } + "description": "Full transaction data. Only present when `transactionDetails` is `full`." + }, + "meta": { + "type": "object", + "nullable": true, + "description": "Transaction status metadata. Only present when `transactionDetails` is `full`." } - ] + } } }, "paginationToken": { "type": "string", "nullable": true, - "description": "Token to pass as `paginationToken` in the next request to retrieve the following page of results. `null` when there are no more results." + "description": "Token for fetching the next page (format: `\"slot:position\"`), or null if no more results." } } } @@ -3910,6 +3947,74 @@ } } }, + { + "name": "sendTransaction", + "description": "Submits a signed transaction to the cluster for processing.", + "params": [ + { + "name": "Transaction", + "required": true, + "description": "Fully-signed Transaction, as encoded string.", + "schema": { + "type": "string" + } + }, + { + "name": "Configuration", + "required": false, + "description": "Optional configuration object.", + "schema": { + "title": "SendTransaction Configuration", + "type": "object", + "properties": { + "encoding": { + "type": "string", + "description": "Encoding used for the transaction data.", + "enum": [ + "base58", + "base64" + ], + "default": "base58" + }, + "skipPreflight": { + "type": "boolean", + "description": "Skip preflight transaction checks if `true`.", + "default": false + }, + "preflightCommitment": { + "title": "Commitment Level", + "type": "string", + "description": "Commitment level to use for preflight.", + "enum": [ + "processed", + "confirmed", + "finalized" + ], + "default": "finalized" + }, + "maxRetries": { + "type": "integer", + "description": "Maximum retries for the RPC node to send the transaction." + }, + "minContextSlot": { + "title": "Minimum Context Slot", + "type": "integer", + "description": "The minimum slot that the request can be evaluated at." + } + } + } + } + ], + "result": { + "name": "Transaction signature", + "description": "The first signature in the transaction, used as the transaction ID.", + "schema": { + "title": "Send Transaction Result", + "type": "string", + "description": "The transaction signature as a base-58 encoded string." + } + } + }, { "name": "simulateBundle", "description": "Simulates sending a Jito bundle of transactions.", @@ -4186,222 +4291,6 @@ } } } - }, - { - "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": [ @@ -4416,6 +4305,32 @@ "getAssetSignatures", "getNftEditions", "searchAssets", + "getCompressedAccount", + "getCompressedAccountProof", + "getCompressedAccountsByOwner", + "getCompressedBalance", + "getCompressedBalanceByOwner", + "getCompressedMintTokenHolders", + "getCompressedTokenAccountBalance", + "getCompressedTokenAccountsByDelegate", + "getCompressedTokenAccountsByOwner", + "getCompressedTokenBalancesByOwner", + "getCompressedTokenBalancesByOwnerV2", + "getCompressionSignaturesForAccount", + "getCompressionSignaturesForAddress", + "getCompressionSignaturesForOwner", + "getCompressionSignaturesForTokenOwner", + "getLatestCompressionSignatures", + "getLatestNonVotingSignatures", + "getMultipleCompressedAccountProofs", + "getMultipleCompressedAccounts", + "getMultipleNewAddressProofs", + "getMultipleNewAddressProofsV2", + "getTransactionWithCompressionInfo", + "getValidityProof", + "getValidityProofV2", + "getIndexerHealth", + "getIndexerSlot", "alchemy_getTokenAccountsByOwner", "get_solana_token_metadata", "getTokenAccounts", @@ -4424,8 +4339,11 @@ "alchemy_getTokenAccountsByDelegate", "alchemy_getTokenLargestAccounts", "sendStakedTransaction", + "alchemy_requestFeePayer_prefundRent", "alchemy_requestFeePayer", - "simulateTransaction" + "simulateTransaction", + "sendTransaction", + "getHealth" ], "x-auth-params": [ { @@ -4439,4 +4357,4 @@ "required": true } ] -} +} \ No newline at end of file diff --git a/src/openrpc/chains/_components/solana/transaction.yaml b/src/openrpc/chains/_components/solana/transaction.yaml index 6f05e5813..188f2c975 100644 --- a/src/openrpc/chains/_components/solana/transaction.yaml +++ b/src/openrpc/chains/_components/solana/transaction.yaml @@ -534,119 +534,6 @@ 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