Tools/Explorers

Bitcoin Block Template Comparison by Mining Pool

Compare block template construction across major mining pools: transaction selection, fee optimization, OP_RETURN policies, OFAC filtering, and empty block rates.

Spark Team

How Mining Pools Build Block Templates

A block template is the candidate block a mining pool assembles before handing it to miners to hash. The pool selects which transactions from the mempool to include, in what order, and whether to apply any filtering rules. Because the top four pools collectively produce over 70% of all Bitcoin blocks, the policies they apply during template construction have a direct impact on censorship resistance, fee market efficiency, and which transactions get confirmed.

Under the legacy Stratum V1 protocol, the pool operator constructs the block template and miners have no say in transaction selection. Newer protocols like Stratum V2 (with its Job Declaration feature) and OCEAN's DATUM protocol allow miners to build their own templates from their own full node. In practice, the vast majority of hashrate still relies on pool-built templates.

Pool Overview and Template Policies

The following table summarizes how the five largest pools and OCEAN handle block template construction. Hashrate figures are approximate and fluctuate weekly: check a live tracker like mempool.space for current numbers.

PoolHashrate ShareTemplate BuilderProtocolOP_RETURN PolicyOFAC Filtering
Foundry USA~27-30%PoolStratum V1Standard (80 bytes)No evidence of current filtering
AntPool~18-21%PoolStratum V1 (V2 working group member)Standard (80 bytes)No evidence of current filtering
F2Pool~10-16%PoolStratum V1Standard (80 bytes)Documented filtering of OFAC-listed addresses
ViaBTC~10-13%PoolStratum V1Standard (80 bytes)Brief filtering reported in 2023
MARA Pool~5-7%PoolStratum V1Standard (80 bytes)Ran OFAC-compliant pool in 2021, reversed
OCEAN~2-3%Miner (via DATUM)DATUMDefault: 42 bytes (Knots-based); unfiltered option availableNo

For a broader comparison of pool fees, payout methods, and minimum thresholds, see the Bitcoin mining pool comparison.

Transaction Selection and Fee Optimization

Most pools run Bitcoin Core's getblocktemplate RPC, which sorts transactions by ancestor feerate and packs them into the block to maximize total fees within the 4 million weight unit limit. Bitcoin Core's cluster mempool upgrade refines this approach by selecting the highest-feerate "chunks" across transaction clusters rather than sorting by individual ancestor feerate, which can produce more fee-optimal templates.

Pools may also include transactions that are not in the public mempool at all. Out-of-band transaction acceleration services let users pay a pool directly (often via Lightning) to prioritize a stuck transaction. The Mempool Accelerator service, launched in 2024, partners with Foundry, MARA, SpiderPool, OCEAN, and SBI Crypto, which together represent roughly 40% of network hashrate. F2Pool and ViaBTC operate their own acceleration services. These services effectively create a private fee market alongside the public mempool.

Out-of-band payments are invisible to other nodes and cannot be accounted for by fee estimation algorithms. A transaction sitting at 1 sat/vB in the mempool may get confirmed in the next block because the sender paid a pool off-chain to treat it as if it were paying 20 sat/vB. This distorts the fee market and makes fee estimation less reliable for everyone else.

OP_RETURN and Inscription Filtering

The OP_RETURN opcode lets users embed arbitrary data in a transaction output that is provably unspendable. Bitcoin Core's default relay policy limits OP_RETURN payloads to 80 bytes, but Ordinals inscriptions and other data-embedding schemes use witness data instead, bypassing this limit entirely.

OCEAN is the only major pool that applies content-based filtering by default. Its default template, built on Bitcoin Knots, caps OP_RETURN outputs at 42 bytes and filters inscription transactions. This policy became controversial when it inadvertently blocked some CoinJoin transactions that used a 46-byte OP_RETURN field. After community pushback, OCEAN added template options: miners can choose between the Knots-based default, a Bitcoin Core template that filters only inscriptions, or a fully unfiltered Bitcoin Core template (which carries a 2% pool fee versus 1% for DATUM-based mining).

All other major pools accept inscriptions and standard OP_RETURN transactions without filtering. From a revenue perspective, inscription transactions have at times accounted for a significant share of total fees, making filtering a direct tradeoff between policy preference and miner income.

OFAC Compliance Filtering

