Solana · propagation economics

What faster block propagation is worth to a Solana validator

Validator revenue comes from three pools. Only two of them (Jito MEV tips and leader fees) respond to how fast a block propagates. This is where those two stand today, and what a 6× faster transmission layer would add through the delay-budget mechanism.

Live measurement from a Frankfurt Geyser sentry · 2.0 days of data · counterfactual modeled at , compressible share κ=25%, SOL @ $100.86

κ=25% is an illustrative midpoint, not a measurement: it is not identified from one vantage point, and every dollar scales linearly in it (at κ=10% the top operator is ~40% of the figure shown). 6× is a free parameter. Both are sliders below.

Preliminary: modeled counterfactual, not a quote

Performance-movable revenue

7,683 SOL / day

Jito tips + leader fees, the pool faster propagation can move.

Fees vs. Jito tips

4.5×

Leader fees are the larger channel, and the one usually overlooked.

6× uplift · largest operator

$81k / yr

Top of the per-operator table below.

⚠ preliminary: the fee slope settled after swinging across the first single-day panels (the 48-hour window now averages two full day/night cycles) but the magnitude still scales with κ and the SOL price. Read it as order-of-magnitude.

Where validator revenue comes from

Network-wide, per day. Inflation dwarfs the rest and is paid by protocol schedule, not speed, with one exception I cannot yet size: Timely Vote Credits pay inflation in proportion to vote latency, and because the inflation pool is ~8x the movable one, even a small movable share could rival the fee channel. It is unmeasured here (see objection 4), so treat the two coloured slivers as the measured floor of what speed can move, not the ceiling.

All validator revenue61,710 SOL / day
The performance-movable pool, on its own7,683 SOL / day

What 6× faster transmission would add, per operator

Jito tips Leader fees

What happens when everyone adopts

with peer ramp no ramp (optimistic)

κ (compressible share)25%

Share of the observed first-shred→completed window that is actually network time a faster layer could remove. The rest is the leader's own emission span, which no transport touches. Unidentified from one vantage point: every dollar scales linearly in κ.

θ (peer threshold)67%

Share of stake that must receive on the overlay before a delayed block still roots. 67% is Solana's supermajority, a sharp reading. The true knee is lower, since non-overlay nodes have slack; the skip hazard would pin it.

φ (net-new share)0%

Share of the gain that is new value rather than pulled from the next slot, it sets the floor at saturation. Near zero for pure delay on 400ms slots: a missed transaction lands ~400ms later, it does not vanish.

Per-adopter uplift

Annual gain for an operator holding 1% of stake, as adoption rises. Falls linearly: the flow you pull forward is increasingly already drained by the adopter ahead of you.

Network-wide uplift

All adopters combined. More adopters multiply the base, but each one's gain decays, so the total peaks mid-sweep and returns to zero at saturation.

Methodology · counterfactuals · robustness

How this was measured, and what could break it

Read this before the numbers: this is a weaker study than the Ethereum one, and here is exactly how.

This is the Ethereum propagation harness ported in preliminary form. Every axis of evidence quality is a tier below its predecessor, and the gap is not cosmetic: one Geyser vantage point instead of a sentry network, so κ, the compressible share of the observed window, is not identified at all; an estimated slope on realised outcomes instead of a measured relay bid curve, so the delay price is confounded by demand and is an upper bound, not a price; an assumed skip risk instead of a measured orphan hazard, so the cost half of the delay trade is asserted rather than priced; and hours of data instead of a 216k-slot panel. Each gap has a specific closer: a second independent vantage identifies κ; an instrument orthogonal to demand (spillover congestion, shred-loss events, post-skip position-1 slots) identifies the slope; more days fit the hazard and pin θ. Until then the dollar figures are an upper bound on an upper bound, and the honest content of this page is the direction and the machinery, not the magnitude.

Every number above is either measured on-chain or a clearly-labelled counterfactual. Below is the full pipeline, the identifying assumption, the live statistical evidence, and an honest catalogue of the objections plus the tests that answer them. All inputs are public; the pipeline submits no transactions and holds no key.

1 · Data collection

Propagation, and its central weakness. One node in Frankfurt subscribes to a Yellowstone Geyser gRPC slot-status stream. Per slot I log the server timestamp of SLOT_FIRST_SHRED_RECEIVED and SLOT_COMPLETED. Both stamps share a clock, so path delay cancels in the difference, but that cuts both ways: it cancels the network transit I want to measure, leaving a window dominated by the leader's own shred-emission span, which no transport can compress. So this is a streaming window, not transit. Only κ of it is compressible, κ is not identified from one vantage point, and it is a slider above.

MEV & fees. Jito tips = positive balance deltas on the 8 tip-payment accounts, summed per slot. Leader fees = the block-meta Fee reward (100% of priority + 50% of base fees, post-SIMD-0096). Operators = validators union-find'd by shared vote-withdrawer or website; getLeaderSchedule maps each slot to its leader and 4-slot window position.

