Measuring priority fees, positions and transaction classification of Ethereum blocks, July 2025 to October 2026

13 October 2026. Corrected 15 October 2026: fee figures recomputed after a base-fee decoding fix in TEMBRI; see the correction reply below. The edit history shows the original.

Motivation

I work on pricing position within the block on Ethereum L1, mainly out of protocol through MEV-Boost, and also in protocol under EIP-1559. Any such design needs to know what the front of the block pays today, what types of transactions are there, and how they pay.

Summary

The data covers sixteen sampled days, about 115,000 blocks: 1 July 2025, 1 July 2026, 1 to 7 August 2026 and 3 to 9 October 2026. It is execution data only, from TEMBRI, an open-source Rust tool I wrote, run on public Xatu data.

  • Swaps in the first 10% of block gas pay on average 8 to 17 times the priority fee of swaps between 30% and 60%, on every day. Most of the fall happens before 20%. Fee levels fell by about three quarters from 2025 to 2026; the ratio did not fall.
  • About half the swaps in the first 5% of gas paid no priority fee in early August, and about one in eight in early October.
  • Titan accounts for much of the fall in zero-tip transactions at the front, at a nearly unchanged block share.
  • Swaps that pay a priority fee are about twice as frequent at the front as overall, in both months.
  • Builder labels show persistent differences in the correlation between priority fee and position.

Measurement tool: TEMBRI

TEMBRI (Transaction, Ethereum, Mempool, Block and Relay Intelligence) follows transactions from the mempool to the block. The current release reads Xatu execution data and produces the daily tables below. Mempool, relay and direct-payment data are in progress.

Code: GitHub - TLM-Research/tembri: Rust toolbox for reproducible Ethereum execution and mempool measurement. · GitHub (Apache-2.0), commit c30cdb9. The October run is configured in config/weekly_execution_reports.toml.

Data and method

  • Source: Xatu canonical execution Parquet (ethpandaops): blocks, transactions and logs. Days are complete UTC dates. Blocks per cohort: 7,118 (1 July 2025), 7,167 (1 July 2026), 50,239 (August week), 50,219 (October week).
  • Position: gas used up to and including the transaction, divided by block gas used, so a transaction is placed by where it ends.
  • Position bands (disjoint): first 10% of gas, 10% to 20%, 20% to 30% and 30% to 60%. A band’s fee is the simple average over its transactions.
  • Priority fee: min(max priority fee, max fee - base fee) for type-2 and later transactions; gas price - base fee for legacy ones, floored at zero. Zero tip means 0 wei per gas.
  • Types: a swap has a Uniswap V2 or V3 swap event from one pool only. A multi-pool swap has swap events from two or more pools, so it includes both routed swaps and arbitrage.
  • Builder: the block’s extraData string, which is self-reported. “Locally built” means it shows an execution-client version.
  • Week columns: median of the seven daily values (ratios computed per day), with the range in brackets.

1. The front of the block pays more in priority fees

Average swap priority fee (gwei) by position band:

2025-07-01 2026-07-01 Aug 2026 week Oct 2026 week
First 10% of gas 15.63 4.42 3.83 (2.47 to 4.64) 4.57 (2.13 to 6.59)
10% to 20% 5.26 1.41 1.00 (0.78 to 1.11) 1.43 (0.80 to 1.91)
20% to 30% 3.05 0.70 0.53 (0.43 to 0.71) 0.84 (0.44 to 1.06)
30% to 60% 1.64 0.36 0.28 (0.27 to 0.49) 0.48 (0.26 to 0.56)
Ratio, first 10% / 30% to 60% 9.5 12.3 9.4 (8.3 to 17.2) 9.8 (8.2 to 13.2)

The same ratio is 4.8 to 14.8 for multi-pool swaps and 2.5 to 4.2 for token transfers. Zero-tip transactions also reach the front (section 3), so priority fees alone do not capture all payment for front-of-block placement.

2. Transaction types at the front

A type’s share of the transactions in the first 5% of gas, divided by its share of all transactions (both by count):

