Build a multi-stream revenue stack: base staking + MEV + restaking + markets + infrastructure upgrades. Turn a single 6% APY into 7-9%+ with verified protocols.
Check your current validator earnings baseline in <5 minutes:
# Check your validator vote account
solana vote-account <VOTE_PUBKEY>
# Get your current epoch credits (rewards earned)
solana epoch-info
# Calculate your effective APY
# Base formula: (epoch_credits / total_stake) * epochs_per_year * 100
Expected output: You'll see your vote account details, current epoch info, and commission rate. A typical Agave validator earns ~6% APY from base staking alone.
What just happened: You established your baseline. Everything in this guide stacks on top of that 6%. By the end, you'll add 1-3% more through multiple revenue streams.
Best-in-class validators combine ALL revenue streams below for 7-9%+ total APY.
Validator earnings compound when you layer multiple protocols. Each protocol taps a different revenue source:
Why it matters: Each stream is independent—enabling one doesn't disable others. A validator running all five earns 30-50% more than baseline.
MEV is additional revenue from transaction ordering. Jito's TipRouter distributes 6% of all MEV tips to participants:
# Check current MEV distribution (read-only)
curl -X POST https://api.mainnet-beta.solana.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getAccountInfo",
"params": ["TipRouter11111111111111111111111111111111"]
}'
Why it matters: MEV added $674M to Solana validator revenue in 2024. Jito redistributes $2.5B annually via TipRouter.
Reuse your SOL stake to secure additional services (oracles, bridges, keeper networks) and earn extra yield. Unlike EigenLayer (Ethereum), Solana restaking emphasizes *endogenous* AVS (on-chain Solana apps).
# Check your validator's Solayer eligibility (requires stake > 0)
solana balance <VALIDATOR_IDENTITY_PUBKEY>
Why it matters: Solayer has $346M TVL paying 7.6-8.12% APY to restakers—higher than base staking alone.
Pye Finance creates orderbooks for future validator rewards. Stakers buy PT (Principal Token) + RT (Reward Token), then trade them. Validators earn fees from trading activity.
Why it matters: Fixed quarterly lockups eliminate mid-term unstaking. Trading fee revenue is new income stream with zero operational changes.
Firedancer uses AVX512 signature verification (2.5x faster than Agave) and kernel-bypass XDP networking. This improves rewards by 18-28 basis points.
# Check your current validator client
solana-validator --version
# Example output: agave-validator 2.1.3
Why it matters: Firedancer validators earn 0.18-0.28% more on the same stake due to better performance (verified Q1 2026 with 20.9% network stake).
Install Jito-Solana client to earn MEV tips distributed via TipRouter NCN.
# Clone Jito-Solana (Agave fork with MEV bundles)
git clone https://github.com/jito-foundation/jito-solana.git
cd jito-solana
# Build from source (requires Rust 1.75+)
cargo build --release
# Verify installation
./target/release/solana-validator --version
# Expected: jito-solana 2.1.x
# Update validator startup script
# Add these flags to your existing solana-validator command:
--block-engine-url https://mainnet.block-engine.jito.wtf \
--relayer-url https://mainnet.relayer.jito.wtf \
--tip-distribution-program-id T1pRouter11111111111111111111111111111111 \
--tip-payment-program-id TipPayment11111111111111111111111111111111 \
--commission-bps 600
# (600 bps = 6% commission, adjust as needed)
# Stop current validator (use your process manager)
systemctl stop solana-validator
# Start with new Jito-Solana binary
systemctl start solana-validator
# Verify MEV integration
solana-validator monitor
# Look for "TipRouter" in logs
Check your MEV earnings after 1 epoch:
# Query TipRouter distribution account
solana account TipRouter11111111111111111111111111111111 \
--output json | jq '.lamports'
# Compare to baseline epoch earnings
solana inflation rewards <VOTE_PUBKEY>
Register your validator with Solayer to earn restaking yield on your existing stake.
# Install Solayer CLI
npm install -g @solayer/cli
# Initialize validator registration
solayer register-validator \
--identity <VALIDATOR_IDENTITY_KEYPAIR> \
--vote-account <VOTE_PUBKEY> \
--commission 0
# (Solayer charges 0% fees, set your commission as desired)
# Check validator status in Solayer
solayer validator-info <VOTE_PUBKEY>
# Expected output:
# Status: Active
# Delegated Stake: [your current stake]
# AVS Participation: [list of active AVS]
# Opt into endogenous AVS (on-chain Solana apps)
solayer opt-in-avs --type endogenous
# Opt into exogenous AVS (oracles, bridges)
solayer opt-in-avs --type exogenous
# Verify AVS list
solayer list-avs --validator <VOTE_PUBKEY>
Delegate 10 SOL to test restaking yield:
# Create sSOL (Solayer liquid restaking token)
solayer stake --amount 10 \
--validator <VOTE_PUBKEY> \
--output sSOL
# Check yield after 1 epoch
solayer balance --token sSOL
# Compare to 10 SOL base staking rewards
Register with Pye to offer Programmable Stake Accounts (PSAs) and earn trading fee revenue.
# Install Pye CLI
npm install -g @pye-fi/cli
# Register validator (free for whitelisted participants)
pye register-validator \
--vote-account <VOTE_PUBKEY> \
--identity <VALIDATOR_IDENTITY_KEYPAIR>
# Expected output:
# ✓ Validator registered
# ✓ Dashboard: https://app.pye.fi/validators/[your-pubkey]
# Set custom commission for institutional/long-duration stake
pye set-commission \
--vote-account <VOTE_PUBKEY> \
--inflation-rate 5 \
--mev-rate 3 \
--priority-fee-rate 2
# (Lower rates for longer lockups attract more capital)
# Enable free Rewards Widget for your stakers
pye enable-widget --vote-account <VOTE_PUBKEY>
# Widget URL: https://widget.pye.fi/<VOTE_PUBKEY>
# Stakers can sell future rewards (RT tokens) on orderbook
# You earn fees from their trading activity
Monitor your Pye dashboard for first PSA deposit:
# Check Pye validator stats
pye validator-stats <VOTE_PUBKEY>
# Expected metrics:
# - Total stake via Pye
# - Active PSAs
# - Trading fee revenue (updated hourly)
Migrate from Agave/Jito-Solana to Firedancer for better performance and higher rewards.
Firedancer migration requires validator downtime. Plan for off-peak hours and have rollback strategy ready.
# Clone Firedancer
git clone https://github.com/firedancer-io/firedancer.git
cd firedancer
# Build from source (requires GCC 12+, AVX512 support)
make -j$(nproc)
# Verify installation
./build/native/gcc/bin/fdctl --version
# Expected: firedancer 0.x.x
# Stop Agave/Jito-Solana validator
systemctl stop solana-validator
# Export ledger and snapshots
solana-ledger-tool copy \
--ledger /path/to/agave/ledger \
--target-db /path/to/firedancer/ledger
# Import vote account keypair
cp /path/to/vote-account.json /path/to/firedancer/config/
# Configure Firedancer
cat > /path/to/firedancer/config.toml << EOF
[consensus]
vote_account = "<VOTE_PUBKEY>"
identity = "/path/to/validator-keypair.json"
[tiles]
verify_tile_count = 4 # Adjust based on CPU cores
bank_tile_count = 2
[networking]
xdp_mode = "native" # Kernel-bypass for 20-30% latency reduction
EOF
# Run Firedancer
./build/native/gcc/bin/fdctl run \
--config /path/to/firedancer/config.toml \
--ledger /path/to/firedancer/ledger
# Monitor performance
./build/native/gcc/bin/fdctl monitor
# Verify rewards improvement after 10 epochs
solana inflation rewards <VOTE_PUBKEY> --num-epochs 10
# Compare to Agave baseline (expect +18-28bp)
Cause: Your CPU doesn't have AVX512 extensions (required for Firedancer).
Fix: Stick with Jito-Solana for MEV benefits. Firedancer requires Intel Ice Lake+ or AMD Zen 4+ CPUs.
Benchmark signature verification speed:
# Firedancer benchmark
./build/native/gcc/bin/fdctl bench --test sig-verify
# Expected: ~100k sigs/sec/core (AVX512)
# Compare to Agave baseline
# Agave: ~40k sigs/sec/core (AVX2)
When to use: You want to validate cross-chain transfers and earn 40% of transfer fees.
Trade-offs: Requires 25 SOL bond + additional infrastructure (IBC light client nodes). Higher complexity, but direct external L1 validation revenue.
# Install Picasso IBC light client
git clone https://github.com/ComposableFi/picasso.git
cd picasso
# Configure IBC validator
picasso-ibc setup \
--bond 25 \
--validator-identity <SOLANA_IDENTITY_KEYPAIR> \
--ibc-chains cosmos,ethereum,polkadot
# Run IBC light client
picasso-ibc start --config ibc-config.toml
# Monitor cross-chain transfer fees
picasso-ibc stats --validator <VOTE_PUBKEY>
# Revenue: 40% of cross-chain transfer fees
Compared to basic approach:
Picasso IBC slashes validators who submit invalid cross-chain proofs. Only enable if you can maintain 99.9%+ uptime for IBC light clients.
Jito's Node Consensus Network (NCN) framework enables validators to participate in multiple decentralized services simultaneously. The TipRouter NCN specifically handles MEV tip distribution:
Why 6% redistribution? Jito's design aligns incentives: validators keep 94% of MEV tips (direct capture), while 6% funds protocol development and rewards long-term participants. This prevents a "race to the bottom" in MEV extraction.
Further reading:
Base staking secures the Solana L1 via validator vote accounts. Restaking reuses that same stake to secure additional services (oracles, bridges, keeper networks) without unstaking from the L1.
EigenLayer (Ethereum) vs Solayer (Solana):
| Dimension | EigenLayer | Solayer |
|---|---|---|
| Primary AVS Type | Exogenous (off-chain services) | Endogenous (on-chain dApps) |
| Example AVS | Oracles, bridges, data availability | DeFi protocols, on-chain keepers (via swQoS) |
| Slashing | Active (restaked ETH at risk) | Protocol-dependent (most have no slashing yet) |
| APY Boost | 2-4% (on top of 3-4% ETH base) | 0.5-1% (on top of 6% SOL base) |
Further reading:
Validators earn rewards proportional to the number of votes they successfully cast per epoch. Faster transaction processing → more votes → higher rewards.
Firedancer's advantages:
Result: Firedancer validators process the same transactions faster, cast more votes per epoch, and earn proportionally higher rewards (verified +18-28bp in Q1 2026).
Further reading:
Why it happens: You can't run Jito-Solana AND Firedancer simultaneously. They're competing implementations of the same validator.
How to avoid: Choose ONE client at a time. If migrating Jito → Firedancer, fully stop Jito before starting Firedancer.
Why it happens: Some AVS have undisclosed or evolving slashing rules. You could lose restaked stake without realizing the risk.
How to avoid: Only opt into AVS with published slashing conditions. Check solayer list-avs for "Slashing: Yes/No" before opting in.
Why it happens: Lower commission rates attract more capital, but if lockups are too short, you still face churn.
How to avoid: Set custom commissions ONLY for 6-12 month lockups. Use Pye CLI to enforce minimum lockup periods.
Why it happens: Firedancer requires AVX512 instruction set (Intel Ice Lake+ or AMD Zen 4+). Older CPUs crash on startup.
How to avoid: Check CPU features before building: lscpu | grep avx512. If absent, stick with Jito-Solana.
Before: 6% APY (base staking)
After (all streams): 7.7-9.2% APY + trading fees
Improvement: 30-50% higher earnings on the same stake