Sample: 2.0 days of continuous capture (432,000 leader slots · 673 leaders).

2 · From milliseconds to dollars

The unit is the leader slot. The delay-budget model (ported from the Ethereum propagation study): 6× faster transit saves Δ = transit × (1 − 1/6) ms; a leader can seal Δ ms later at unchanged skip risk, sweeping up more late-arriving revenue. Value/slot = (dRevenue/dms) × Δ, summed over the tips and fees channels, × the operator's leader-slots per year.

dRevenue/dms is the within-leader-window slope of revenue on sealing lateness , how much later a block completed than its window position predicts. Comparing a leader's own four consecutive slots holds its stake, hardware, geography and near-term load fixed.

3 · The counterfactual, stated

"" is a free parameter, not a Solana measurement. Optimum's published 6× is an RLNC overlay measured on Ethereum's Hoodi testnet against a gossipsub baseline, a different protocol on a different chain. Firedancer (a client) and DoubleZero (private fibre) are different categories again. Nobody has published a 6× for Solana shred propagation, so treat it as an input. It also carries the asterisk from the Ethereum study: that 6× was measured against a gossipsub baseline on Hoodi, whose transit ran roughly twice mainnet's, an elevated baseline flatters the multiple.

It applies only to the compressible share κ of the observed window, the leader's own emission span is a choice, not a network cost, and no transport removes it.

It holds fixed skip risk and everything a leader can't change by networking. It assumes the leader re-tunes its sealing to actually spend the saved budget, a behavioural change; a passive install earns far less. Read the dollars as an order of magnitude, priced at a fixed SOL value, not a quote.

The live statistical evidence

The whole dollar column rests on these two within-window slopes, re-estimated on every daily run with cluster-robust standard errors (clustered by leader) and a wild cluster bootstrap. A slope indistinguishable from zero means the corresponding value is too.

Jito tips · sealing slope

+0.00022 SOL/100ms
t +3.40 · wild-p 0.000 ✓ significant

Leader fees · sealing slope

+0.00030 SOL/100ms
t +1.08 · wild-p 0.303 not distinct from 0

Inference

within-leader-window FE
cluster-robust + 499× wild bootstrap

What can stand against the data