2025-07-01 2026-07-01 Aug 2026 week Oct 2026 week
Swap 3.1 3.5 3.6 (1.8 to 4.2) 2.0 (1.4 to 2.2)
Swap, positive fee 3.1 2.4 2.2 (1.2 to 2.5) 2.0 (1.3 to 2.1)
Swap, zero fee 3.0 8.6 9.1 (4.7 to 12.2) 3.0 (1.8 to 3.6)
Multi-pool swap 3.0 3.2 2.6 (1.8 to 3.4) 2.5 (1.9 to 2.8)
Token transfer 0.6 1.2 1.7 (1.2 to 2.2) 1.1 (1.1 to 1.2)
Native transfer 0.6 0.5 0.5 (0.4 to 0.8) 0.8 (0.7 to 0.9)

Swaps that pay a priority fee are over-represented about twice in both months. The fall in the swap ratio comes from zero-tip swaps. Token transfers are half of the transactions completing in the first 5% on every 2026 day, against a fifth in 2025.

3. Zero-tip transactions at the front

Share of transactions with zero priority fee:

2025-07-01 2026-07-01 Aug 2026 week Oct 2026 week
Swap, all 4.5% 17.8% 18.5% (16.6% to 20.0%) 8.8% (8.1% to 10.0%)
Swap, first 5% 4.3% 43.4% 49.3% (42.4% to 53.8%) 12.5% (10.3% to 16.5%)
Multi-pool swap, all 5.1% 16.7% 14.1% (12.3% to 18.0%) 9.9% (7.9% to 14.3%)
Multi-pool swap, first 5% 10.4% 21.0% 17.8% (16.6% to 20.8%) 6.4% (4.7% to 11.5%)
Token transfer, first 5% 2.6% 15.5% 8.0% (4.6% to 8.9%) 11.3% (8.6% to 13.9%)

A zero-tip transaction at the front may be paid for by a direct transfer to the builder or by other transactions in its bundle, or be the builder’s own or exclusive flow. Execution data cannot tell these apart.

From August to October, zero-tip swaps in the first 5% fell from about 35,300 to 7,800, and zero-tip transactions of all types from 1.44 to 0.93 per block. By builder, all types (about 52,000 blocks per period):

Builder Block share Front zero-tip txs per block Share of all front zero-tip txs Share of own zero-tip txs placed at the front
Titan 47.0% / 47.9% 2.15 / 1.08 70% / 55% 24.0% / 18.0%
Quasar 20.0% / 19.5% 1.55 / 1.29 22% / 27% 14.6% / 9.5%
BuilderNet 11.8% / 14.8% 0.39 / 0.66 3% / 10% 6.8% / 9.7%
Eureka 8.6% / 4.4% 0.51 / 0.49 3% / 2% 5.9% / 3.9%
bombora 1.3% / 3.0% 1.26 / 0.98 1% / 3% 10.3% / 2.3%
Locally built about 7% / 6% 0 / 0 0 / 0 0 / 0

Each cell is August / October; “front” is the first 5% of gas.

Titan halved its zero-tip front transactions per block, at a nearly unchanged block share. The split by type within each builder is not yet measured. In October, 16.8% of bombora’s transactions pay no priority fee, but only 2% of those are at the front.

4. Builder ordering

Block share and mean within-block Pearson correlation between priority fee and position:

Builder 2025-07-01 2026-07-01 Aug 2026 week Oct 2026 week
Titan 40.7%, -0.35 51.8%, -0.45 47.3%, -0.31 (-0.46 to -0.29) 47.9%, -0.38 (-0.46 to -0.31)
Quasar 4.7%, -0.41 16.4%, -0.55 20.0%, -0.54 (-0.55 to -0.53) 19.6%, -0.50 (-0.57 to -0.48)
BuilderNet 32.9%, -0.47 11.6%, -0.47 12.4%, -0.46 (-0.47 to -0.45) 14.9%, -0.44 (-0.49 to -0.40)
Eureka 8.8%, -0.19 7.4%, -0.24 (-0.27 to -0.22) 3.9%, -0.14 (-0.16 to -0.13)
bombora 1.5%, -0.55 1.2%, -0.58 (-0.60 to -0.56) 2.9%, -0.53 (-0.56 to -0.52)
Locally built 3.0%, -0.63 6.0%, -0.67 7.0%, -0.65 (-0.67 to -0.60) 5.8%, -0.76 (-0.76 to -0.72)