Transaction censorship by mining pools is one of the most debated risks to Bitcoin's censorship resistance. Developer 0xB10C has documented instances of pools excluding transactions involving OFAC-sanctioned addresses. The evidence is limited but real:

  • MARA Pool ran an explicitly OFAC-compliant filtering policy in May 2021 and reversed course within weeks after industry backlash.
  • F2Pool was documented filtering OFAC-listed transactions in late 2023. A January 2025 analysis by 0xB10C identified 15 OFAC-sanctioned transactions missing from blocks, with F2Pool cited as the likely filtering pool.
  • Reports from 2023 suggested Foundry USA and ViaBTC also excluded some sanctioned transactions, though current evidence does not confirm ongoing filtering by either pool.

Single-pool filtering does not break censorship resistance in practice: excluded transactions are simply included by the next non-filtering pool to mine a block. The risk becomes systemic only if pools representing a majority of hashrate adopt coordinated filtering. With the top two pools controlling roughly 46% of blocks, the margin is narrower than many assume. For deeper analysis, see Block Template Construction: The Hidden Centralization Risk in Bitcoin Mining.

Empty Block Rates

An empty block contains only the coinbase transaction and no user transactions. Empty blocks occur when a pool finds a new block shortly after receiving the previous block header but before it has validated the full block and updated its mempool. SPV mining (mining on headers before full validation) is the primary cause. The network-wide empty block rate has declined significantly over the years and sits at roughly 0.15% to 0.5%.

PoolEmpty Block RateNotes
Foundry USA~0%Zero empty blocks reported over a 24-month observation period
MARA Pool~0%Zero empty blocks reported over the same 24-month period
AntPool~2%Higher than most pools; mempool.space research data
F2Pool<0.5%Near-zero empty blocks in recent data
ViaBTC<0.5%Low empty block rate
OCEANLowMiner-built templates via DATUM reduce SPV mining risk
SpiderPool>5%Highest among major pools; subject to community scrutiny

Empty blocks waste block space and delay confirmation for pending transactions. A pool with a high empty block rate costs its own miners fee revenue (since only the block subsidy is earned) and degrades the experience for users waiting for confirmation.

Stratum V2 and Miner-Side Template Construction

The long-term solution to pool-controlled templates is to give miners the ability to choose their own transactions. Stratum V2's Job Declaration sub-protocol enables exactly this: a miner running a full node constructs a template locally and proposes it to the pool for authorization.

DEMAND Pool (DMND), which launched in March 2025 as the first Stratum V2-native pool, mined block 955,318 using Job Declaration: the first known production block where the miner, not the pool, selected the transactions. In May 2026, seven major pools (including Foundry, AntPool, F2Pool, and MARA) joined the Stratum V2 Working Group, signaling intent to support the protocol.

However, joining the working group and deploying Job Declaration are different things. Estimates suggest 15-20% of hashrate connects via Stratum V2, but only around 5% uses Job Declaration for miner-side template construction. Most V2 connections use it for encrypted communication and efficiency gains while still accepting pool-built templates.

OCEAN's DATUM protocol achieves a similar goal through a different mechanism. DATUM requires miners to run their own Bitcoin full node and construct templates independently. Unlike Stratum V2's Job Declaration, which negotiates template approval with the pool, DATUM gives the miner full autonomy over transaction selection.

For more on how Stratum V2 shifts power back to miners, see Stratum V2: How a New Mining Protocol Returns Block Construction to Miners.

How Block Template Differences Affect Censorship Resistance

Bitcoin's censorship resistance depends on no single entity being able to permanently exclude a valid transaction from the blockchain. The current reality is that a handful of pools build templates for the majority of blocks, and those pools can unilaterally decide to exclude transactions based on regulatory pressure, content-based policies, or commercial relationships.

The key metric is not whether any single pool filters, but what percentage of hashrate a transaction must wait out before reaching a non-filtering miner. If a pool controlling 30% of hashrate filters a transaction, the expected wait increases by roughly 43% (from an average of 10 minutes to about 14.3 minutes). If pools controlling 50% filter, the average wait doubles to 20 minutes. These delays are inconvenient but not catastrophic: the transaction still confirms. The scenario becomes dangerous only when filtering pools control enough hashrate that the wait becomes hours or days, or when they can coordinate to reject filtered transactions even after another pool includes them (a 51% attack on specific transactions).

Tools like mempool.space's block health score and the miningpool-observer project help the community monitor template differences in real time. A block with 100% health contains every transaction its template predicted. Blocks below 100% may indicate deliberate exclusion, though latency and race conditions can also explain gaps.

