{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"codeGuideFiles":[],"seo":{"title":"Post-Pack Confirmations","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":"post-pack-confirmations"},"children":["Post-Pack Confirmations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rakurai Pre-confirmation named as Post-pack confirmations (P2C) provides you a front-run-proof early view of what is about to execute."]}," It is the third ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/readme#1.3.-post-pack-confirmations-p2c"},"children":["TIN building block"]},": the Rakurai scheduler streams each transaction to you at the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["point of no return"]}," — committed to the block being built, but not yet public."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Paying for it has two ordered halves. You ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["prepay for access"]}," through a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/post_pack/psa"},"children":["PSA"]},", priced from the validator's stake, then ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["share a percentage of the profit"]}," you make from the stream through an ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/post_pack/mca"},"children":["MCA"]},". Tips are a separate path and still apply to your reply bundles."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page covers what the stream is, the wire protocol it uses, the end-to-end sequence from onboarding to settlement, and how the three money paths differ."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Audience:"]}," Searchers, TIN partners, traders consuming post-pack confirmations, and validator operators configuring endpoints."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"1.-what-are-post-pack-confirmations"},"children":["1. What are post-pack confirmations?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["As soon as a transaction has been scheduled for execution, the Rakurai scheduler forwards it over gRPC to every configured ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["post-pack confirmation endpoint"]}," — one packet per transaction, per endpoint."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Updates start at the point of no return"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates are generated from the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["point of no return"]}," — the moment the transaction is committed to the block being built. Consumers therefore see a transaction only when it is too late for anyone to front-run it, which is what makes it safe to publish. A post-pack signal is an ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["early scheduled"]}," update, not a confirmation: confirm landing through standard commitment checks before treating it as final."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1.1.-protocol"},"children":["1.1. Protocol"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Post-pack uses the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Jito packet gRPC protocol"]}," (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/assets/packet.74ed8ffb9ebe58eac71a339b2d36433a122f0def26b36be76da692b9be6a7511.301b32ab.proto"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["packet.proto"]}]},", ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/assets/block_engine.c207449ce419b261b27f1499c35b8da9a509675e3f7a6cdfe290eec29623740d.301b32ab.proto"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["block_engine.proto"]}]},") — the same ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Packet"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PacketBatch"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["StartExpiringPacketStream"]}," shapes used by the Jito relayer. If you already consume the Jito relayer stream, the wire format is familiar."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What you receive:"]}," transactions as Jito ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Packet"]}," messages carrying raw Solana wire bytes, streamed over ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["StartExpiringPacketStream"]},". Duplicate transactions are suppressed, and one ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Packet"]}," is sent per transaction per endpoint."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What you send back:"]}," a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["bundle"]}," containing the original post-pack packet(s) unchanged, followed by any transactions of your own (typically a backrun or arbitrage)."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Full mechanics, packet layout, and Admin RPC: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/post_pack/using_p2c"},"children":["Using P2C"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1.2.-end-to-end-sequence"},"children":["1.2. End-to-end sequence"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"you register a gRPC endpoint with Rakurai       → Setup guide\n        ↓\nRakurai creates your PSA (and MCA if sharing)   → PSA / MCA\n        ↓\nyou fund the PSA                                → rakurai-p2c fund\n        ↓\nvalidator connects out to your Relayer server   → Using P2C\n        ↓\nscheduler streams PacketBatchUpdate at the\npoint of no return\n        ↓\nyou decode, decide, and reply with a bundle\n(original packets + your txs + a tip)           → Tips\n        ↓\nepoch ends → PSA fee deducted from prepaid\n          → you report and settle MCA           → rakurai-revshare\n"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"success","name":"Still tip on reply bundles"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Paying a tip to land a transaction is a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["different path"]}," from the PSA and MCA. A post-pack reply bundle still needs a tip to a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/tips#appendix-program-and-tip-account-addresses"},"children":["Rakurai tip account"]}," so it gets prioritized — ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["recommended: 1,000,000 lamports (0.001 SOL)"]},". See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/tips"},"children":["Tips"]},"."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"2.-the-three-payments-side-by-side"},"children":["2. The three payments, side by side"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Post-pack touches three money paths and they are easy to confuse. ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PSA and MCA are ordered"]}," — access first, profit share second. Tips are independent of both."]},{"$$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":{"data-label":""},"children":[]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PSA"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MCA"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tips (TCA)"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Full name"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["P2C Subscription Account"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["MevShare Collection Account"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tips Collection Account"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["What it buys"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Access"]}," to the stream"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Nothing — it is a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["payout"]}," you owe"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Priority"]}," for one transaction or bundle"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Direction"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You prepay; the fee is deducted each epoch"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You send your agreed share after the epoch"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You transfer at send time"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Priced by"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The validator's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["staked SOL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your agreed ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["percentage of backrun profit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whatever you choose to tip"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required?"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Yes"]},", for post-pack at all"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes, once you backrun and share"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional, but recommended"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tool"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/cli/p2c_subscription"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rakurai-p2c"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/cli/partner_reward_settlement"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rakurai-revshare"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Plain ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SystemProgram.transfer"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Guide"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/post_pack/psa"},"children":["PSA"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/post_pack/mca"},"children":["MCA"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/tips"},"children":["Tips"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"PSA first, then MCA"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The MCA only applies ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["after"]}," you already have stream access, because it shares profit you made ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["from"]}," that stream. You cannot skip the PSA and go straight to the MCA."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Endpoints — where the scheduler ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["sends"]}," you transactions — are stored separately in ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/rakurai_client_config/readme"},"children":["Client Config"]},". The PSA holds prepaid SOL; the MCA holds settled backrun SOL. Neither holds endpoint configuration."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Do not count the same SOL twice"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["block_reward_conversion_enabled"]}," is on (the default), PSA, MCA, and TCA claims are later re-emitted as a high-priority block reward. An indexer watching both will count the same lamports twice. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/readme#6.-do-not-double-count-tips-and-converted-block-rewards"},"children":["TIN — indexing note"]},"."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"3.-next-steps"},"children":["3. Next steps"]},{"$$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":{"data-label":"Guide"},"children":["Guide"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/post_pack/using_p2c"},"children":["Using P2C"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Relayer gRPC setup, packet structure, reply bundles, validator Admin RPC"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/post_pack/psa"},"children":["PSA"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Prepaid stream access: pricing, status, grace window, funding"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/post_pack/mca"},"children":["MCA"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Reporting and settling your backrun share"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/tips"},"children":["Tips"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tip accounts and virtual priority for landing"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/setup_guide"},"children":["Setup guide"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Discovery endpoint and Validator vs Relayer gRPC roles"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/services/rakurai_jito_private/rakurai_docs/rakurai_programs/programs/reward_distribution/readme"},"children":["Reward Distribution"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The on-chain model behind PSA, MCA, and TCA"]}]}]}]}]}]},"headings":[{"value":"Post-Pack Confirmations","id":"post-pack-confirmations","depth":1},{"value":"1. What are post-pack confirmations?","id":"1.-what-are-post-pack-confirmations","depth":2},{"value":"1.1. Protocol","id":"1.1.-protocol","depth":3},{"value":"1.2. End-to-end sequence","id":"1.2.-end-to-end-sequence","depth":3},{"value":"2. The three payments, side by side","id":"2.-the-three-payments-side-by-side","depth":2},{"value":"3. Next steps","id":"3.-next-steps","depth":2}],"frontmatter":{"seo":{"title":"Post-Pack Confirmations"}},"lastModified":"2026-09-08T11:35:39.000Z"},"slug":"/docs/services/rakurai_jito_private/rakurai_docs/transaction_inclusion/post_pack/readme","userData":{"isAuthenticated":false,"teams":["anonymous"]}}