{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"codeGuideFiles":[],"seo":{"title":"Block Reward Distribution to Stakers","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":"block-reward-distribution-to-stakers"},"children":["Block Reward Distribution to Stakers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Rakurai validators can share ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["block rewards"]}," with their stakers using a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merkle proof-based"]}," distribution flow powered by the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme"},"children":["Reward Distribution program"]},". This guide covers the full process — from enabling distribution on-chain to how rewards are accumulated, calculated, and claimed each epoch."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"1.-background"},"children":["1. Background"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1.1.-no-native-protocol-support"},"children":["1.1. No native protocol support"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Solana's staking protocol distributes ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["inflation / voting rewards"]}," to stakers automatically, but it provides ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["no on-chain mechanism to distribute block rewards"]}," (the lamports earned during leader slots) to stakers. By default, block rewards remain in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["validator identity account"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1.2.-rakurais-solution"},"children":["1.2. Rakurai's solution"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Rakurai introduces an opt-in feature that lets any validator running Rakurai share block rewards with stakers. The flow is:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configure how much of each block reward the validator retains (via the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/rakurai_activation/readme"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rakurai Activation Account"]}]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Accumulate the staker share on-chain in a per-epoch ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme#2-how-it-works"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Reward Collection Account (RCA)"]}]}," throughout the epoch."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["At epoch end, compute stake-weighted allocations off-chain (optionally adjusted via ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#6-customize-distribution-optional"},"children":["custom distribution config"]},"), upload a Merkle root on-chain, and execute staker claims. When Merkle root authority is delegated to Rakurai, Rakurai runs the full claim process on behalf of stakers."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1.3.-free-for-rakurai-validators"},"children":["1.3. Free for Rakurai validators"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you delegate Merkle Root Authority to Rakurai (recommended):"]},{"$$mdtype":"Tag","name":"p","attributes":{"style":{"fontSize":"14px"}},"children":[{"$$mdtype":"Tag","name":"span","attributes":{"style":{"color":"#66ff66"}},"children":[{"$$mdtype":"Tag","name":"i","attributes":{},"children":[{"$$mdtype":"Tag","name":"b","attributes":{},"children":["0% distribution fees charged by Rakurai"]}]}]},"\n    — only standard Solana transaction fees apply.\n"]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"2.-configuration-and-flexibility"},"children":["2. Configuration and flexibility"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Distribution is controlled at two levels:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["On-chain (RAA)"]}," — Set a global ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["block_reward_commission_bps"]}," to define what share of block rewards the validator keeps versus what goes to stakers. This is the only setting required to get started."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Off-chain (optional)"]}," — Before each epoch ends, submit ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#6-customize-distribution-optional"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reward_distribution_config.json"]}]}," to fine-tune allocations when the Merkle tree is built. You can exclude stake accounts, set per-staker commission rates, redirect a staker's share to a referral claimant, or split the validator's retained rewards — without changing on-chain program logic."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With no off-chain config, rewards are distributed ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["proportionally by stake"]}," at your on-chain commission rate. With a config file, you get full flexibility over who receives what before claims go live."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"3.-default-behavior-distribution-disabled"},"children":["3. Default behavior (distribution disabled)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a validator creates their ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/rakurai_activation/readme#4-rakurai-activation-account-creation"},"children":["Rakurai Activation Account (RAA)"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["block_reward_commission_bps"]}," defaults to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["10,000 bps (100%)"]},"."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"right","data-label":"Commission (bps)"},"children":["Commission (bps)"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"right","data-label":"Validator share"},"children":["Validator share"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"right","data-label":"Staker share"},"children":["Staker share"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"right"},"children":["10000"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"right"},"children":["100%"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"right"},"children":["0%"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"right"},"children":["5000"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"right"},"children":["50%"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"right"},"children":["50%"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"right"},"children":["0"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"right"},"children":["0%"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"right"},"children":["100%"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["100%"]},", the validator keeps all block rewards. Nothing is transferred to an RCA and no staker distribution occurs for that epoch."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Block reward commission is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["independent"]}," of Solana's voting commission. It applies only to block rewards."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"4.-enable-block-reward-distribution"},"children":["4. Enable block reward distribution"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To start sharing block rewards with stakers, set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["block_reward_commission_bps"]}," below ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["10,000"]}," in your RAA."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4.1.-update-commission-via-cli"},"children":["4.1. Update commission via CLI"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the Rakurai Activation CLI ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/cli/activation#33-update-commission"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["update-commission"]}]}," command:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sh","header":{"controls":{"copy":{}}},"source":"rakurai-activation -p <PROGRAM_ID> update-commission \\\n  --block_reward_commission_bps <VALUE> \\\n  --identity_pubkey <IDENTITY_PUBKEY> \\\n  --keypair <IDENTITY_KEYPAIR> \\\n  --url <RPC_URL>\n","lang":"sh"},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Mainnet program ID:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rAKACC6Qw8HYa87ntGPRbfYEMnK2D9JVLsmZaKPpMmi"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Testnet program ID:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pmQHMpnpA534JmxEdwY3ADfwDBFmy5my3CeutHM2QTt"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can also set commission at RAA creation time with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rakurai-activation init --block_reward_commission_bps <VALUE>"]},". See the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/cli/activation#31-init"},"children":["Activation CLI"]}," for details."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Verify your settings anytime with ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/cli/activation#34-show"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rakurai-activation show"]}]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4.2.-when-the-new-commission-takes-effect"},"children":["4.2. When the new commission takes effect"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The updated commission applies:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["From the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["current epoch"]},", if no ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme#31-rewardcollectionaccount-account-initialization"},"children":["RCA"]}," has been created for the current epoch yet."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["From the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["next epoch"]},", if an RCA for the current epoch already exists."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4.3.-configure-the-rakurai-client-node-operator"},"children":["4.3. Configure the Rakurai client (node operator)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Rakurai Solana client must be configured with the correct ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/validators/setup_and_build#4-add-additional-cli-args"},"children":["CLI arguments"]}," so it can:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Initialize the per-epoch RCA on your first leader turn."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Transfer staker rewards into the RCA on every subsequent leader turn."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reward_merkle_root_authority"]}," — the account allowed to upload the Merkle root after the epoch ends."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Set this authority to ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme#4-reward-distribution-free-and-automated-by-rakurai"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rakurai"]}]}," for fully automated distribution, or keep it yourself if you prefer to run distribution manually."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"5.-epoch-lifecycle"},"children":["5. Epoch lifecycle"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once commission is below 100%, the following happens every epoch. Full details are in the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme#3-epoch-flow"},"children":["epoch flow"]},"."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["RCA initialization"]}," — On the first leader turn, the Rakurai client creates a per-epoch ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme#31-rewardcollectionaccount-account-initialization"},"children":["Reward Collection Account (RCA)"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Per-turn accumulation"]}," — On every leader turn, the staker share of the previous turn's block reward is transferred into the RCA; validator and block-builder commissions are retained separately. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme#32-per-turn-transfers"},"children":["per-turn transfers"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Post-epoch distribution"]}," — At the final slot, a stake snapshot is taken, a Merkle tree is built off-chain (allocations can be adjusted via ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#6-customize-distribution-optional"},"children":["custom distribution config"]},"), the root is uploaded on-chain, and staker claims are executed. When Merkle root authority is delegated to Rakurai, Rakurai runs the claim process on behalf of stakers. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme#33-post-epoch-staker-distribution"},"children":["post-epoch staker distribution"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reward_merkle_root_authority"]}," is set to Rakurai, steps 1–3 are fully automated (0% distribution fee). See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme#4-reward-distribution-free-and-automated-by-rakurai"},"children":["Reward Distribution — Free and Automated by Rakurai"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"6.-customize-distribution-optional"},"children":["6. Customize distribution (optional)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Submit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reward_distribution_config.json"]}," to the Rakurai team via Slack or ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://t.me/rakurai_official"},"children":["Telegram"]}," before the epoch ends to fine-tune stake allocations. This optional file extends the on-chain settings from ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#2-configuration-and-flexibility"},"children":["Configuration and flexibility"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"6.1.-example-configuration"},"children":["6.1. Example configuration"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"validators_config\": {\n    \"comment\": \"Validator-specific configuration keyed by vote account.\",\n    \"<vote_account>\": {\n      \"stakers\": {\n        \"comment\": \"These `excluded_stake_pubkeys` stake accounts are excluded and will NOT receive rewards. All other stakers must receive at least the minimum block_reward_commission_bps specified on-chain. For example, if validator commission = 7000 BPS (70%), each staker must receive at least 30% of rewards.\",\n        \"excluded_stake_pubkeys\": [\n          \"<stake_account_1>\",\n          \"<stake_account_2>\"\n        ],\n\n        \"custom_commissions\": {\n          \"<stake_account_3>\": {\n            \"commission_bps\": 4000,\n            \"comment\": \"Validator gets 60%, staker gets 40%\"\n          },\n\n          \"<stake_account_4>\": {\n            \"commission_bps\": 5000,\n            \"referral_claimant_pubkey\": \"<referral_account>\",\n            \"referral_claimant_commission_bps\": 1000,\n            \"comment\": \"Validator gets 50%. From staker's 50%, 10% is redirected to referral claimant\"\n          }\n        }\n      },\n\n      \"validator_reward_split\": {\n        \"claimant_pubkey\": \"<claimant>\",\n        \"claimant_commission_bps\": 5000,\n        \"comment\": \"validator rewards (if any): 50% to claimant, 50% to validator identity. If not specified, all remaining goes to validator identity.\"\n      }\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"6.2.-configuration-options"},"children":["6.2. Configuration options"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"6.2.1.-exclude-stake-accounts"},"children":["6.2.1. Exclude stake accounts"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"\"excluded_stake_pubkeys\": [\n  \"<stake_account>\"\n]\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Excluded stake accounts receive ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["no block rewards"]},". You can effectively implement a whitelist by excluding every stake account except the ones you want to reward."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"6.2.2.-custom-stake-account-commissions"},"children":["6.2.2. Custom stake account commissions"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"\"custom_commissions\": {\n  \"<stake_account>\": {\n    \"commission_bps\": 4000\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Overrides the validator's global commission for a single stake account. For example, if your global commission is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["70%"]},", you can give one staker ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["40%"]}," commission (60% to staker instead of 30%)."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"6.2.3.-referral-reward-sharing"},"children":["6.2.3. Referral reward sharing"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"\"custom_commissions\": {\n  \"<stake_account>\": {\n    \"commission_bps\": 5000,\n    \"referral_claimant_pubkey\": \"<referral_account>\",\n    \"referral_claimant_commission_bps\": 1000\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A portion of the staker's rewards is redirected to a referral claimant. In this example:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validator receives ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["50%"]}," (instead of 70%)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Staker receives ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["40%"]}," (instead of 30%)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Referral claimant receives ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["10%"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"6.2.4.-validator-reward-split"},"children":["6.2.4. Validator reward split"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"\"validator_reward_split\": {\n  \"claimant_pubkey\": \"<claimant>\",\n  \"claimant_commission_bps\": 5000\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Splits the validator's retained rewards with another account. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5000"]}," means 50% to the claimant and 50% to the validator identity."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"6.3.-what-you-can-do-with-these-options"},"children":["6.3. What you can do with these options"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Share block rewards with all stakers proportionally."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Effectively whitelist selected stake accounts."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Exclude specific stake accounts."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Offer preferential reward rates to selected stakers."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run referral reward programs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Split validator-retained rewards with another claimant."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]}]},"headings":[{"value":"Block Reward Distribution to Stakers","id":"block-reward-distribution-to-stakers","depth":1},{"value":"1. Background","id":"1.-background","depth":2},{"value":"1.1. No native protocol support","id":"1.1.-no-native-protocol-support","depth":3},{"value":"1.2. Rakurai's solution","id":"1.2.-rakurais-solution","depth":3},{"value":"1.3. Free for Rakurai validators","id":"1.3.-free-for-rakurai-validators","depth":3},{"value":"2. Configuration and flexibility","id":"2.-configuration-and-flexibility","depth":2},{"value":"3. Default behavior (distribution disabled)","id":"3.-default-behavior-distribution-disabled","depth":2},{"value":"4. Enable block reward distribution","id":"4.-enable-block-reward-distribution","depth":2},{"value":"4.1. Update commission via CLI","id":"4.1.-update-commission-via-cli","depth":3},{"value":"4.2. When the new commission takes effect","id":"4.2.-when-the-new-commission-takes-effect","depth":3},{"value":"4.3. Configure the Rakurai client (node operator)","id":"4.3.-configure-the-rakurai-client-node-operator","depth":3},{"value":"5. Epoch lifecycle","id":"5.-epoch-lifecycle","depth":2},{"value":"6. Customize distribution (optional)","id":"6.-customize-distribution-optional","depth":2},{"value":"6.1. Example configuration","id":"6.1.-example-configuration","depth":3},{"value":"6.2. Configuration options","id":"6.2.-configuration-options","depth":3},{"value":"6.2.1. Exclude stake accounts","id":"6.2.1.-exclude-stake-accounts","depth":4},{"value":"6.2.2. Custom stake account commissions","id":"6.2.2.-custom-stake-account-commissions","depth":4},{"value":"6.2.3. Referral reward sharing","id":"6.2.3.-referral-reward-sharing","depth":4},{"value":"6.2.4. Validator reward split","id":"6.2.4.-validator-reward-split","depth":4},{"value":"6.3. What you can do with these options","id":"6.3.-what-you-can-do-with-these-options","depth":3}],"frontmatter":{"seo":{"title":"Block Reward Distribution to Stakers"}},"lastModified":"2026-07-21T11:42:43.000Z"},"slug":"/docs/services/rakurai_jito_private/block-rewards-distributor/block_reward_distribution","userData":{"isAuthenticated":false,"teams":["anonymous"]}}