Locally built blocks have the most negative correlation, which fits fee ordering but does not show their source or rule. The correlation also reflects transaction types, gas, bundles and nonce order. Each builder’s value persists across the two weeks; Titan moves most, from -0.31 to -0.38.

5. Low-tip native transfers fell

Native transfers fell from about 1.4 million a day in the August week (average priority fee 0.20 gwei) to about 0.5 million in the October week (0.68 gwei), the 2025 level. Total transactions fell by only about 0.7 million a day (345 to 247 per block); other types rose by about 0.2 million. The cause cannot be seen from execution data.

Limits

  • Swaps are detected only on Uniswap V2 and V3.
  • Public and private flow are not yet separated.
  • Direct payments to the fee recipient are not yet measured; Xatu trace partitions are empty for these days.
  • Sixteen sampled days; no continuous run yet.
  • About 2% of October blocks have no builder label.

Next

  • Split public and private flow with Xatu mempool data and Mempool Dumpster, calibrated on locally built blocks.
  • Direct payments per block, from the fee recipient’s balance change.
  • Zero-tip front transactions by builder and type: which of Titan’s flows fell.
  • A 30-day run including high-volatility days.
  • Uniswap V4, Curve, Balancer and the main aggregators; token flow to separate arbitrage from routed swaps.

Comments, corrections and pointers to related measurements are welcome: danguo01@gmail.com.

1 Like

What the priority fee is set to is largely a function of wallet defaults. MetaMask, which I think is still one of the most used wallets, is very bad at optimizing the priority fee and in some recent versions it just sets it to the calculated base fee.

You can very reliably (within a block in most cases) get transactions included with a priority fee of 0.05 nanoeth or less, but it requires manually setting it that low because wallets do not generally do a good job of optimizing for low priority fee.

1 Like

Correction. The fee figures in the post had an error in TEMBRI’s block reader. It read the wrong Xatu column for base_fee_per_gas, failed to parse it, and used zero, so effective priority fees were computed without subtracting the base fee. A second fix reads the signed integer fields of the older Xatu schema used for 1 July 2025, which had also been misread. Both fixes are public, in feab33a and c30cdb9, and the reader now stops on a missing base fee instead of using zero. Thanks to @MicahZoltu, whose question led me to check the fee fields.

I reran all sixteen days and replaced the tables in the post above; the edit history keeps the original.

What does not change: positions, transaction types, block counts and builder labels, and the conclusions. The front of the block pays several times the middle on every day, most of the difference is before 20% of block gas, and the August to October fall in zero-tip transactions at the front is mostly in Titan’s blocks (2.15 to 1.08 per block).

What changes most:

original corrected
Swap ratio, first 10% / 30% to 60%, range over all days 7.8 to 16.0 8.2 to 17.2
1 July 2025: zero-tip multi-pool swaps in the first 5% of gas 28.0% 10.4%
1 July 2025: zero-tip swaps, all 5.3% 4.5%
October week: zero-tip swaps in the first 5% of gas 11.6% 12.5%
October week: native transfer average priority fee 0.80 gwei 0.68 gwei

In 2026, fee levels fall by a few percent and zero-tip shares rise by about one point. 1 July 2025 changes more, because of the second fix. Builder correlations move by up to 0.06, the largest for locally built blocks on 1 July 2025. That row is now counted strictly by its stated definition, an execution-client version in extraData, which also changes its block shares.

Thanks, this was a great question, and checking it using Tembri led to bug fixing and the base-fee correction above.

I tagged signed fee fields on the August and October weeks. The tags describe fee patterns, not wallets, since chain data does not show whether a transaction came from MetaMask, another wallet or a bot:

  • Round values: max_priority_fee exactly 0.01, 0.05, 0.1, 0.5, 1, 1.5 or 2 gwei. About a third of type-2 transactions in October; 1 and 2 gwei alone are about 20%.
  • Tip equal to the base fee: max_priority_fee within +/- 5% of the base fee. The base fee is taken from the including block and from each of the three blocks before it, since a wallet signs with the base fee it sees before inclusion. A control applies the same test at twice the base fee. For swaps the tag is clearly above the control: 8.7% against 2.0% in October, and 4.4% against 2.1% in August. For token and native transfers it is close to the control (3.9% against 3.0%, and 2.8% against 2.3%, in October). So I see the pattern you describe, but mostly on swaps rather than on simple transfers.
  • The common max-fee formula: max_fee = 2 x base fee + max_priority_fee, with the base fee taken from the same four blocks. This is the default in developer libraries such as ethers.js, which wallets, apps and bots use to build transactions. About 10% to 12% of swaps and transfers in October..

