{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"codeGuideFiles":[],"seo":{"title":"Rakurai Activation CLI","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":"rakurai-activation-cli"},"children":["Rakurai Activation CLI"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview"},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rakurai Activation CLI"]}," is a CLI tool to manage the Rakurai activation setup for validator operators. It interacts with a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["multisig-based Solana smart contract"]}," responsible for enabling or disabling the Rakurai scheduler.",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"Each validator must create a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rakurai Activation Account (RAA)"]}," — a PDA jointly controlled by both the validator and Rakurai. Enabling the Rakurai scheduler requires ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["2/2 multisig approval"]}," (both validator and Rakurai). Disabling the scheduler can be done ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["unilaterally by either party (1/2 multisig)"]},". Validators can also configure the percentage of block rewards they want to retain (0–100%). The remaining portion is distributed to stakers."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#1-init"},"children":["Initialize RAA"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#3-update-commission"},"children":["Update commissions"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#2-scheduler-control"},"children":["Enable/disable the scheduler"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#4-show"},"children":["Display RAA State"]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"installation"},"children":["Installation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ensure you have ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://doc.rust-lang.org/cargo/getting-started/installation.html#install-rust-and-cargo"},"children":["Rust and Cargo"]}]}," installed before proceeding."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can either ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["build from source"]}," or use the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["prebuilt binary from the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["release/downloads"]}," directory"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"option-1-use-prebuilt-cli"},"children":["Option 1: Use Prebuilt CLI"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Export the prebuilt CLI binary to your PATH\necho \"export PATH=\\\"$(pwd)/release/downloads:\\$PATH\\\"\" >> ~/.bashrc && source ~/.bashrc\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"option-2-build-from-source"},"children":["Option 2: Build from Source"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sh","header":{"controls":{"copy":{}}},"source":"# Build the CLI tool\ncargo b --release -p rakurai_cli\n\n# Export the CLI path\necho \"export PATH=\\\"$(pwd)/target/release/:\\$PATH\\\"\"\n","lang":"sh"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"verify-installation"},"children":["Verify Installation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sh","header":{"controls":{"copy":{}}},"source":"which rakurai-activation\n","lang":"sh"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"usage"},"children":["Usage"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Run the CLI tool using:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sh","header":{"controls":{"copy":{}}},"source":"rakurai-activation [OPTIONS] --program-id <PROGRAM_ID> <COMMAND>\n","lang":"sh"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"global-options"},"children":["Global Options"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These options are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["critical"]}," and must be used with care:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-k, --keypair <PATH>"]},": Path to the Solana keypair file. This keypair must have authority to send transactions—typically the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["validator identity keypair"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-u, --url <URL>"]},": RPC URL of the target Solana cluster or moniker (for testnet cluster use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-ut"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-u https://api.testnet.solana.com"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-p, --program-id <PROGRAM_ID>"]},": Deployed Rakurai Activation program ID.",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Mainnet:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rAKACC6Qw8HYa87ntGPRbfYEMnK2D9JVLsmZaKPpMmi"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Testnet:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pmQHMpnpA534JmxEdwY3ADfwDBFmy5my3CeutHM2QTt"]}]}]}]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["❗ Incorrect keypair, RPC, or program ID will result in failed transactions."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1.-init"},"children":["1. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["init"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"description"},"children":["Description"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To create a Rakurai Activation Account (RAA), you must provide your validator's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["vote_pubkey"]}," along with its corresponding ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["node identity"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["keypair"]}," as the signer. This node identity will be used later to authorize or modify RAA parameters."," ","You can also specify a Validator commission percentage on block rewards ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["block_reward_commission_bps"]}," in basis points (BPS).The default is 100% (10,000 BPS), meaning the validator keeps the full block reward. If you set it below 100%, the remaining portion of the block reward is distributed to stakers, proportional to their stake, by the Reward Distribution program. This commission is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["independent"]}," of Solana’s voting commission and applies only to block rewards."," ","Creating an RAA is a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["mandatory step"]}," for running a Rakurai-Solana validator"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"usage-1"},"children":["Usage"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sh","header":{"controls":{"copy":{}}},"source":"rakurai-activation -p <PROGRAM_ID> init --vote_pubkey <VOTE_PUBKEY> --keypair <IDENTITY_KEYPAIR> --url <RPC_URL>\n","lang":"sh"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"arguments"},"children":["Arguments"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-v, --vote_pubkey <PUBKEY>"]},": Validator's vote account public key."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"optional-argument"},"children":["Optional Argument"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-c, --block_reward_commission_bps <VALUE>"]},": Validator's commission on block rewards in basis points (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["500"]}," for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5%"]},")."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2.-scheduler-control"},"children":["2. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scheduler-control"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"description-1"},"children":["Description"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Controls the Rakurai scheduler by enabling or disabling it."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["enable"]}," the scheduler, both the validator and Rakurai must independently submit a transaction. The scheduler becomes active ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["only after both sides"]}," have performed the enable transaction."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["disable"]}," the scheduler, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["either party"]}," (the validator or Rakurai) can submit a disable transaction. Only one side is required to disable it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["By default, this command ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["enables"]}," the scheduler. To explicitly disable it, use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-d"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--disable_scheduler"]}," flag."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"usage-2"},"children":["Usage"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sh","header":{"controls":{"copy":{}}},"source":"rakurai-activation -p <PROGRAM_ID> scheduler-control --identity_pubkey <IDENTITY_PUBKEY> --keypair <IDENTITY_KEYPAIR> --url <RPC_URL> \n","lang":"sh"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"arguments-1"},"children":["Arguments"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-d, --disable_scheduler"]},": Flag to disable the scheduler (default: enable)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-i, --identity_pubkey <PUBKEY>"]},": Validator identity account pubkey."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3.-update-commission"},"children":["3. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["update-commission"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"description-2"},"children":["Description"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates the validator's block reward commission."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Validators can update their share of the block reward at any time, independent of Rakurai. Only the validator can change their commission, and the change will take effect starting from the next epoch. However, if the validator has not yet passed the first leader turn of the current epoch, the new commission will be applied in the following epoch."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"usage-3"},"children":["Usage"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sh","header":{"controls":{"copy":{}}},"source":"rakurai-activation -p <PROGRAM_ID> update-commission --block_reward_commission_bps <VALUE> --identity_pubkey <IDENTITY_PUBKEY> --keypair <IDENTITY_KEYPAIR> --url <RPC_URL>\n","lang":"sh"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"arguments-2"},"children":["Arguments"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-c, --block_reward_commission_bps <VALUE>"]},": Commission percentage on block rewards in base points (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["500"]}," means ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5%"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-i, --identity_pubkey <PUBKEY>"]},": Validator identity account pubkey."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4.-show"},"children":["4. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["show"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"description-3"},"children":["Description"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Displays the current state of the Rakurai Activation Account (RAA)."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Scheduler status"]},": Whether the Rakurai scheduler is enabled or disabled."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Validator commission"]},": The current block reward commission in basis points."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authority"]},": The account authorized to manage the Rakurai Activation Account (RAA)."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This command provides an overview of the RAA's current configuration and state."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"usage-4"},"children":["Usage"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sh","header":{"controls":{"copy":{}}},"source":"rakurai-activation -p <PROGRAM_ID> show --identity_pubkey <IDENTITY_PUBKEY> --url <RPC_URL>\n","lang":"sh"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"arguments-3"},"children":["Arguments"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["-i, --identity_pubkey <PUBKEY>"]},": Validator identity account pubkey."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]}]},"headings":[{"value":"Rakurai Activation CLI","id":"rakurai-activation-cli","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"Installation","id":"installation","depth":2},{"value":"Option 1: Use Prebuilt CLI","id":"option-1-use-prebuilt-cli","depth":3},{"value":"Option 2: Build from Source","id":"option-2-build-from-source","depth":3},{"value":"Verify Installation","id":"verify-installation","depth":3},{"value":"Usage","id":"usage","depth":2},{"value":"Global Options","id":"global-options","depth":3},{"value":"1. init","id":"1.-init","depth":3},{"value":"Description","id":"description","depth":4},{"value":"Usage","id":"usage-1","depth":4},{"value":"Arguments","id":"arguments","depth":4},{"value":"Optional Argument","id":"optional-argument","depth":3},{"value":"2. scheduler-control","id":"2.-scheduler-control","depth":3},{"value":"Description","id":"description-1","depth":4},{"value":"Usage","id":"usage-2","depth":4},{"value":"Arguments","id":"arguments-1","depth":4},{"value":"3. update-commission","id":"3.-update-commission","depth":3},{"value":"Description","id":"description-2","depth":4},{"value":"Usage","id":"usage-3","depth":4},{"value":"Arguments","id":"arguments-2","depth":4},{"value":"4. show","id":"4.-show","depth":3},{"value":"Description","id":"description-3","depth":4},{"value":"Usage","id":"usage-4","depth":4},{"value":"Arguments","id":"arguments-3","depth":4}],"frontmatter":{"seo":{"title":"Rakurai Activation CLI"}},"lastModified":"2026-06-22T14:22:45.000Z"},"slug":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/cli/readme","userData":{"isAuthenticated":false,"teams":["anonymous"]}}