What are inclusion delays?

The inclusion delay is the time between the moment a transaction is received by the validator TPU and the moment it is sent in a shred as part of the block being built. This delay consists of the time needed to verify the transaction, its signature, to execute the transaction, and to update the accounts accordingly. But it also includes any time during which the validator intentionally holds the transaction in a buffer and does nothing.

How is this data collected?

We use a setup consisting of multiple transaction senders in different regions and a receiver monitoring emitted shreds. When we detect one of our transactions in a received shred, we measure the elapsed time since the transaction was sent. We then subtract an estimate of the time it took for our transaction to reach the leader, and an estimate of the time it took for the leader’s shreds to reach our receiver.

The resulting inclusion delays are approximate, especially for validators with low stake or those migrating between servers. However, the overall trends remain informative.

What is the meaning of the Client column?

The client column indicates the validator's client software (Firedancer or Agave), the Firedancer packing strategy, and additional information as icons:

PRF: Performance strategy

BAL: Balanced strategy

BUN: Bundle/Revenue strategy

var.: multiple strategies during data collection period

: The validator also receives transactions from a Jito block engine.

: The validator also receives P3 transactions via Paladin.

: The validator uses a non-default TPU for QUIC transactions, suggesting the presence of a relayer, or some kind of mempool.

: The validator uses a Jito public relayer (on August 28, 2025, Jito shut their public relayers down for on unknown duration).

: The validator is connected to a Jito BAM cluster.

Why do validators introduce these delays?

Validators introduce delays to increase their rewards, for themselves and/or their stakers.

Why does delaying transactions increase rewards?

There are two main reasons:

1. Bundles received from Jito Block Engine include a tip paid to the validator or to its stakers (after Jito's commission). The tip is only collected if the bundle succeeds. In contrast, native transactions contain a priority fee that the validator collects even if the transaction fails. Therefore the validator prioritizes bundles and ensures no native transaction can conflict and make them fail. The validator doesn't care if native transactions fail.

2. During periods of high market activity, when there are not enough compute units (CU) in blocks to include all received transactions, the validator wants to include the transactions paying the highest priority fees. So it waits the longest time possible to have a largest choice when it comes to select the best transactions.

Reason 2 will become less prominent when the size of blocks increases towards 100 millions of CU.

How do validators delay transactions?

The common way when using an Agave client is to use a Jito relayer (self-hosted or public). By default, relayers used to introduce a delay of 200 ms before forwarding transactions to the validator. The default is now 50 ms, though it can be adjusted. Before Jito public relayers were shut down, they still use 200 ms delays.

The Firedancer client can be configured to use one of 3 packing strategies. Most operators use the Revenue (aka Bundle) strategy, which only processes native transactions during the final 50 ms of each 400ms slot.

Should we care?

One could argue than reordering transactions within its block is a validator's prerogative, that the slot is the atomic unit of time for transaction finalization and that sub-slot delays are irrelevant.

However we believe it's an issue that should be addressed. Jito relayers current behavior clearly deviates from the protocol, by not only introducing intra-slot delays, but also by frequently causing native transactions to be delayed until next slot.

Moreover, AlpenGlow will enable fast finalization and shreds dissemination, far below the duration of a slot. Keeping artificial inclusion delays seems orthogonal to this evolution.

High frequency trading, oracles, liquidations, and fast transaction optimistic confirmations are all examples of use cases where sub-slot transaction inclusion is critical.

Today there is no incentive for validators to avoid introducing these delays. Puffin, like many other validators, currently uses a delaying Firedancer packing strategy. But we would be more than happy to switch to an alternative if the community decides to address this issue.

Why are some validators not listed?

Some low-stake validators are not listed because we couldn't gather enough transaction data to estimate their inclusion delays accurately.