Each tag behaves differently by position. The table gives the ratio of the mean tip in the first 10% of block gas to the 30% to 60% band, median over the seven days of each week:

round tip tip equal to base fee max-fee formula none of these
Swaps, August 1.7 0.6 19.4 4.9
Swaps, October 1.4 0.05 52.4 9.0
Token transfers, August 1.5 0.7 4.3 5.1
Token transfers, October 1.5 0.4 3.9 4.7

Round tips and tips equal to the base fee show no gradient, or a reversed one, which fits senders paying what their software sets rather than bidding for position. Native transfers with any of these tags still land earlier than untagged ones (in August, 9% of them are in the first 5% of gas, against 0.4%), which fits defaults overpaying. The steep gradient sits with the max-fee formula, which suggests bots built on common libraries. Transactions with none of the tags still pay about 5 to 9 times more at the front.

So I agree that defaults set much of the fee level. The position gradient comes mostly from senders who set their fees themselves.

Whether 0.05 gwei or less gets in within a block needs mempool data, since execution data has no first-seen time. That is the next run. Do you know which MetaMask versions set the priority fee to the base fee, or roughly when that started?

I don’t. I just know that some of the recent versions that I have tried have a bug where if the base fee is below a certain threshold (maybe 1 nanoeth) it falls back to setting the priority fee equal to the base fee. Since the base fee has been very low lately, this means it doesn’t ever do anything smart with the base fee.

Note: This may be an un-graceful fallback since I run MetaMask with all “phone home” and remote lookups disabled. Perhaps it is smarter when you use their centralized servers for things rather htan just the connected RPC server.

It’s called a “Gwei”, as in “Giga-wei” (= 1B weis).

SI prefixes (and standards in general) are valuable and have existed for a very long time. gwei is one of the most confusing things for novice users of Ethereum and we should try to move away from it and use SI prefixed ETH everywhere.

1 Like

and “nanoeth” is confusing for veterans, so who wins?

Says who?

classic tension - both can co-exist well. (1eth=10^18wei & why wei is set as the smallest unit)

Nope, SI units on ETH aren’t more usable than SI units on weis here. The problem with the former is that SI doesn’t define units for 1e-18, we have to use weis. The mainstream has already accepted that cryptos have extremely small fractions: all Bitcoin users know about satoshis, all EVM-like chain users know about weis, etc.

good point. personally i like wei. as about ‘mainstream’, idk and thus ‘retract’ my earlier comment.

i have one comment on your observation about wallet’s priority fee:

  1. this is a genuine problem for such transactions with no urgency typically;
  2. i am working on a project - part of the result: those tips could be rebated (via L1/out-of-protocol, through MEV-boost) in exchange as stand-by & giving up early region of block.
  3. Such wallet transfers’ effective fee is base-fee, by factoring in rebate. The rebate is funded by other urgent transactions (swap & arbitrage) which take early region of block.

I looked at something related in Solana AMMs and found cases where execution attempts and priority-fee activity stayed elevated even after prices had converged.

I wonder if the priority-fee gradient across block positions would look different for price-correcting swaps versus those arriving after convergence.

1 Like

Quick TEMBRI update: I’ve added an initial PropAMM measurement foundation for Ethereum. It now supports reviewed event/call decoding, deterministic same-block/same-pool update→fill pairing, transaction-index and gas-gap measurements, and explicit unmatched-fill labels. The pipeline retains maker update timestamps where available and produces per-block/pool and builder-signal summaries.

The current scope is limited: only reviewed contract rules are enabled, and a pair proves on-chain receipt order—not off-chain quote freshness or builder receipt time. Next steps are additional venue decoders, golden-block validation, bytecode grouping, and then quote-age/markout work.
This effort is for me to study PropAMMs and how my research on Temporal Liquidity Market (TLM) can be applied to PropAMMs. Stay tuned.