The objections I take seriously, each with its current status, stated before anyone else can raise them.

  1. Demand simultaneityopen
    The biggest problem, and why the slope is an upper bound. Within a window, a slot completes later largely because more transactions arrived and got packed: and more transactions mechanically means more fees. A demand shock causes later completion AND higher revenue jointly, so what I estimate is closer to 'busy slots pay more' than 'an exogenous millisecond causes revenue'. Window fixed effects hold the leader's stake, hardware and geography fixed; they cannot hold load fixed slot-to-slot. Compute units enter as a control, but CU is the mediator (packing is how delay earns), so it under- or over-corrects rather than solving it. Cluster-robust SEs and the wild bootstrap fix inference on the slope; they do nothing about what the slope is. This is a genuine downgrade from the Ethereum study, where dV/dt came from relay bid traces, an ex-ante auction price, clean of realisation confounds. Closing it needs an instrument orthogonal to demand: congestion spilling over from a different leader, network-level shred-loss events, or position-1 slots following a skipped predecessor.
  2. The window is not transitopen
    Why κ exists. COMPLETED−FIRST_SHRED shares a clock, so path delay cancels, which also cancels the network transit it was meant to capture. What remains is mostly the leader's own shred-emission span, which no transport compresses. Applying a network speedup to all of it (as the first version of this page did, implicitly κ=100%) contradicts the stated principle that publication timing is not compressible, and inflates every dollar. Only the differential component (path jitter, repair and FEC rounds) is compressible. Separating the two needs leader-side emission timestamps or a multi-vantage sighting spread; one node provides neither.
  3. Single vantage pointopen
    Everything is measured at one Geyser node, not an independent multi-region fleet, so there is no cross-validation and leader geography contaminates the level of the window. Same-clock differencing removes the constant path delay but not the differential component (route changes, congestion drift, my node's own load across the streaming window). The Ethereum study took a sentry median across vantage points; this is n=1. A second independent provider is the top open item, and it is what would identify κ.
  4. Vote credits not measuredopen
    Solana built Timely Vote Credits (SIMD-0033) specifically to reward vote latency: a vote earns max(1, 16 − max(0, latency − 2)) credits, and inflation is paid in proportion to credits. Dismissing the protocol's own latency-incentive channel in a study about the value of latency is a real gap. The bound: a validator already landing votes within the 2-slot grace earns the full 16 and gains nothing from being faster; one improving from 3 slots to 2 gains 1/16 = 6.25% of its inflation. Since inflation dwarfs fees, even a small movable share rivals the fee channel, so this is not safe to wave off. It is measurable from vote-transaction latency on-chain and is the first thing I would add.
  5. Skip risk assumed, not measuredopen
    The delay budget is spent 'at unchanged skip risk' by assumption. On Ethereum the orphan-hazard curve was the honest half of the trade, the measured cost of delaying. Here the cost side is asserted, and with 17 dead forks observed the hazard cannot yet be fit. A delay budget without a measured hazard is half a model, and it is the half that made the Ethereum version credible. It is also what would pin θ.
  6. Fixed transaction poolopen
    The delay gain is drawn from a pool roughly fixed over any short window: a slot that seals later absorbs fees that would otherwise land in the next slot, a transfer, not creation. Each per-operator bar is a lone-adopter bound; the combined total is not additive network value. The sweep above models this as (1 − α) decay, with φ setting whatever floor survives saturation.
  7. A Solana-native lever?open
    Ethereum proposers make a discrete publication decision against a 4s deadline. Solana leaders stream shreds continuously inside a PoH-paced 400ms window. The claimed lever (extend packing into the window's tail before emitting the final shreds) is real but narrower, and it is fair to ask whether the delay-budget abstraction survives the port intact or whether it has been carried over from a scheduler that has the knob in a different form. I have not established the leader-side mechanism, only the reduced-form association.
  8. Inference clusters one wayaddressed
    Congestion shocks cluster in time across leaders (the same minute hits everyone) so leader-only clustering could understate the errors. I ran the fix (Cameron-Gelbach-Miller two-way, leader × hour). The fee slope does not hold at t +1.26, p 0.2095, with standard errors inflating 0.86×; tips inflates 0.91×. So the headline does NOT survive the correction my own catalogue demanded. The caveat I will not bury: this panel yields only 49 hour-clusters, which is few for asymptotics in that dimension, so it is reassurance rather than proof, a multi-day panel is the real test.
  9. Operator clustering heuristicopen
    Operators are union-found by shared vote-withdrawer or website. Its error mode is false merges: a shared custodian or a hosting provider's site could fuse unrelated operators into one. It also under-groups anyone using per-node cold withdrawers with no published site, so concentration here is a lower bound, never an over-count.
  10. Magnitude is volatileopen
    The fee slope moved ~15× between the 4-hour and 1-day runs, and the top-operator figure swung ~4×. The direction (fees > tips, positive) is stable; the magnitude is not. The daily re-estimate tracks whether it settles.
  11. Behavioural assumptionto do
    The value requires leaders to actually re-tune sealing to spend the budget. A passive install earns far less. The framing is conditional on that behaviour change, and stated as such.
  12. Fee = total, not priorityaddressed
    The block-meta Fee reward mixes base + priority fees. Priority dominates in the busy periods that drive the estimate; base is a small, near-constant floor.
  13. Fixed inputsto do
    6× is a free parameter, not a Solana measurement. SOL is priced as of the render timestamp in the header. Both scale the result linearly, swap either and every figure rescales.

How I show it's solid

The design and the checks that make the causal reading credible, what's already in place and what's still owed.

  1. Within-window FEaddressed
    The core identification: comparing a leader's own four consecutive slots strips the cross-sectional confound (busy slots are both slower and richer). The gap between the confounded slope (t≈2.5) and the within-window slope is that bias, and it is large.
  2. Cluster-robust + bootstrapaddressed
    Standard errors clustered by leader (650+ clusters), plus a restricted wild cluster bootstrap with Rademacher weights. The p-values above come from that empirical distribution, not a normal approximation that over-rejects.
  3. Placebo that firedaddressed
    The position design asks the naive question, do later slots in a leader's window earn more? It came back significantly negative (t −3.9), and I publish it. Why that does not invalidate the main design: position is not a clean proxy for delay, because slot 0 inherits the backlog accumulated across the leader handoff and later slots work a drained queue. That drain is a real nuisance structure, and it is exactly why the sealing variable is defined as the residual from the position-implied schedule (t_completed − window_start − position×400ms), so position is differenced out by construction. The fired placebo documents the nuisance the sealing design already removes, and kills the coarse "position = delay exposure" reading, which is why I do not use it. What it does not do is rescue the sealing slope from the demand confound in objection 1, that remains open.
  4. No-op recoveryaddressed
    By construction, at speedup = 1 the counterfactual reproduces the measured baseline exactly, a model that can't recover reality with the treatment off is untrustworthy everywhere.
  5. Full-range skip accountingaddressed
    Slots skipped outright never appear in the stream, so skips are counted against the full leader schedule, the skip rate isn't silently undercounted by only-what-I-saw.
  6. Second independent vantageto do
    A non-HelloMoon node in another region, to measure the transit spread and cleanly separate transit from publication delay.
  7. Skip-hazard capto do
    P(dead-fork | transit) to bound how far the delay budget can be spent before a block is lost, currently underpowered; needs more days.
  8. Longer panelopen
    More continuous days for Channel-B power and a tighter confidence interval on the fee slope. Collection is ongoing; the page re-estimates daily.