How to Monitor Block Templates

Several tools exist for tracking what pools include in their blocks:

  • mempool.space shows block health scores and compares expected templates against mined blocks for each pool.
  • miningpool-observer (by 0xB10C) tracks template differences, missing transactions, and sanctioned transaction inclusion across pools.
  • Hashrate Index and miningpoolstats.stream provide real-time pool hashrate distribution data.

For a visual guide to reading mempool data, see the Bitcoin mempool visualization guide.

Frequently Asked Questions

What is a Bitcoin block template?

A block template is the set of transactions a mining pool assembles into a candidate block before distributing it to miners for proof-of-work hashing. The template determines which transactions get confirmed in that block, how fees are allocated, and whether any transactions are excluded. Under Stratum V1, the pool builds the template. Under Stratum V2 with Job Declaration or OCEAN's DATUM protocol, miners can build their own.

Do any Bitcoin mining pools censor transactions?

Yes, there is documented evidence of transaction filtering. F2Pool has been observed excluding OFAC-sanctioned transactions as recently as early 2025. OCEAN filters inscription transactions by default (with an opt-out for miners). MARA Pool briefly ran an OFAC-compliant filter in 2021 before reversing course. No pool currently advertises active OFAC filtering as a feature, but the filtering that occurs is observable through block analysis tools.

Why do some mining pools mine empty blocks?

Empty blocks typically result from SPV mining: a pool starts hashing on a new block header before fully validating the previous block and updating its transaction set. The pool mines with an empty template to avoid including transactions that might conflict with the previous block. While the practice earns only the block subsidy (forgoing transaction fees), it minimizes the risk of mining an invalid block. The overall network rate has dropped below 0.5% as pools have improved their validation infrastructure.

What is the difference between Stratum V2 and OCEAN's DATUM protocol?

Both protocols enable miner-side block template construction, but they differ in architecture. Stratum V2's Job Declaration sub-protocol lets a miner propose a template to the pool for approval before mining against it. DATUM gives the miner unconditional control over transaction selection without requiring pool authorization. Stratum V2 is a broader protocol that also adds encryption and efficiency improvements, while DATUM is specific to OCEAN and focused solely on template independence.

How do out-of-band transaction accelerators affect the fee market?

Acceleration services like the Mempool Accelerator and pool-specific accelerators from F2Pool and ViaBTC create a private fee channel alongside the public mempool. Users pay the pool directly (often via Lightning) to prioritize a transaction, and the payment does not appear on-chain. This means fee estimation algorithms cannot see the true demand for block space, potentially causing other users to underpay and wait longer. Acceleration services currently cover roughly 40% of network hashrate through pool partnerships.

Does block template filtering affect Bitcoin's security?

Template filtering by individual pools degrades convenience (adding confirmation delay for filtered transactions) but does not compromise Bitcoin's security model unless filtering pools control a majority of hashrate. The current Nakamoto coefficient for Bitcoin mining sits around 3, meaning three pools could theoretically collude to control block production. If those pools agreed to filter the same transactions, the censored transactions would face significantly longer confirmation times but would still eventually confirm as long as any non-filtering pool remains active.

Which mining pool gives miners the most control over transaction selection?

OCEAN is the only pool where miner-side template construction is the default mode of operation. DEMAND Pool (DMND) supports Stratum V2 Job Declaration natively, allowing miners with full nodes to build their own templates. Braiins Pool also supports Stratum V2 connections. All other major pools build templates centrally, though several have joined the Stratum V2 Working Group and may add Job Declaration support in the future.

Block template construction sits at the intersection of mining centralization and transaction censorship. As protocols like Stratum V2 mature, the shift toward miner-built templates could reduce the influence any single pool has over which transactions reach the blockchain. Projects building on Bitcoin, including layer-2 networks like Spark, depend on reliable base-layer transaction inclusion for settlement and channel operations, making template neutrality a shared concern across the ecosystem.

This tool is for informational purposes only and does not constitute financial advice. Data is approximate and based on publicly available information from sources including mempool.space, miningpool-observer, and pool documentation. Hashrate shares, empty block rates, and filtering policies change frequently. Always verify current data before making decisions.

Build with Spark

Integrate bitcoin, Lightning, and stablecoins into your app with a few lines of code.

Read the docs →