CLI
What is the Pye CLI
The Pye CLI is an optional feature that automates reward calculation and distribution for validator-issued Lockups. It is designed to run continuously on a small server, monitoring for epoch changes and executing payouts when required. The CLI:
Provides real-time performance and node data for better operational insights (inflation, MEV, and block rewards).
Encodes commercial terms directly on-chain (flat, variable, or cluster-median-based commissions).
Automates accounting and reward distribution.
This infrastructure is currently free - no subscription or fees required.
Getting Started
To get started with the CLI, reach out to the Pye team and one of our incredible Devrels will help you get setup and access to the required repo needed to execute the steps below.
Requirements
Running the Pye CLI requires minimal compute resources. We recommend validator operators run the Pye CLI in seperate server than where your valdiator node is running from.
Server: A small, long-running machine (e.g.
t3.nanoort3.microEC2 instance, 2 vCPUs, 4 GB RAM).⚠️ Running multiple instances simultaneously is not supported. Deploy a single dedicated instance per validator.
Keypair: A filesystem keypair with sufficient SOL to cover transaction fees and distributions. The required SOL balance depends on the validator’s stake size and expected epoch rewards.
Dependencies: Rust toolchain and build utilities.
Stable internet connection.
The build process may require some compile time depending on your environment, but running the CLI itself is lightweight and does not interfere with validator operations.
Installation
From a fresh Ubuntu host:
The compiled binary will be located at:
Running as a Service
We recommend running the CLI as a persistent systemd service.
Example unit file (/etc/systemd/system/pye-cli.service):
For multiple issuers, provide a comma-separated list in
ISSUERS.
Enable and start:
CLI Usage
Run with:
Common Options
-r, --rpc <RPC>
RPC endpoint. Default: https://api.mainnet-beta.solana.com.
--program-id <PROGRAM_ID>
Pye program ID. Default: PYEQZ2qYHPQapnw8Ms8MSPMNzoq59NHHfNwAtuV26wx.
-v, --vote-pubkey <VOTE_PUBKEY>
Validator’s vote account pubkey.
-i, --issuers <ISSUERS>
Restrict Lockup payments to specific issuers (comma-delimited).
-p, --payer <PAYER>
Path to payer keypair JSON file.
--concurrency <N>
Max concurrent RPC requests. Default: 50.
--dry-run
Calculate rewards without transferring funds.
--cycle-secs <N>
Interval (seconds) between epoch checks. Default: 60.
--block-retry-delay <N>
Retry delay (seconds) for get_block calls. Default: 1800.
-h, --help
Show help.
Notes
The CLI automatically calculates and distributes excess rewards for all Lockups associated with the validator.
Use
--dry-runfor testing without sending transactions.Ensure your payer key has enough SOL to cover transfers and fees.
Last updated