Pye CLI

The Pye CLI is a lightweight command-line tool designed for validators in the Pye ecosystem. It calculates and facilitates the distribution of staking rewards - including inflation, MEV, and block rewards - between validators and their bondholders, based on the terms specified in each Pye Bond.
By running the CLI, validators enable transparent, trustless accounting for the rewards owed to stakers who purchased their bonds. This tool is a foundational component of the Pye protocol, ensuring system integrity while automating reward attribution and distribution at the validator level.
Why It Matters
Our mission at Pye is to build Solana’s yield curve. We’re transforming Solana’s PoS into an efficient bond market powered by validators. This unlocks better yield opportunities for stakers and creates new market dynamics for fixed-yield products.
To maintain trust and accuracy, the protocol needs a reliable way to measure on-chain rewards and allocate them in accordance with each bond’s terms.
This is where the Pye CLI comes in: It serves as the accounting engine that bridges actual validator performance with bond-level reward entitlements.
How does it work?
At the end of every epoch, the Pye CLI tracks the staking rewards generated by a validator node and performs the following operations:
Step 1: Gross Reward Tracking
The CLI calculates the total gross rewards a validator earned in the given epoch, including:
- Inflation Rewards – derived from staking participation.
- Block Rewards – earned through block production and vote credits.
- MEV Rewards – earned from the inclusion of high-priority transactions.
These are sourced directly from Solana’s runtime metrics and on-chain accounts.

Example
Alice runs a validator node on Solana with10,000 SOL
and generated10 SOL
in rewards during the last epoch. These rewards are tracked by the custom indexer that is part of the Pye CLI.
Previously, Alice issued a3-month
bond with the following terms:
Inflation:90%
(10% commission retained by validator)
MEV:10%
Block Rewards:10%
Step 2: Adjustments based on TVL Contribution
After measuring the total rewards for the epoch, the CLI calculates the portion of those rewards attributable to each active bond based on its share of the validator's total TVL. This is a straightforward proportional calculation:
Node TVL = 10,000
Bond TVL = 1,000
Total Node Yield = 10
Yield Attributable to Bond = (Bond TVL / Node TVL) × Total Node Yield

Example
If the bond represents 10% of the validator's TVL, and the node earned 10 SOL in rewards, the bond’s pro rata share is 1 SOL
.
This figure represents the maximum potential yield the bond could receive for the epoch - before adjustments are made based on the bond’s specific reward-sharing terms, which are applied in the next step.
Step 3: Adjustments based on Bond Terms
The final step in the accounting process is to adjust the bond's maximum potential yield (from Step 2) according to the specific terms defined in the bond at issuance.
Each bond specifies how much of each reward type the validator commits to share with the bondholder. These parameters are:
- MEV Sharing Rate – the percentage of MEV rewards shared with the staker.
- Block Reward Sharing Rate – the percentage of block rewards shared.
- Inflation Commission – a flat commission (as a percentage) that the validator keeps from inflation rewards.

These terms govern how much of the validator’s total rewards are actually passed through to the bondholder.
Adjusted Bond Yield =
[ (Block Rewards × Block Rate) +
(MEV × MEV Rate) +
(Inflation × (1 - Inflation Commission)) ]
× (Bond TVL / Node TVL)
Example
Let’s say the validator’s total rewards are:
Inflation:3.33 SOL
MEV:3.33 SOL
Block Rewards:3.33 SOL
Total:10 SOL
And the bond still represents 10% of total TVL, so its pre-adjustment yield is1 SOL
.
Bond Terms:
MEV Sharing Rate: 10%
Block Reward Sharing Rate: 10%
Inflation Commission: 10% (i.e., staker receives 90%)
Now apply the terms:
Inflation:3.33 SOL × 90% × 10% = 0.2997 SOL
MEV:3.33 SOL × 10% × 10% = 0.0333 SOL
Block Rewards:3.33 SOL × 10% × 10% = 0.0333 SOL
Total Adjusted Bond Yield:0.2997 + 0.0333 + 0.0333 = 0.3663 SOL
Even though the bond’s pro rata yield was 1 SOL
, the actual payout is 0.3663 SOL, based on the validator’s chosen sharing terms.
Step 4: Payout and Reporting
Once calculations are complete, the CLI handles reward distribution and reporting:

- It generates a report detailing the amount owed to each bond for that epoch.
- This report is stored in the CLI’s database and is viewable on the bond’s detail page or the validator’s profile in the app.
- The CLI can automatically pull funds from a pre-funded reward account - a separate wallet from the vote account - which validators maintain specifically for bond payments.
This final step ensures timely, on-chain delivery of rewards to stakers, reinforcing the protocol’s transparency, accountability, and auditability.
Why This Infrastructure Is Important
- Validator Reputation: Running the CLI proves that a validator honors the bond terms and treats stakers fairly.
- Staker Trust: Stakers can verify rewards independently, improving transparency.
- Protocol Integrity: The CLI anchors the economics of Pye Bonds to real on-chain performance.
- DeFi Composability: Reliable reward streams make Pye Bonds a building block for yield strategies and secondary markets.

Next Steps: Join the Pye Pilot Program
We’re inviting a small group of validators to join the Pye Pilot Program, where you’ll:
- Run the Pye CLI in your validator setup.
- Issue mainnet Pye Bonds.
- Share feedback to help us improve the DevEx and accuracy of reward tracking.
To join:
- Reach out to our team:
- Program Coordinator: @albertocevallos
- BD/Partnerships: @eash0x
- Schedule a kickoff call to receive the CLI manual.
- Participate in a follow-up call after your first bond issuance.
In the meantime, follow us on our official links: X/Twitter | Discord | Telegram