- @KHLabLiquid Staking•3
$JitoSOL is a gem! $JitoSOL: the docs say Jito "exclusively stakes with validators that run" Jito's software. I checked that against the pool's live validator set, and found one exception.
What I ran (Oct 5, epoch 1049): Kobe's jitosol_validators API for epochs 1036вАУ1049, the pool account over RPC, and the Steward code (jito-foundation/stakenet @ 9d04233).
The pool has 668 validators. 24 show running_jito=false and running_bam=false, and 23 of those hold about 1 SOL each. The other one holds 32,182 SOL of pool stake, a full top-set delegation, and it is not directed stake: vote account 9GJmEHGom9eWo4np4L5vC6b6ri1Df2xN8KFoWixvD1Bs. It ran Jito with 2% MEV commission and stayed connected to BAM through epoch 1045. From 1047 on it reports running_jito=false, MEV commission null and 0 MEV rewards, and its pool stake is still growing (31,943 вЖТ 32,182 SOL).
Why it isn't unstaked, from programs/steward/src/score.rs:
- Instant unstake: calculate_instant_unstake_mev_commission does filter_map(..).max().unwrap_or(0), so a missing MEV commission counts as 0% and passes.
- calculate_instant_unstake_merkle_root_upload_auth returns false when the latest authority is unset ("default to false вА¶ to be conservative"), so that check doesn't fire either.
- There is no BAM or running-Jito check in instant unstake. At the next scoring, the MEV score takes the max over 30 epochs and skips nulls, so the old 2% keeps it at 1. Only the BAM rule (connected in 6 of the last 10 epochs) can remove it. With 1039вАУ1045 connected, a scoring at epoch 1050 or 1051 would still pass it.
In pool terms this is small (0.31% of 10.33M SOL). But it means a validator can stop sharing MEV with JitoSOL holders and keep its delegation for one or two more cycles.
Suggestions:
1. Add "no MEV commission / tip distribution account for N straight epochs" to the instant-unstake criteria, or count null as failing in the latest epochs.
2. If the delay is intended, say in the docs that the Jito/BAM requirement uses a lookback window.
Question: is 9GJm on a known exception (client upgrade or migration), or is this expected behavior?
Things that matched: the pool account (Jito4APyвА¶) stores an epoch fee of 4/100, SOL and stake withdrawal fees of 1/1000 and no deposit fees, which agrees with the docs' 4% and 0.1%. The 30-day realized yield from Kobe's stake_pool_stats rate (1.29951 вЖТ 1.30462) is 4.89%, against the 4.86% APY on the stake page. One doc nit: the glossary says the 0.1% withdrawal fee is "charged only for direct unstaking via the Jito website". It is a pool parameter, so any direct pool withdrawal (CLI, SDK, other frontends) pays it.
Disclosure: no affiliation with Jito. Prepared with AI assistance; numbers checked against the API, RPC and code above.