TradingStale

Ethereum block builder market share

Share of Ethereum mainnet blocks attributed to each block builder via the extraData self-label, cross-checked against relay bidtraces. Observational, no transactions sent.

TL;DR. As of , Titan leads block share (24h) at 47.1% (24h avg) on Ethereum block builder market share. Source: OpenChainBench, https://openchainbench.com/benchmarks/evm-block-builders.

Read this carefully

Attribution relies on the extraData tag each builder voluntarily stamps into its blocks. A builder can change or strip its tag at any time; unrecognized tags land in the Other row and every raw string is logged so the table grows. High share is a centralization datapoint, not a quality ranking.

Who actually builds Ethereum? Since MEV-Boost, validators outsource block construction to a handful of specialized builders, and the builders sign their work: each stamps a self-label into the block's extraData field ("Titan (titanbuilder.xyz)", "beaverbuild.org", and so on). This benchmark decodes the extraData of every mainnet block, attributes it to a curated table of known builder tags, and publishes the live market share. The result is the concentration story in one chart: 95 percent plus of Ethereum blocks are built by a handful of private builders, and the top two regularly build most of the chain. Blocks carrying an execution client's default tag (geth, reth, nethermind, besu version strings) are counted as vanilla, meaning the proposer built locally instead of outsourcing; that row is the live measure of how much of Ethereum still self-builds. As an independent cross-check the harness also polls the public bidtrace data APIs of seven MEV-Boost relays (Flashbots, ultrasound, Agnostic, bloXroute max-profit and regulated, Titan, Aestus) and counts delivered payloads per relay, a signal that does not depend on any builder's self-chosen label.

Methodology

We attribute every Ethereum mainnet block to its builder by decoding the block's extraData field, the 32 bytes a builder uses to sign its work in human-readable ASCII. The harness polls the head of the chain through a keyless public RPC once per 12 second slot, backfills any blocks missed between polls by number, decodes extraData to printable ASCII and matches it against a curated substring table of known builder tags (Titan, Quasar, Eureka, BuilderNet, beaverbuild, rsync, Flashbots, Builder+ and more). Client-default tags (geth, reth, nethermind, besu, erigon version strings) and empty extraData count as vanilla, locally built blocks. Anything unrecognized counts as Other, increments an unattributed counter, and logs the raw string so the table can grow, the same philosophy as the tip-wallet table in bench 016. The headline metric is each builder's percentage of all blocks observed in the last 24 hours. Two companion measurements ship in the same harness. First, an independent cross-check: the public bidtrace APIs of seven MEV-Boost relays are polled every five minutes and delivered payloads are counted per relay, deduped per relay by slot high-water-mark; the same slot appearing on several relays is normal because builders multi-home their bids. Second, an L2 soft-confirmation study: the harness holds the Arbitrum sequencer feed and the Base flashblocks stream open and measures how far those preconfirmation channels run ahead of the public RPC head, emitted as histograms for a future bench page. At inception a 50 block live sample attributed 98 percent cleanly: Titan 19, Quasar 16, Eureka 6, BuilderNet 2, beaverbuild 1, Builder+ 1, one vanilla block.

Frequently asked

How is a block attributed to a builder?

Builders stamp a self-label into the 32-byte extraData field of every block they construct, for example 'Titan (titanbuilder.xyz)' or 'beaverbuild.org'. The harness decodes extraData to ASCII and matches it against a curated substring table. Empty or client-default extraData (geth, reth, nethermind version strings) means the proposer built the block locally and counts as vanilla. Unrecognized tags count as Other and are logged raw so the table grows. At inception, 98 percent of a live 50-block sample attributed cleanly.

Can a builder game this by changing its extraData?

Yes, extraData is voluntary self-labeling, and that is disclosed as the bench's main caveat. A builder could blank its tag (blocks would fall into Other, and the unattributed counter plus raw-string logging would surface the shift within hours) or imitate another builder's tag (detectable by divergence against relay bidtraces, which report the builder's signing pubkey rather than its label). In practice builders keep their tags stable because the label is marketing: searchers pick builders partly on public share stats.

Why do the p50, p90 and p99 columns show the same number?

This bench has no latency dimension, so the percentile slots are repurposed, same convention as bench 016. Every aggregate column carries the builder's 24h block share; the sample column carries the raw block count and the success column reports the harness's own RPC poll health, not anything about the builder. The ranking signal is the share itself.

What is the relay cross-check and why does it not sum to 100 percent?

Seven MEV-Boost relays expose a public data API listing every payload they delivered to a proposer. The harness counts delivered payloads per relay every five minutes. Because builders submit the same bid through several relays and every relay that carried the winning payload reports it, one block can legitimately appear on multiple relays. Relay counts therefore measure relay market share and act as an attribution sanity check independent of extraData; they are not a partition of blocks and do not sum to the block count.

Why does builder concentration matter?

Under MEV-Boost, validators outsource block construction, so whoever builds most blocks decides transaction ordering and inclusion for most of Ethereum. Concentration in two or three private firms creates censorship surface (a dominant builder filtering transactions affects most blocks), a single point of failure for liveness of the fee market, and information asymmetry for anyone trading on-chain. Projects like BuilderNet exist specifically to mutualize this layer; this bench provides the neutral number for whether concentration is getting better or worse.

Source code github.com/ChainBench/OpenChainBench/tree/main/harnesses/evm-block-builders