P50 lamports——
P75 lamports——
P95 lamports——
P99 lamports——
slot—mainnet-beta
samples0ring buffer
staleness—vs feed stamp
sol/usd—jupiter lite
awaiting first poll
method

How the monitor works

Four steps: scope the accounts a transaction locks, read the wall, price it, send it. The monitor runs the middle two from live data.

The five numbers

bandreads
p25the value below which a quarter of landed Jito tips fall
p50the median landed tip, in lamports
p75three quarters of landed tips sit below this
p95the top 5% tail, where next-slot sends usually need to be
p99the spike band; paying here is the expensive default

Fee math

base_fee      = 5,000 lamports × signatures
priority_fee  = round(band_lamports × CU_limit / 200,000)
jito_tip      = band_lamports                      # optional
total         = base_fee + priority_fee + jito_tip

The base fee splits: half burned, half to the leader. Under SIMD-0096 the priority fee goes to the validator in full. Jito tips go to Jito tip accounts.

Why not getRecentPrioritizationFees

The public RPC answers that call with zeroes. A page built on it draws a flat line at zero and calls it congestion. Tipscope reads Jito tip_floor percentiles and names the source.

Per-account priority fees are planned for when an RPC that reports them is wired in. Until then the wall is global, and the page says so.

Staleness, not confidence

The feed carries its own timestamp. The status bar shows seconds since that stamp, so a frozen or cached upstream is visible rather than hidden. If the feed drops, every number switches to a labelled sample.

Sources

  • Solana docs: compute units, priority fees, fee structure.
  • SIMD-0096: priority fee paid 100% to the validator.
  • Jito tip_floor endpoint, read through the same-origin proxy at /api/tips.
  • Jupiter lite price v3 for the SOL/USD column.