Protobuf definitions for searchers to submit bundles.
Important: The
Role.SEARCHERenum value is3in this repo, unlike Jito protos whereSEARCHER = 1. Make sure to useRole.SEARCHER(not a hardcoded value) to avoid compatibility issues.
auth.proto- Authentication service for obtaining access tokenssearcher.proto- Searcher service for submitting bundlesbundle.proto- Bundle message definitionpacket.proto- Packet and metadata definitionsshared.proto- Shared header types
Use protoc with your language's gRPC plugin to generate client code:
protoc --proto_path=proto \
--go_out=. --go-grpc_out=. \
proto/auth.proto proto/searcher.protoFor Rust with tonic, add to your build.rs:
tonic_build::configure()
.build_server(false)
.compile(&["proto/auth.proto", "proto/searcher.proto"], &["proto"])?;- Call
AuthService.GenerateAuthChallengewithRole.SEARCHER(3) and your pubkey - Sign the challenge:
sign(pubkey || challenge)with your private key - Call
AuthService.GenerateAuthTokenswith the challenge and signature - Use the
access_tokenin theAuthorization: Bearer <token>header - Refresh with
AuthService.RefreshAccessTokenwhen the token expires
- Authenticate (see above)
- Create a
Bundlewith transactions asPacketmessages - Call
SearcherService.SendBundle - Receive a UUID for tracking