{"templateId":"markdown","sharedDataIds":{},"props":{"codeGuideFiles":[],"seo":{"title":"Running Geyser with Rakurai Client","description":"Learn how to work with Staking API for managing deposits, withdrawals, and stake pool information."},"dynamicMarkdocComponents":[],"metadata":{"type":"markdown"},"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"running-geyser-with-rakurai-client"},"children":["Running Geyser with Rakurai Client"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview"},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The struct layout and padding of the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rakurai Validator"]}," are slightly different from the standard ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Agave/Solana validator"]},". Because of this, you cannot directly run any Geyser with the Rakurai validator and vice-verse. To run any Geyser with Rakurai Validator, you must use the Geyser-related crates from the Rakurai repository and build your Geyser with them."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"required-patch"},"children":["Required Patch"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Apply the following patch to your Geyser’s top-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Cargo.toml"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"toml","header":{"controls":{"copy":{}}},"source":"[patch.crates-io]\nagave-geyser-plugin-interface = { git = \"https://github.com/rakurai-io/rakurai-validator.git\", package = \"agave-geyser-plugin-interface\", tag = \"release/v3.1.8-rakurai.0\" }\nsolana-account-decoder = { git = \"https://github.com/rakurai-io/rakurai-validator.git\", package = \"solana-account-decoder\", tag = \"release/v3.1.8-rakurai.0\" }\nsolana-transaction-context = { git = \"https://github.com/rakurai-io/rakurai-validator.git\", package = \"solana-transaction-context\", tag = \"release/v3.1.8-rakurai.0\" }\nsolana-transaction-status = { git = \"https://github.com/rakurai-io/rakurai-validator.git\", package = \"solana-transaction-status\", tag = \"release/v3.1.8-rakurai.0\" }\n\n[workspace.lints.rust]\ndeprecated = \"allow\"\n","lang":"toml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["🚨 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["CRITICAL:"]}," The patch release tag ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["must exactly match"]}," the Rakurai validator version you are running (or will run with the Geyser plugin). A mismatch can cause ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["validator crashes"]}," due to struct/ABI incompatibility."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"build-steps"},"children":["Build Steps"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After applying the patch:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"cargo clean\ncargo build --release\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Then run your Geyser plugin as usual."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]}]},"headings":[{"value":"Running Geyser with Rakurai Client","id":"running-geyser-with-rakurai-client","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"Required Patch","id":"required-patch","depth":2},{"value":"Build Steps","id":"build-steps","depth":2}],"frontmatter":{"seo":{"title":"Running Geyser with Rakurai Client"}},"lastModified":"2026-04-17T04:12:50.000Z"},"slug":"/docs/services/rakurai_jito_private/running-geyser-with-rakurai-client","userData":{"isAuthenticated":false,"teams":["anonymous"]}}