From 4de1c78a1a0122fa37a83bffa4d373c88ee9ac62 Mon Sep 17 00:00:00 2001 From: Dimitrie David Date: Mon, 26 Jan 2026 12:54:50 +0200 Subject: [PATCH 1/4] feat: add simulateBundle method and update documentation - Introduced the simulateBundle method to simulate a Jito bundle of transactions in the Solana API. - Updated the Solana API overview documentation to include the new simulateBundle endpoint. - Added necessary parameters and result schemas for simulateBundle in the OpenRPC methods and transaction specifications. - Implemented redirects for the new simulateBundle reference in the documentation. --- .../solana/solana-api-overview.mdx | 2 +- fern/docs.yml | 3 + .../chains/_components/solana/methods.yaml | 20 ++++ .../_components/solana/transaction.yaml | 109 ++++++++++++++++++ src/openrpc/chains/solana/solana.yaml | 1 + 5 files changed, 134 insertions(+), 1 deletion(-) diff --git a/fern/api-reference/solana/solana-api-overview.mdx b/fern/api-reference/solana/solana-api-overview.mdx index 1f197fc00..364fa71bb 100644 --- a/fern/api-reference/solana/solana-api-overview.mdx +++ b/fern/api-reference/solana/solana-api-overview.mdx @@ -37,4 +37,4 @@ slug: docs/solana/solana-api-overview | [`getVersion`](/docs/chains/solana/solana-api-endpoints/get-version) | [`getVoteAccounts`](/docs/chains/solana/solana-api-endpoints/get-vote-accounts) | | [`isBlockhashValid`](/docs/chains/solana/solana-api-endpoints/is-blockhash-valid) | [`minimumLedgerSlot`](/docs/chains/solana/solana-api-endpoints/minimum-ledger-slot) | | [`requestAirdrop`](/docs/chains/solana/solana-api-endpoints/request-airdrop) | [`sendTransaction`](/docs/chains/solana/solana-api-endpoints/send-transaction) | -| [`simulateTransaction`](/docs/chains/solana/solana-api-endpoints/simulate-transaction) | | +| [`simulateTransaction`](/docs/chains/solana/solana-api-endpoints/simulate-transaction) | [`simulateBundle`](/docs/chains/solana/solana-api-endpoints/simulate-bundle) | diff --git a/fern/docs.yml b/fern/docs.yml index 3c568ae52..9fdc08bf7 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -2930,6 +2930,9 @@ redirects: - source: /reference/simulatetransaction destination: /docs/node/solana/solana-api-endpoints/simulate-transaction permanent: true + - source: /reference/simulatebundle + destination: /docs/node/solana/solana-api-endpoints/simulate-bundle + permanent: true # Astar - source: /reference/eth-accounts-astar diff --git a/src/openrpc/chains/_components/solana/methods.yaml b/src/openrpc/chains/_components/solana/methods.yaml index 6d2ec8e6f..b7cdd6d26 100644 --- a/src/openrpc/chains/_components/solana/methods.yaml +++ b/src/openrpc/chains/_components/solana/methods.yaml @@ -859,6 +859,26 @@ components: schema: $ref: "./transaction.yaml#/components/schemas/SimulatedTransactionResult" + simulateBundle: + 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: + $ref: "./transaction.yaml#/components/schemas/SimulateBundleParams" + - name: Configuration + required: false + description: Optional configuration object containing additional options. + schema: + $ref: "./transaction.yaml#/components/schemas/SimulateBundleConfig" + result: + name: Simulated bundle result + description: The result of simulating the bundle. + schema: + $ref: "./transaction.yaml#/components/schemas/SimulatedBundleResult" + getSignaturesForAddress: name: getSignaturesForAddress description: Returns signatures for confirmed transactions that include the given address. diff --git a/src/openrpc/chains/_components/solana/transaction.yaml b/src/openrpc/chains/_components/solana/transaction.yaml index 757fb70c7..5223e7472 100644 --- a/src/openrpc/chains/_components/solana/transaction.yaml +++ b/src/openrpc/chains/_components/solana/transaction.yaml @@ -100,6 +100,115 @@ components: type: object nullable: true description: Inner instructions if `innerInstructions` is true. + SimulateBundleParams: + title: SimulateBundle Parameters + type: object + properties: + encodedTransactions: + type: array + items: + type: string + description: Array of encoded, serialized transactions to simulate. + required: + - encodedTransactions + SimulateBundleConfig: + 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: + - $ref: "#/components/schemas/SimulateBundleAccountsConfig" + - 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: + - $ref: "#/components/schemas/SimulateBundleAccountsConfig" + - 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 + SimulateBundleAccountsConfig: + title: SimulateBundle Accounts Configuration + type: object + properties: + addresses: + type: array + items: + $ref: "./base-types.yaml#/components/schemas/Pubkey" + description: Base-58 encoded account addresses to capture. + encoding: + $ref: "./base-types.yaml#/components/schemas/Encoding" + description: Encoding used for returned account data. + default: base64 + SimulatedBundleTransactionResult: + 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 + items: + type: string + description: Log messages output during execution. + preExecutionAccounts: + type: array + nullable: true + items: + $ref: "./account.yaml#/components/schemas/AccountInfo" + description: Account states before execution. + postExecutionAccounts: + type: array + nullable: true + items: + $ref: "./account.yaml#/components/schemas/AccountInfo" + description: Account states after execution. + unitsConsumed: + type: integer + description: Compute budget units consumed. + returnData: + $ref: "#/components/schemas/ReturnData" + SimulatedBundleResult: + 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: + $ref: "#/components/schemas/SimulatedBundleTransactionResult" ReturnData: title: Return Data type: object diff --git a/src/openrpc/chains/solana/solana.yaml b/src/openrpc/chains/solana/solana.yaml index 03464fd1f..7ad697ad7 100644 --- a/src/openrpc/chains/solana/solana.yaml +++ b/src/openrpc/chains/solana/solana.yaml @@ -80,6 +80,7 @@ methods: - $ref: ../_components/solana/methods.yaml#/components/methods/requestAirdrop - $ref: ../_components/solana/methods.yaml#/components/methods/sendTransaction - $ref: ../_components/solana/methods.yaml#/components/methods/simulateTransaction + - $ref: ../_components/solana/methods.yaml#/components/methods/simulateBundle x-bot-ignore: - getAsset - getAssetProof From c9c903c3edc57f0a187d08a794c8f83bbae49b6a Mon Sep 17 00:00:00 2001 From: Dimitrie David Date: Mon, 26 Jan 2026 13:21:32 +0200 Subject: [PATCH 2/4] docs: add simulateBundle to compute unit costs table --- .../pricing-resources/pricing/compute-unit-costs.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/fern/api-reference/pricing-resources/pricing/compute-unit-costs.mdx b/fern/api-reference/pricing-resources/pricing/compute-unit-costs.mdx index 4c4029101..e28bf2b65 100644 --- a/fern/api-reference/pricing-resources/pricing/compute-unit-costs.mdx +++ b/fern/api-reference/pricing-resources/pricing/compute-unit-costs.mdx @@ -112,6 +112,7 @@ For more details, please check out the [Compute Units](/reference/compute-units# | minimumLedgerSlot | 20 | | getBlockHeight | 20 | | simulateTransaction | 20 | +| simulateBundle | 20 | | getFeeCalculatorForBlockhash | 11 | | getSignatureStatuses | 20 | | getRecentBlockhash | 10 | From 4563e943e3d849858f71911625621edf5dec78e3 Mon Sep 17 00:00:00 2001 From: Dimitrie David Date: Mon, 26 Jan 2026 17:59:29 +0200 Subject: [PATCH 3/4] docs: update redirect for simulateBundle reference to include Jito prefix --- fern/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fern/docs.yml b/fern/docs.yml index 9fdc08bf7..ab2e1cf1d 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -2930,7 +2930,7 @@ redirects: - source: /reference/simulatetransaction destination: /docs/node/solana/solana-api-endpoints/simulate-transaction permanent: true - - source: /reference/simulatebundle + - source: /reference/jito-simulatebundle destination: /docs/node/solana/solana-api-endpoints/simulate-bundle permanent: true From 2c14948fb1d75cbe802a9ad86fb0ddadc04bdfe6 Mon Sep 17 00:00:00 2001 From: Sahil Aujla Date: Tue, 27 Jan 2026 11:08:19 -0500 Subject: [PATCH 4/4] Update fern/docs.yml --- fern/docs.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/fern/docs.yml b/fern/docs.yml index ab2e1cf1d..3c568ae52 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -2930,9 +2930,6 @@ redirects: - source: /reference/simulatetransaction destination: /docs/node/solana/solana-api-endpoints/simulate-transaction permanent: true - - source: /reference/jito-simulatebundle - destination: /docs/node/solana/solana-api-endpoints/simulate-bundle - permanent: true # Astar - source: /reference/eth-accounts-astar