Skip to content

[docs-agent] Add Solana Jito bundle methods (sendBundle, getBundleStatuses, getTipAccounts, getInflightBundleStatuses) - #1502

Draft
alchemy-bot wants to merge 8 commits into
mainfrom
docs/solana-jito-bundle-methods
Draft

[docs-agent] Add Solana Jito bundle methods (sendBundle, getBundleStatuses, getTipAccounts, getInflightBundleStatuses)#1502
alchemy-bot wants to merge 8 commits into
mainfrom
docs/solana-jito-bundle-methods

Conversation

@alchemy-bot

@alchemy-bot alchemy-bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a dedicated Solana Jito Bundles and Transactions section under the Solana tab (styled after the Solana Photon API section), containing 4 methods proxied on the standard Solana JSON-RPC endpoint (solana-mainnet.g.alchemy.com/v2/{apiKey}), each at 40 CU:

  • sendBundle: submit a bundle of up to 5 signed transactions for atomic, sequential execution.
  • getBundleStatuses: query the on-chain landing status of one or more bundle IDs.
  • getTipAccounts: retrieve the 8 static Jito tip accounts.
  • getInflightBundleStatuses: query in-flight status (Pending / Landed / Failed / Invalid) within the block engine's 5-minute look-back window.

Each method has a request/response example and links out to Jito's Low Latency Transaction Send docs for context.

Files touched

  • src/openrpc/alchemy/solana-jito/solana-jito.yamlnew product-level OpenRPC spec (mirrors solana-photon/). $refs the 4 method definitions from the shared _components/solana/methods.yaml.
  • src/openrpc/chains/_components/solana/methods.yaml — 4 new method definitions (with x-compute-units: 40, realistic examples, cross-links).
  • src/openrpc/chains/_components/solana/transaction.yaml — 5 new schemas: SendBundleConfig, BundleStatus, BundleStatusesResult, InflightBundleStatus, InflightBundleStatusesResult.
  • content/api-reference/solana/solana-jito-bundles-overview.mdxnew overview page: background, how the auction works, endpoints, methods table, related links.
  • content/docs.yml — new section under Solana tab, placed right after Solana Photon API:
    - section: Solana Jito Bundles and Transactions
      path: api-reference/solana/solana-jito-bundles-overview.mdx
      contents:
        - api: Solana Jito Bundles and Transactions
          api-name: solana-jito
          flattened: true
  • content/api-reference/pricing-resources/pricing/compute-unit-costs.mdx — new "Solana: Jito Bundles and Transactions" CU section (marker cu:auto product="solana-jito") with the 4 methods.

The chain spec (src/openrpc/chains/solana/solana.yaml) is unchanged — the methods live only in the new alchemy product spec and the shared _components/solana/methods.yaml. Because alchemy/ specs aren't touched by Daikon, no x-bot-ignore is needed.

Status: DRAFT until backend ships

Victor confirmed in Slack that these methods are not yet enabled in production on the Solana endpoint; verified via live curl to solana-mainnet.g.alchemy.com/v2/docs-demo that sendBundle, getTipAccounts, and getInflightBundleStatuses currently return Unsupported method. Only simulateBundle is recognized today.

Keeping this PR in draft until the backend feature lands. Try It on the Vercel preview will fail with -32600 Unsupported method on the 4 new endpoints until then; that's expected pre-launch.

Linear

DOCS-176 — https://linear.app/alchemyapi/issue/DOCS-176/solana-jito-bundles-4-method-pages-under-chainssolana

Requested by

@victorbware (via Slack thread)

…tuses, getTipAccounts, getInflightBundleStatuses)

Documents 4 Jito bundle methods that Alchemy will proxy on the Solana JSON-RPC endpoint (`solana-mainnet.g.alchemy.com/v2/{apiKey}`), each costing 40 CU:

- `sendBundle`: submit a bundle of up to 5 signed transactions for atomic, sequential execution.
- `getBundleStatuses`: query the on-chain landing status of one or more bundle IDs.
- `getTipAccounts`: retrieve the 8 static Jito tip accounts.
- `getInflightBundleStatuses`: query in-flight status (Pending/Landed/Failed/Invalid) within the block engine's 5-minute look-back window.

Each method has request/response examples and links out to Jito's canonical docs. The methods are guarded by `x-bot-ignore` so Daikon's daily sync does not strip them before chain-config catches up.

Refs DOCS-176

Requested-by: @victorbware
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

🔗 Preview Mode

Name Status Preview Updated (UTC)
Alchemy Docs ✅ Ready 🔗 Visit Preview Aug 5, 2026, 3:25 PM

…ction (like Photon)

Moves the 4 Jito bundle methods (`sendBundle`, `getBundleStatuses`, `getTipAccounts`, `getInflightBundleStatuses`) out of the standard Solana JSON-RPC spec into their own alchemy/solana-jito product spec + overview page, matching the Solana Photon API pattern per Victor's request.

