Skip to content

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

Open
serejke wants to merge 1 commit intotxtx:mainfrom
serejke:jito-send-bundle
Open

feat(core): add Jito sendBundle RPC support#480
serejke wants to merge 1 commit intotxtx:mainfrom
serejke:jito-send-bundle

Conversation

@serejke
Copy link
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

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.
@lgalabru
Copy link
Member

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
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

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.

3 participants