Skip to content

feat(core): add Jito sendBundle RPC support#480

Merged
MicaiahReid merged 2 commits intosolana-foundation:mainfrom
serejke:jito-send-bundle
Mar 27, 2026
Merged

feat(core): add Jito sendBundle RPC support#480
MicaiahReid merged 2 commits intosolana-foundation:mainfrom
serejke:jito-send-bundle

Conversation

@serejke
Copy link
Copy Markdown
Contributor

@serejke serejke commented Jan 15, 2026

Summary

  • Add non-standard sendBundle RPC endpoint for Jito bundles imitation
  • Allows clients to submit multiple transactions that are executed sequentially
  • Useful for testing applications that use Jito bundles

Implementation details

  • Transactions are processed sequentially in the order provided
  • Forces skip_preflight: true to match Jito Block Engine behavior
  • Returns bundle ID as SHA-256 hash of comma-separated signatures (Jito-compatible)
  • If any transaction fails, the entire bundle is rejected with error indicating which transaction failed

Notes

This is not a 100% bundles implementation as they are not atomic all-or-nothing like real Jito bundles. But it's useful for testing apps that want to verify their Jito integration works.

Test plan

  • Added unit tests for empty bundle rejection
  • Added unit tests for missing context error
  • Added async tests for single transaction bundle
  • Added async tests for multiple transaction bundle with bundle ID verification
  • All tests passing: cargo test -p surfpool-core jito

@lgalabru
Copy link
Copy Markdown
Collaborator

lgalabru commented Feb 5, 2026

@serejke I'm doing a bit of triage and noticing that we had a similar PR in the past - #480.

I'd be supportive of getting of these 2 merged, would love to get your 2 cents!

@bonlime
Copy link
Copy Markdown
Contributor

bonlime commented Feb 16, 2026

@lgalabru you probably wanted to tag this PR #412
imo this feature seems use-full for testing things that are stateful and can't fit into a single transaction

@MicaiahReid MicaiahReid force-pushed the main branch 5 times, most recently from 5419677 to 2129ad9 Compare March 23, 2026 19:40
serejke and others added 2 commits March 27, 2026 08:27
Add non-standard `sendBundle` RPC endpoint for Jito bundles imitation,
allowing clients to submit multiple transactions that are executed
sequentially. This is useful for testing applications that use Jito bundles.

Key features:
- Transactions are processed sequentially in order
- Forces skip_preflight to match Jito Block Engine behavior
- Returns bundle ID as SHA-256 hash of comma-separated signatures
- If any transaction fails, the entire bundle is rejected

Note: This is not a 100% bundles implementation as they are not atomic
all-or-nothing like real Jito bundles.
Copy link
Copy Markdown
Collaborator

@MicaiahReid MicaiahReid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome! Sorry for the delay on review. I pushed a few small changes to this branch:

  • maximum of 5 txs per bundle (matching JITO)
  • clarified some comments indicating this isn't atomic. making the transactions atomic should be doable without a crazy amount of work, but I didn't want to further hold up this PR, so I made #594

@MicaiahReid MicaiahReid merged commit 7f6c356 into solana-foundation:main Mar 27, 2026
4 checks passed
@serejke serejke deleted the jito-send-bundle branch March 28, 2026 17:31
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.

4 participants