Changes vs prior commit:
- New `src/openrpc/alchemy/solana-jito/solana-jito.yaml` product spec (mirrors solana-photon layout).
- New `content/api-reference/solana/solana-jito-bundles-overview.mdx` overview page with background, auction explainer, endpoints, methods table, and related-methods section.
- `content/docs.yml` gets a new `section: Solana Jito Bundles and Transactions` under the Solana tab, placed right after Solana Photon API.
- Method $refs and x-bot-ignore entries reverted in `src/openrpc/chains/solana/solana.yaml` (methods now live only in the alchemy product spec, alchemy specs aren't managed by Daikon).
- "Jito bundle methods" table reverted from `solana-api-overview.mdx`.
- 4 CU rows moved from the Solana Standard JSON-RPC Methods table into a new "Solana: Jito Bundles and Transactions" CU section on compute-unit-costs.mdx (marker `cu:auto product="solana-jito"`).
- Cross-links in method descriptions updated to the new Photon-style URL pattern (`/docs/chains/solana/solana-jito-bundles-and-transactions/solana-jito-bundles-and-transactions/<method-slug>`).

Refs DOCS-176

Requested-by: @victorbware
…ming, Mainnet-only

Per Victor's follow-up:

- Overview page background no longer opens with "Alchemy proxies Jito's ... methods" framing; it opens directly with what a bundle IS.
- 'Endpoints' section renamed to 'Endpoint' (single URL) and updated to state Mainnet only, with Devnet explicitly called out as unsupported.
- `src/openrpc/alchemy/solana-jito/solana-jito.yaml` drops the Solana Devnet server entry and drops the 'proxied through Alchemy' phrasing in the info description.
- Compute Unit Costs blurb for the Jito section similarly reworded to describe bundles directly rather than Alchemy's proxy role.

Refs DOCS-176

Requested-by: @victorbware
Per Victor's follow-up: make it clear these 4 methods are not available on the free tier.

- Overview page: new `<Warning>` callout at the top of the page above the fold noting paid-plan requirement, plus a mention in the Endpoint section.
- Each method's description (`sendBundle`, `getBundleStatuses`, `getTipAccounts`, `getInflightBundleStatuses`) now opens with an explicit "Available on paid Alchemy plans (pay-as-you-go or enterprise); not available on the free tier." line, so users who deep-link to a method endpoint page see it too.
- Compute Unit Costs blurb for the Jito section notes the paid-plan requirement.

Refs DOCS-176

Requested-by: @victorbware
…docs-demo)

Per Victor's follow-up: Jito bundle methods are paid-plan only, so the Try It form should not pre-populate a working demo key. Users need to plug in their own API key on a paid plan.

- `src/utils/generateRpcSpecs.ts`: preserve `x-auth-params` from the source spec if it's already declared (as a non-empty array). Previously the generator unconditionally injected the `docs-demo` default, clobbering any per-spec override. Other specs unaffected: they still get the `docs-demo` default because they don't declare `x-auth-params` in the source.
- `src/openrpc/alchemy/solana-jito/solana-jito.yaml`: declare `x-auth-params` with `default: YOUR_API_KEY` and a description that points at the paid signup flow. Try It form now shows `YOUR_API_KEY` instead of `docs-demo`, so users have to swap it out before making a real request.

Refs DOCS-176

Requested-by: @victorbware
…non-empty params

Fern strips `params: []` from the JSON-RPC body when an OpenRPC method declares zero params (confirmed by inspecting the rendered curl for Solana Core `getHealth` on prod). Solana Core RPC tolerates missing `params`; the Alchemy Jito proxy's serde is strict and returns `-32600 missing field 'params'`.

Docs-side workaround: give `getTipAccounts` a single optional `Placeholder` param with schema `type: object, default: {}`, and add `{}` to the example's params array. Fern now serializes the request as:

    {"jsonrpc":"2.0","id":1,"method":"getTipAccounts","params":[{}]}

Verified against Jito's block engine directly (`mainnet.block-engine.jito.wtf/api/v1/getTipAccounts`) that `params: [{}]` returns the 8 tip accounts. Alchemy's proxy forwards to Jito so the same shape should work through the proxy.

Placeholder param is optional with a default, so the form field shows pre-filled `{}` and the description tells users to leave it alone. Not the prettiest UX, but the alternative is fixing the proxy backend to accept missing `params` (per JSON-RPC 2.0 spec, which says params is optional).

Refs DOCS-176

Requested-by: @victorbware
…getTipAccounts, getInflightBundleStatuses

Per Victor's follow-up: swap the paraphrased descriptions on the three non-sendBundle Jito methods for Jito's own docs wording.

- `getBundleStatuses`: full Jito description including the `getSignatureStatuses` + `searchTransactionHistory: false` + `MAX_RECENT_BLOCKHASHES` (300) explainer.
- `getTipAccounts`: Jito's exact wording ("Retrieves the tip accounts designated for tip payments for bundles. The tip accounts have remained constant...").
- `getInflightBundleStatuses`: Jito's exact wording plus the four Failed / Pending / Landed / Invalid bullet definitions.

Also expanded the `getInflightBundleStatuses` example from 2 to 5 bundle IDs to match Jito's canonical example verbatim. Kept the paid-plan opener line on each method (from the earlier paid-plan gating pass) and the reference link to Jito's docs.

sendBundle description was already based on Jito's text and wasn't in Victor's list, so left as-is.

Refs DOCS-176

Requested-by: @victorbware
… block

The bare ``` fenced code block for the endpoint URL was hitting `remark-lint-fenced-code-flag` ("Unexpected missing fenced code language flag in info string, expected keyword"). Added `text` as the language tag.

Refs DOCS-176

Requested-by: @victorbware
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants