Invalid Bitcoin blocks: full PoW, consensus invalid

· 39 min read
Cover image for Invalid Bitcoin blocks: full PoW, consensus invalid

tl;dr

  • A block can carry full proof-of-work and still be invalid. The invalid-blocks repository catalogues 143 such Bitcoin blocks from 2010 to 2026, each with the bytes and an offline check that establish which consensus rule it broke, plus 10 reported cases held apart until their evidence turns up.
  • Two are very recent. F2Pool headers from April and July 2026 carry timestamps roughly 7 and 14 days below their parents' median time past. Neither has a known Bitcoin-side capture; both were found in merge-mined auxiliary chains, which is what prompted this post.
  • 89 blocks contain the same P2SH-invalid transaction, mined between April and July 2012 by pools that had not upgraded. Archived explorer txid lists and preserved headers prove its inclusion in each, so the failure is established even though only four complete bodies could be rebuilt.
  • 127 of the 143 have no complete body. A header, a coinbase bound to it by its Merkle branch, or an inclusion proof, plus chain context, is enough to establish the rule that was broken.
  • Merge mining reveals both stale and invalid Bitcoin blocks. Auxiliary chains hold 49 of the 143 headers and provide the catalogue's only recorded observation for 35; the same research recovered roughly 1,400 stale headers new to the stale-blocks collection. Monitoring the chains that merge-mine with Bitcoin is essential to a holistic Bitcoin monitoring effort.

Introduction

Proof-of-work makes a Bitcoin block a candidate. The consensus rules in force at that height make it eligible to extend (or race). This post is about blocks that met the PoW requirements yet failed a consensus rule, thus becoming invalid blocks.

The catalogue, and this post, began with the two most recent cases. In April and July 2026, merge-mined auxiliary chains recorded two F2Pool headers whose timestamps sat a week and two weeks behind the chain, and no Bitcoin-side monitor reported either. I had assumed that consensus-invalid blocks with full proof of work belonged to earlier periods in Bitcoin's history, but two in three months from one of the largest pools suggested otherwise, and raised the question of how many there had been and how much of each survives.

Invalid blocks matter beyond the wasted work. Each is the public trace of a bug in mining software that is otherwise closed, and direct evidence of how a consensus rule was enforced when it changed. For example, as covered in this post, the 2012 cluster shows a pool advertising P2SH support in its coinbase while its node still accepted a spend the new rule forbade, and the 2015 forks show miners extending headers they had not validated.

Recent incidents are usually discussed individually. b10c documented F2Pool's two excessive-sigops blocks and MARA Pool's transaction-ordering failure from 2023, with enough data to reproduce the failures. Earlier incidents more often survive as a hash, a height and a contemporary report, without the bytes needed to check the claimed failure. Those are useful starting points, but not a substitute for the headers, coinbases or transactions that establish it.

I began with the record kept by chains that merge-mine with Bitcoin, because it had already proved the most productive source of stale blocks I know of: the merge-mining records of more than 25 auxiliary chains yielded about 2,160 unique stale Bitcoin headers, roughly 1,400 of them new to the stale-blocks collection (about 1,090 from Namecoin alone) and the rest corroborating headers that Bitcoin-side monitors had captured. The same records also keep headers of invalid Bitcoin blocks, since an auxiliary chain verifies its own rules and not Bitcoin's, and on AuxPoW chains the parent (Bitcoin) coinbase and its Merkle branch survive with them. The search then expanded into archived explorer pages, developer discussions, old node files and test fixtures, and the archives kept by earlier fork research. Combining those sources has made it possible to recover complete blocks in some cases, and in others to establish the failure without one.

The catalogue is bitcoin-data/invalid-blocks, which holds 143 established failures with their proofs and offline checks, and the tables and charts below are generated from its contents as of 22 September 2026. The 10 reported cases presented separately remain outside the catalogue because the surviving evidence does not yet establish their claimed failures. Many of these headers were already in the companion stale-blocks dataset, recorded as stales before their failures were established.

The next section sets out what the surviving evidence proves. The failure families then follow, from the 2010 overflow through the large 2012 P2SH cluster to the pool-template errors and MTP violations of 2017 to 2026, with the reported cases, the summary tables and source notes at the end.

Methodology

The scope of the catalogue

A catalogued header must hash to a value at or below the Bitcoin target required to extend its parent. It must also have enough surviving evidence to establish a specific consensus failure. A reported case has a claim of invalidity and usually a hash, sometimes a header, but not the bytes needed to run that check. Reported cases are therefore kept in the repository's separate ledger and are not fully admitted to the catalogue until the required evidence is available.

“Invalid” also needs a rule context. During a soft-fork transition, nodes enforcing the new rule reject blocks that older software can accept. The 2012 P2SH and 2015 version failures are the main historical examples. The 2010 overflow is a separate, explicitly retrospective case: the software initially accepted it, and the emergency fix made the block invalid. Admitting a block to the catalogue therefore does not claim that every implementation of the day rejected it.

The catalogue counts headers with an established failure in their own contents, rather than every descendant of an invalid block. That distinction matters for the July 2015 SPV-mining forks. That is, a descendant can have invalid ancestry without supplying another instance of a malformed coinbase or invalid transaction. One 2014 descendant is included because its own coinbase independently fails the height rule (so it was itself an invalid block).

The scope also excludes unmined invalid Stratum jobs and invalid relay encodings of otherwise accepted blocks, such as ViaBTC's witness-stripped messages. The March 2013 database fork is outside the catalogue: the triggering block was well-formed, and whether a node could process it depended on that node's Berkeley DB lock state. Two catalogued headers at that height, 225,430, are separate merge-mined candidates that fail the coinbase-height rule, not the block that triggered the fork.

Sources and commitments

Bitcoin P2P monitors can capture some invalid blocks. A failure visible earlier in validation has fewer opportunities to reach an observer, but high-bandwidth compact-block relay can still forward a block before validation against the UTXO set is complete. That window is the likely route by which the 2023 transaction-ordering and sigops failures documented by b10c reached observers. Historical peers that had not adopted a new rule also relayed blocks that upgraded peers rejected, and a monitor connected directly to a pool's node, or to a relay that does not validate, can receive blocks no validating peer would forward.

Merge mining provides a different record. An AuxPoW auxiliary chain verifies its own proof-of-work and commitment rules, and does not require the Bitcoin template to be consensus-valid. The header and coinbase can therefore survive in the auxiliary chain even when Bitcoin peers reject them. Those auxiliary chains also have easier targets, so a broken template can produce many child blocks whose parent headers never meet Bitcoin difficulty and are not catalogued. The initial sweep covered more than 25 auxiliary chains, building on Stifter et al.'s 2018 paper Echoes of the Past, which demonstrated the historical value of this material. The available evidence varies by chain: Rootstock, for example, preserves a truncated coinbase, and Hathor reconstructs the parent header from a split AuxPoW record.

Archives add a third route: explorer transaction lists, complete block responses, test fixtures and old node files. An archived explorer page proves the explorer saw the block, not that a peer relayed it, and a recovered block index can hold a header long after its body file is gone. The catalogue records which of the three routes, Bitcoin P2P observation, merge-mining record or archive, each header was recovered from, and Figure 1 colours the established headers by that combination.

Much of the recovery was done by AI agents working under my direction: chasing archive captures, trying transaction orderings until Merkle roots matched, and assembling bodies from parts. Every proof, body and coinbase they produced is checked by the repository's own verification code, so each case is in the catalogue on the strength of those checks rather than of the agents' output.

Figure 1: The 143 established failures by date and height, coloured by surviving observation channel. Archive covers explorer and node-file recoveries; merge mining covers auxiliary-chain records, whether AuxPoW or another merge-mining commitment such as Rootstock's; Bitcoin P2P covers a recorded peer or monitor observation. Each recorded combination of those routes has its own colour, including the one header retained by all three. These fields are the catalogue's provenance, not an exhaustive census of every historical observer. Diamonds mark the two F2Pool headers plotted at their auxiliary-chain observation dates. Vertical lines mark soft-fork enforcement dates, with BIP34's two thresholds drawn separately; SegWit and Taproot are included for completeness, though no cluster of failures follows them.

The 2012 P2SH cluster is almost entirely archival, while from 2013 merge-mined records dominate. A smaller set, including F2Pool's 2023 sigops blocks, survives in both a Bitcoin P2P record and an auxiliary chain.

Which rule can be checked depends on which bytes survive. A version or timestamp failure needs the header and chain context. A coinbase-height failure also needs the coinbase, tied to that header by its Merkle branch. A script failure can be established from the offending transaction, the output it spends and an inclusion proof: the sibling hashes that carry the transaction's txid up to the header's Merkle root. If hashing the txid together with those siblings, level by level, reproduces the root committed in the header, the header included that transaction, and the coinbase and every other transaction can stay missing.

Fee accounting has a different requirement: a coinbase above the subsidy may be valid if transaction fees cover the difference. The ordinary transactions and their funding values must be known before calling it an overpayment. The Eligius cases below show both sides of that distinction.

Table 1 separates established invalidity from complete-body availability. Every established row is proved. The rows differ only in which bytes are still missing.

Evidence status Blocks
Established failure; complete body available 16
Established P2SH failure; exact coinbase still missing 85
Established header or coinbase failure; complete body unavailable 42
Reported failure; insufficient evidence to establish it 10
Table 1: Evidence available for the 143 established failures and 10 additional reports.
ℹ️

127 of the 143 established failures have no complete body; the rule is still proved from a header, coinbase, or authenticated inclusion.

Failed rule breakdown

Table 2 groups the established cases by failure mechanism. Several mechanisms produce the same Bitcoin Core reject reason, so a reject string alone does not explain what went wrong. Nor is the wording stable: a present-day node reports the 2012 P2SH failure with a different string from the one nodes logged at the time.

Failure mechanism Diagnostic Blocks
P2SH redeem-script failure P2SH VerifySignature failed (historical) 89
BIP34 height: difficulty in height field bad-cb-height 12
BIP34 height: wrong height bad-cb-height 13
BIP34 height: missing script push bad-cb-height 1
Version below BIP66 minimum bad-version 6
Version below BIP65 minimum bad-version 5
Coinbase scriptSig above 100 bytes bad-cb-length 1
Transaction ordering bad-txns-inputs-missingorspent 2
Omitted unconfirmed parent bad-txns-inputs-missingorspent 1
Inputs already spent in parent block bad-txns-inputs-missingorspent 4
Coinbase overpayment bad-cb-amount 2
Excessive sigops bad-blk-sigops 2
Output value overflow bad-txns-vout-toolarge 1
Retarget not applied bad-diffbits 1
Timestamp below parent MTP time-too-old 3
Table 2: Established consensus failures across 143 distinct headers. Shared reject strings are separated by mechanism; the P2SH row shows the 2012 wording, which a present-day node reports as mandatory-script-verify-flag-failed (Operation not valid with the current stack size).

The timeline in Figure 2 shows how strongly the recovered record clusters around particular incidents and eras. The complete identities are in Table 4. Neither the chart nor the catalogue includes the reported cases.

Figure 2: The 143 established failures by date and height, coloured by rule family. Points use header nTime except the two F2Pool timestamp failures, shown as diamonds at their auxiliary-chain observation dates. Overlapping points can represent multiple blocks; the full catalogue distinguishes their identities. Vertical lines mark the same soft-fork enforcement dates as the previous figure.

The failures

The sections below run in order of how many blocks each failure accounts for, from the 89-block P2SH cluster down to the single-block cases, with two exceptions: the 2010 value overflow comes first because it is the earliest and the origin of the retrospective caveat noted above, and the timestamp failures come last because the two 2026 F2Pool headers among them are what prompted this post. Each section states the rule, the blocks that broke it, what survives of them and where, and what can be said about the cause.

The value overflow (1 block, 2010)

At height 74,638, a transaction created two outputs of roughly 92.2 billion BTC each. Their sum overflowed the signed 64-bit value used in the check, so the software then in use accepted the transaction, as shown in Figure 3. The value-overflow incident prompted an emergency fix and a replacement chain. A present-day node rejects the retained body with bad-txns-vout-toolarge.

Figure 3: the value overflow, stage by stage

The two outputs overflowed the signed 64-bit total to −0.01 BTC, producing a positive calculated fee that passed the old check. The addition is broken into stages to illustrate the wraparound.
Figure 3: The two outputs overflowed the signed 64-bit total to −0.01 BTC, producing a positive calculated fee that passed the old check. The addition is broken into stages to illustrate the wraparound.

It is the retrospective case noted above, accepted when mined and invalid only after the fix. It also predates merge mining, so its survival depends on Bitcoin-side records.

One invalid P2SH transaction, many blocks (89 established cases, 2012)

BIP16 changed how pay-to-script-hash (P2SH) outputs were validated for blocks timestamped from 1 April 2012. Under the old rules, a spend could satisfy the outer hash comparison without executing the script that hash commits to. Under the new rules, the revealed redeem script also had to execute successfully. A transaction could therefore pass the old checks and fail P2SH validation.

That is what happened with transaction …ef2d5e3f78d2. The 4 April developer log preserves its 123-byte serialisation, pasted by twobitcoins. It spends a P2SH output confirmed at height 170,054. The input pushes a 1-of-1 OP_CHECKMULTISIG redeem script, with no signature and no dummy element, as shown in Figure 4. Under the old rules the redeem script's hash matches the output and the spend is valid. Under BIP16 the redeem script is then executed, OP_CHECKMULTISIG finds no signature and no dummy element on the stack, and the spend is invalid.

Figure 4: the P2SH spend's missing dummy and signature

The recovered transaction supplies only the redeem script. The missing dummy and signature belong before the redeem-script push in scriptSig; OP_CHECKMULTISIG is inside the redeem script.
Figure 4: The recovered transaction supplies only the redeem script. The missing dummy and signature belong before the redeem-script push in scriptSig; OP_CHECKMULTISIG is inside the redeem script.

Turning explorer records into proofs

A 15 June 2012 explorer capture lists the transaction in 88 blocks from 1 April through 6 June, each matched by height and timestamp to a header preserved in the stale-blocks collection. A separate July discussion identifies another case at height 189,498, bringing the identified population to 89. All 89 headers build on canonical parents, so these are not descendants of a few invalid openers.

Archived explorer block pages supplied complete txid lists for 46 cases. The Decker–Wattenhofer archive supplied lists for the remaining 43. These records do not consistently preserve the order used in the block's Merkle tree. I tested candidate orderings based on transaction dependencies and historical mining priorities until each ordered list reproduced its header's Merkle root. Hashing the recovered 123-byte transaction gives the invalid spend's txid, and its presence in each matching tree authenticates its inclusion in all 89 blocks. Together with the output it spends and the failed redeem script, that establishes the P2SH failure without recovering the complete block.

Height 174,057 is the smallest case: two transactions, a coinbase and the invalid spend. Hashing those two txids together in Bitcoin's byte order reproduces the header's Merkle root, as shown in Figure 5. The coinbase's txid is enough for that proof even though its bytes remain missing.

Figure 5: proving P2SH inclusion without the block body

At height 174,057, the two recovered transaction IDs reproduce the preserved header's Merkle root. The recovered 123-byte spend hashes to the second txid and fails P2SH validation against its funding output; the first transaction's bytes are not needed for the inclusion proof.
Figure 5: At height 174,057, the two recovered transaction IDs reproduce the preserved header's Merkle root. The recovered 123-byte spend hashes to the second txid and fails P2SH validation against its funding output; the first transaction's bytes are not needed for the inclusion proof.

For four blocks, Namecoin's AuxPoW record supplied the missing coinbase bytes as well. Their other transactions later confirmed on the accepted chain, so with those canonical bytes, the Namecoin coinbase and the invalid spend, complete bodies exist for heights 173,928, 173,957, 173,998 and 174,605. The four serialisations are among the block files, the inclusion proofs for the other 85 headers are in proofs/, and the dataset's checks evaluate the spend with and without P2SH against every one of them.

The other 85 P2SH cases are in the catalogue without their coinbase bytes, since the inclusion proof is sufficient on its own. That is, the header commits to the invalid spend through its Merkle root, and the spend fails BIP16 on its own bytes, so the other transactions in the block, the coinbase included, need be known only by their txids and not by their contents. The missing first transactions have authenticated txids, but their coinbase structure cannot be checked without their bytes.

What caused the repeated inclusions?

On 2 April, logs record nodes enforcing BIP16 rejecting the transaction with P2SH VerifySignature failed, and on 4 April Gregory Maxwell summarised that upgraded nodes reject transactions old nodes still accept. In that same discussion Maxwell said the spend was presumably intentional, then noted that a CHECKMULTISIG accident could look the same, and that an attacker could have used a simpler script. Miners still on the old checks could keep including it. The inclusions thinned as miners upgraded: of the 89 blocks, 73 are from April, 13 from May, two from June and one from July.

The coinbases say little about who mined them. The four recovered ones carry eco@ozco.in /P2SH/ twice and nmcbit.com once, so OzCoin mined at least two while carrying the /P2SH/ marker that signalled support for the rule its validation was not yet enforcing, and NMCbit at least one. The fourth is merge-mined and untagged. Of the 86 blocks without a pool tag, archived block pages preserve the coinbase's payout address for 43, and 40 of those are fresh addresses that no canonical coinbase between heights 172,000 and 190,000 reuses and no known pool used, which fits the new key per block that the reference client's own block template drew from its wallet. The same pages record which node relayed each block to the explorer, Deepbit's for 13 of them, and a node relays only a block it accepted, so that node was still on the old rules, but it does not identify the miner. The other 43 untagged blocks have no archived page and no coinbase information at all.

In November, a node still had an April invalid block from an old block file. A reorg disconnected that block, and its transactions entered that node's mempool, including the “invalid p2sh killer”. Despite the discussion, no invalid block resulted: the spend sat in that node's mempool but was never mined again, and the last block to contain it remains 189,498 on 17 July.

Coinbase-height mistakes (26 blocks, 2013 to 2023)

BIP34, whose height rule took effect for version-2 blocks at height 224,413 on 5 March 2013, requires the block height as the first item in the coinbase scriptSig, encoded as a minimally encoded script number. The header's previous-block hash fixes the parent and therefore the required height. A plausible-looking integer in the coinbase is insufficient if it names a different height or uses the wrong encoding. The catalogue contains four recurring issues, with their required and recovered height prefixes compared byte by byte in Figure 6.

Figure 6: required and recovered coinbase height prefixes

The coinbase input expands into its fields, then the scriptSig into the required height prefix and miner-supplied data. Four examples compare the required BIP34 bytes with the recovered prefixes.
Figure 6: The coinbase input expands into its fields, then the scriptSig into the required height prefix and miner-supplied data. Four examples compare the required BIP34 bytes with the recovered prefixes.

Difficulty in the height field: twelve blocks. Across March 2013, heights 225,013 to 226,912, the first coinbase item contains the header's compact difficulty instead of its height. Eight encode 0x1a03d74b; four later blocks encode the next epoch's 0x1a0375fa. The wrong field tracks the difficulty transition, and the pattern persists from 9 to 20 March.

The recovered coinbases are untagged, so the coinbases themselves do not identify the operator, though the report below attributes three of the twelve. Namecoin, Devcoin and Ixcoin supply the surviving observations, and the catalogue has no recorded Bitcoin P2P observation of these twelve headers.

On 20 March, the last day of the cluster, Chris Double (doublec), who ran the Bitparking merged-mining pool at mmpool.bitparking.com, reported version-2 blocks rejected for a coinbase height mismatch and named height 226,845. In the pool's thread the same day he wrote that his merge-mining code had been putting the wrong height data in the coinbase of his version-2 blocks, that it had cost him his last three, and that merge mining was disabled until he had a fix. Gavin Andresen asked whether he had put the wrong thing in the coinbase, and he said he had. His report covers three of the twelve heights. The other nine share the same coinbase layout, the difficulty then an extranonce then the 44-byte merge-mining commitment, the same three auxiliary chains, and all fall between the pool re-enabling merge mining on 9 March and disabling it on 20 March, which points to the same getwork server, though no report names them and the table leaves them unassigned.

An unchanged parent: six BTC Guild blocks. On 3 April 2013, six headers tagged BTC Guild 3 reference the same parent at height 229,387, requiring height 229,388. Their coinbases instead encode heights from 229,405 to 229,506, between 17 and 118 too high. The timestamps fit a template that kept writing the current height while remaining stuck on parent 229,387. Figure 7 shows the mismatch.

Figure 7: BTC Guild's six headers on an unchanged parent

BTC Guild's six headers all reference parent 229,387, requiring height 229,388, while their encoded coinbase heights advance. Dashed links show the main-chain parents corresponding to those encoded heights; red links show the parent actually referenced.
Figure 7: BTC Guild's six headers all reference parent 229,387, requiring height 229,388, while their encoded coinbase heights advance. Dashed links show the main-chain parents corresponding to those encoded heights; red links show the parent actually referenced.

Off by one: seven blocks. Six coinbases encode a height one too high; an Eligius block encodes one too low. Their similar errors do not establish a shared implementation or a single long-lived bug. Four build on stale or invalid parents. The 2016 blocks at 402,610 and 422,059 extend stale parents. The 2014 pair at heights 331,673 and 331,674 extends a stale block and then an invalid block, as shown in Figure 8. Both are counted because each coinbase encodes the wrong height on its own, and the second block's invalid parent is a separate defect.

Figure 8: the 2014 off-by-one fork

A stale block at 331,672 is extended by two blocks whose coinbase heights are each one too high. Block 331,674 independently fails the height rule and also has an invalid parent.
Figure 8: A stale block at 331,672 is extended by two blocks whose coinbase heights are each one too high. Block 331,674 independently fails the height rule and also has an invalid parent.

The right number, the wrong encoding: one Hathor recovery. At height 649,674 in September 2020, the coinbase starts with fe ca e9 09 00, Bitcoin's CompactSize encoding of 649,674. BIP34 requires a script push, 03 ca e9 09, as compared in Figure 9. The fe marker does not perform that push, so the coinbase violates BIP34 (bad-cb-height).

Figure 9: script push versus CompactSize at height 649,674

Height 649,674 as the required BIP34 script push and the observed CompactSize value. CompactSize uses a four-byte integer at this value; its marker does not supply the required script-push prefix.
Figure 9: Height 649,674 as the required BIP34 script push and the observed CompactSize value. CompactSize uses a four-byte integer at this value; its marker does not supply the required script-push prefix.

The height encoding is one of several defects in this block, compared in Figure 10. The coinbase carries witness data without an OP_RETURN witness-commitment output, the supplied branch reaches the header root through the wtxid rather than the txid, and the payout script omits the byte that should push the 20-byte public-key hash.

A current node fed the block as assembled would therefore report bad-txnmrklroot before reaching the BIP34 check, and unexpected-witness if the body did match the root, while the malformed payout alone does not invalidate a block. These findings concern the retained coinbase and proof, not a recovered complete Bitcoin body.

Figure 10: further defects in the Hathor coinbase

The Hathor recovery's height encoding, witness data without a coinbase `OP_RETURN` commitment, supplied branch using wtxid, and malformed payout. The payout defect alone is not a block-validity failure.
Figure 10: The Hathor recovery's height encoding, witness data without a coinbase OP_RETURN commitment, supplied branch using wtxid, and malformed payout. The payout defect alone is not a block-validity failure.

The height and payout encodings match bugs corrected in Hathor's reference coordinator in July 2020 (height fix, payout fix). Their later appearance points to older or derivative software, though the operator is unidentified.

Invalid block versions (11 blocks, 2015 to 2018)

BIP66, enforced from height 363,725 on 4 July 2015, and BIP65, enforced from 388,381 on 14 December 2015, introduced minimum block versions of 3 and 4 respectively. Six catalogued headers use version 2 after BIP66 enforcement; five fall below the BIP65 minimum. The version field and parent context are sufficient to establish these failures, without recovering transactions.

Version 2 after BIP66: six blocks. The July 2015 forks made this visible when miners built on headers without fully validating the blocks they extended. The first block of the 4 July fork, at height 363,731, fails the version rule itself. Its five version-3 descendants fail by ancestry and are excluded from the independent-failure count (not in the catalogue). The alert that followed told lightweight-wallet users and anyone on Bitcoin Core 0.9.4 or earlier to wait an additional 30 confirmations, and it remained in force for weeks. The first block's header was discovered in BTC Relay test fixtures. Figure 11 compares this six-block fork with the reported three-block fork on 5 July, whose first block's header has not yet been recovered.

Figure 11: the July 2015 forks

The July 2015 forks: red marks the first blocks that fail the version rule, while amber marks descendants with invalid ancestry. The dashed 5 July sequence is based on contemporary reports; its first block's header has not yet been recovered.
Figure 11: The July 2015 forks: red marks the first blocks that fail the version rule, while amber marks descendants with invalid ancestry. The dashed 5 July sequence is based on contemporary reports; its first block's header has not yet been recovered.

Two further version-2 headers on 4 July, at 363,726 and 363,847, sit on canonical parents and did not open forks, and 363,726 was mined two minutes after enforcement began. Three more failures followed, at 363,967, 364,341 and 367,047. The last (367,047), tagged mmpool, was mined on 26 July, three weeks after the initial fork, by the same Bitparking pool that produced the March 2013 coinbase-height cluster. Further reported version-2 cases that have not yet been recovered are listed in Table 5.

Version below BIP65: five blocks. Four days after BIP65 enforcement at height 388,381 on 14 December 2015, a version-3 header at 389,043 failed the new minimum of 4. The other four are BTC.COM headers from 2018, and they fail that same minimum by a different mechanism. Their versions are 0xa0000000 and 0xe0000000. As signed 32-bit integers, both are negative. Figure 12 shows the sign-bit effect.

Figure 12: BTC.COM's sign-bit versions

BTC.COM's four headers use two version values with bit 31 set. Both become negative when interpreted as signed 32-bit integers and fail the enforced minimum version of 4.
Figure 12: BTC.COM's four headers use two version values with bit 31 set. Both become negative when interpreted as signed 32-bit integers and fail the enforced minimum version of 4.

Miners use the version field as extra nonce space, a practice called version rolling: BIP320 sets aside bits 13 to 28 for it, and BIP310 lets a pool tell its miners which bits they may change. Both values keep bit 29 set, the base every version-signalling block carries; 0xa0000000 adds bit 31 and 0xe0000000 adds bits 30 and 31, all outside the permitted range. Bit 31 is the sign bit, which is what turns the value negative. The likeliest cause is mining hardware or firmware rolling a wider mask than it was given, though nothing in the surviving evidence identifies it. Namecoin and Rootstock each preserved all four headers, and their full PoW and invalid signed versions are directly checkable.

Inputs already spent (4 blocks, 2018)

A transaction cannot spend an output that has already been spent in an earlier block. This can produce the same bad-txns-inputs-missingorspent error as the missing or misordered dependencies described next, but the evidence must establish that the input was already consumed. At heights 507,514, 509,557, 515,319 and 534,339 in 2018, four AntPool blocks repeat non-coinbase transactions already confirmed in their canonical parents. Those transactions' inputs have already been consumed when validation reaches the copies. The surviving block bodies and their parents establish the conflict. Replaying each candidate against that parent on Bitcoin Core v31.1 returned bad-txns-inputs-missingorspent.

The simplest case is 515,319. Its header names parent 515,318 and its body contains a new coinbase followed by the same 79 ordinary transactions, in the same order, as shown in Figure 13. The other three repeat 218, 338 and 1,253 of their parents' transactions, the last two alongside 399 and 1,069 fresh transactions. All four were timestamped within about a minute of their parent. The pattern fits a template that took the new parent's hash without rebuilding the transaction list, so the body still carried the parent's transactions.

Figure 13: AntPool's repeated transactions at 515,319

AntPool's block at 515,319 contains a new coinbase followed by the same 79 ordinary transactions as parent 515,318, in the same order. Their inputs were already spent in the parent, so the candidate fails with bad-txns-inputs-missingorspent.
Figure 13: AntPool's block at 515,319 contains a new coinbase followed by the same 79 ordinary transactions as parent 515,318, in the same order. Their inputs were already spent in the parent, so the candidate fails with bad-txns-inputs-missingorspent.

These four bodies survived in archived chainquery.com responses and were originally contributed to the stale-blocks collection as stales, from which they were removed once the failure was established. A block can have valid PoW, a correct Merkle root and well-formed transactions, yet still fail when those transactions are applied to its parent state.

Transaction dependencies (3 blocks, 2017 and 2023)

When a transaction spends an output created by another transaction in the same block, the parent transaction must appear first. Validation applies transactions in order, making each new output available to subsequent transactions. So a parent included too late or omitted entirely leaves the child's input unavailable when validation reaches it, producing bad-txns-inputs-missingorspent. Figure 14 illustrates these two mechanisms.

Figure 14: parent-before-child ordering

An unconfirmed parent transaction must precede its child. Placing the parent later or omitting it leaves the input unavailable when the child is checked.
Figure 14: An unconfirmed parent transaction must precede its child. Placing the parent later or omitting it leaves the input unavailable when the child is checked.

Parent included too late: two blocks. At height 477,115 on 23 July 2017, three transactions in a 255-transaction block spend outputs from transactions that appear later in the body (this was attributed to 1Hash in a BitcoinTalk thread). Namecoin kept its header and chainquery.com kept its body, from which the ordering failure can be checked. Six years later, MARA's block at 809,478 failed after sorting transactions by fee rather than respecting dependencies. Its retained evidence comes from Bitcoin's compact-block relay window.

Parent omitted: one block. At height 474,294 on 5 July 2017, another block attributed to 1Hash (the same BitcoinTalk thread as above) contains a transaction whose unconfirmed parent is absent. The parent is neither elsewhere in the body nor anywhere in the canonical chain. The spending transaction and its parent were later confirmed together in the competing block at that height.

Coinbase overpayment (2 established blocks, 2012 and 2019)

The coinbase may claim the block subsidy plus the fees of the transactions actually included. A coinbase computed from another template can claim fees for transactions the mined block body does not contain. For the two established cases below, the fees are known and the overpayment is exact.

Eligius: one established overpayment, three unresolved reports. A 9 September 2012 developer report identifies four Eligius blocks as coinbase overpayments: 197,438, 197,701, 197,705 and 197,883. Only 197,438 has enough surviving evidence to establish the overpayment, and the other three remain outside the catalogue.

At 197,438, an Ixcoin AuxPoW record preserves the coinbase and the hash of the other transaction. That transaction later confirmed at height 197,523, allowing its exact bytes to be recovered and the complete two-transaction block to be reconstructed.

The ordinary transaction's authenticated input is worth 503,413,843 satoshis, and its outputs total exactly the same amount. Its fee is therefore zero. The coinbase pays 5,001,000,000 satoshis against the 5,000,000,000-satoshi subsidy: an excess of 1,000,000 satoshis, or 0.01 BTC. The reconstructed block is among the dataset's block files, and its check recomputes those amounts from the authenticated funding transaction, independently of the contemporary report.

At 197,883, the authenticated coinbase pays 50.0005 BTC, and four auxiliary chains preserve the same header, coinbase and Merkle sibling. The other transaction's hash is known, but its bytes remain missing. Unlike the ordinary transaction at 197,438, it has not been found confirmed under that hash. If it paid a 0.0005 BTC fee, that coinbase amount would be permissible. A coinbase above the subsidy alone cannot settle the question.

A reproduction using the historical Eloipool trimming code can drop a transaction from the template while keeping its fee in the coinbase total, which is the reported kind of failure. The same code can also produce a template in which the one retained transaction genuinely pays a 0.0005 BTC fee, giving an identical coinbase amount legitimately, so the amount alone cannot tell the two apart. The code shows a possible mechanism, but does not establish the missing transaction's fee or which configuration Eligius ran.

For the remaining two Eligius reports, an archived September block list supplies full hashes for 197,701 and 197,705, but their headers and bodies remain missing and none of the auxiliary chains that preserved 197,438 or 197,883 holds them.

AntPool 584,802: no ordinary transactions. In July 2019, AntPool's 334-byte block contained only a coinbase paying 13.26546691 BTC against a 12.5 BTC subsidy. With no ordinary transactions, there were no fees to justify the extra 0.76546691 BTC. The rejection was widely reported, including ForkMonitor's check across eight implementations. Elastos also preserved the header and coinbase.

A stale fee total is a plausible explanation and resembles later invalid mining jobs documented by b10c. Unlike the 2018 spent-input blocks, which kept parent transactions they should have dropped, this one claimed fees with no ordinary transactions at all.

Excessive signature operations (2 blocks, 2023)

F2Pool blocks at heights 783,426 and 784,121 each reached a sigops cost of 80,003 against the 80,000 limit. b10c's account has both complete bodies and explains the off-by-three result. Five auxiliary chains also retained the headers, which on their own cannot establish a sigops count.

A coinbase greeting three bytes too long (1 block, 2013)

On 31 December 2013, GHash.IO's block at height 277,975 included the greeting Happy New Year! Yours GHash.IO.. The preceding fields already occupied 72 bytes, including a 45-byte push carrying the 44-byte merge-mining commitment, leaving only 28 bytes for the 31-byte greeting, as shown in Figure 15. The coinbase scriptSig reached 103 bytes, exceeding the 100-byte consensus maximum and producing bad-cb-length. Unlike the other 2013 coinbase failures, its BIP34 height prefix was correct, and the length alone is the fault.

Figure 15: GHash.IO's 103-byte coinbase scriptSig

GHash.IO's complete coinbase scriptSig, grouped by field. The 72 bytes preceding the 31-byte greeting leave room for only 28 greeting bytes; the final IO. exceeds the 100-byte limit.
Figure 15: GHash.IO's complete coinbase scriptSig, grouped by field. The 72 bytes preceding the 31-byte greeting leave room for only 28 greeting bytes; the final IO. exceeds the 100-byte limit.

A missed difficulty retarget (1 block, 2022)

Height 717,696 is a difficulty-retarget boundary. ViaBTC's header carries the previous epoch's nBits, 170b98ab, instead of the required 170b8c8b, producing bad-diffbits. The old target was easier, but the header's hash happens to clear the correct, harder target as well. That is why it meets this catalogue's full-PoW requirement despite encoding the wrong difficulty. Emercoin, Syscoin and Namecoin preserved the header.

Timestamps below median time past (3 blocks, 2015 to 2026)

A block's timestamp must be strictly greater than its parent's median time past. The header at height 380,992 in 2015 falls about 4.6 hours below that bound. Two F2Pool cases in 2026 miss it by days, as shown in Figure 16.

On 22 April 2026, auxiliary chains recorded a header at height 946,213 whose nTime was 15 April, 634,618 seconds (7.35 days) below the parent MTP. On 13 July 2026, another header at 957,780 used an nTime of 29 June, 1,206,929 seconds (13.97 days) below the parent MTP. Both fail time-too-old.

Figure 16: F2Pool's 2026 timestamps against median time past

F2Pool's headers at heights 946,213 and 957,780 fall roughly 7.35 and 13.97 days below their parents' median time past. Both fail the requirement that nTime be strictly greater than parent MTP.
Figure 16: F2Pool's headers at heights 946,213 and 957,780 fall roughly 7.35 and 13.97 days below their parents' median time past. Both fail the requirement that nTime be strictly greater than parent MTP.

Namecoin, Syscoin and Elastos recorded both whereas Fractal Bitcoin recorded only 957,780. The merge-mining monitor captured 957,780 live, while 946,213 was recovered retrospectively. No Bitcoin-side capture of either header is known.

Both headers build on the canonical parent at their height, and their coinbases, preserved in Namecoin's AuxPoW records, carry the /F2Pool/ tag and claim 3.20191623 BTC and 3.14128765 BTC, the 3.125 BTC subsidy plus fees, all of it forfeited. A mining template that updated its parent while retaining an old timestamp could explain these headers, but the available evidence does not establish how the fault arose. Whatever the cause, the violation is directly checkable from each header and its parent's median time past.

ℹ️

The April and July 2026 F2Pool headers miss parent median time past by roughly 7 and 14 days, and neither has been reported before.

Reported cases and missing evidence

The 10 additional reports in Table 5 are grouped in Table 3 by what remains missing. They do not contribute to the 143 established failures or the rule totals, but they are useful recovery targets.

Reported family Cases What remains needed
Eligius coinbase overpayment, 2012 3 Transaction and fee evidence; two also lack headers
P2Pool unspecified failure, 2012 1 Header, rejection reason and authenticated rule evidence
Version-2 blocks after BIP66, 2015 5 The 80-byte headers
Bitcoin Unlimited oversized block, 2017 1 Body bytes establishing the size violation
Table 3: Reported cases by outstanding evidence requirement.

P2Pool 212,048: identified report, missing rejection reason. On 13 December 2012, gmaxwell reported an invalid P2Pool block at height 212,048 and supplied its hash prefix, but said his node had not logged the rejection reason. The full hash appears in Syke's historical node dump, linked from his 2016 forum post, with status invalid and branch length one. No header or body has been recovered, so neither the proof of work nor a named consensus failure can be independently checked. The ledger entry records the report, the node dump and its archived copy.

Version failures: reported hashes, missing headers. The five version reports include the first block of MegaBigPower's 5 July fork at 363,997 and four later blocks at 364,261, 367,195, 386,682 and 387,396. A 2017 bitcoin-dev message lists their full hashes alongside bad-version(0x00000002). Without the headers, neither the version field nor the PoW can be independently rechecked. The message lists every hash as a .bin filename, which suggests the block files existed on disk in March 2017. Outreach to the original author has not yet elicited a response.

Bitcoin Unlimited 450,529: header recovered, size violation unverified. The January 2017 incident statement reports a 1,000,023-byte block from Bitcoin.com's pool, exceeding the 1 MB limit after incorrect coinbase-size accounting. Archived BlockCypher fields reconstruct its exact 80-byte header, and its hash meets the expected target. The body is still incomplete, so the reported 23-byte excess has not been verified from the serialised block itself.

Conclusions

The early P2SH, coinbase-height and version clusters coincide with newly enforced rules. SegWit and Taproot have no comparable activation clusters, as Figure 2 shows. Later cases show failures against long-standing rules, including AntPool's already-spent inputs in 2018 and F2Pool's timestamps in 2026. The catalogue brings these incidents and their surviving evidence together, making each established failure independently checkable.

The recoveries show how complementary records can establish failures that no single source could prove. For the P2SH cases, archived txid lists and preserved headers establish inclusion of a spend whose script failure can be checked without a complete block body. For a suspected coinbase overpayment, however, one missing transaction can leave the decisive fee unknown. Preserving those records and their provenance allows old reports to become independently checkable cases as missing evidence emerges.

Merge mining has proved to be an unusually productive side channel into Bitcoin mining. Auxiliary-chain records yielded roughly 1,400 stale headers new to the stale-blocks collection, and provide this catalogue's only recorded observation for 35 established invalid headers. Stales reveal mining competition outside the accepted chain; invalid blocks reveal failures in constructing candidates that satisfy Bitcoin's rules. An auxiliary chain checks its own rules, so it can preserve evidence of both outcomes even when Bitcoin peers never relay the candidate.

The two F2Pool headers that prompted this catalogue make the case for ongoing monitoring particularly clear. The July F2Pool header was captured live by the merge-mining monitor, while the April header was recovered retrospectively. Neither has a known Bitcoin-side capture; auxiliary chains preserved the evidence that establishes their failures. These records cover only participating miners, and uneven monitoring and archive coverage mean the catalogue cannot establish how often invalid blocks occur across Bitcoin mining as a whole. They nevertheless reveal mining activity that would otherwise be missing from the collected record. Monitoring the chains that merge-mine with Bitcoin is essential to a holistic Bitcoin monitoring effort.

Contributions and corrections

If you have evidence of an invalid block, additional information about any of these cases, or a correction to this post, contributions to invalid-blocks are welcome. Old node files, pool logs and archived discussions could help resolve a reported case or identify one that is missing entirely. You do not need a complete block or a finished proof to suggest a lead: include whatever hashes, dates and source material you have.

Summary tables and sources

The first table summarises the catalogue's 143 established failures, and the second lists the 10 reported cases that do not yet meet its evidence requirements. Heights can repeat because different headers were mined at the same height. “Unknown” means this catalogue does not assign a pool, rather than asserting that a recovered coinbase has no identifying bytes. A bare pool name comes from a tag in the recovered coinbase, “(reported)” from a report of the time, and “(address)” from the coinbase's payout address matched against the mining-pools dataset. Dates, full hashes, source links and observation channels for all established cases are in the post catalogue; the reported ledger covers the rest.

All 143 established failures

“Body” denotes a complete recovered or reconstructed block; “inclusion” denotes an authenticated P2SH transaction proof with the coinbase still missing; “header/coinbase” denotes the remaining header- or coinbase-checkable failures. Each entry's rule is established, regardless of which of those components survives.

Height Hash suffix Date (UTC) Failure Pool / tag Evidence
74,638 …7b1470a7ec1c 2010-08-15 Output value overflow unknown body
173,886 …4f6a53920bc1 2012-04-01 P2SH redeem-script failure unknown inclusion
173,928 …b25f01a81f64 2012-04-01 P2SH redeem-script failure OzCoin body
173,948 …58f231f583e1 2012-04-02 P2SH redeem-script failure unknown inclusion
173,957 …856b31b11155 2012-04-02 P2SH redeem-script failure OzCoin body
173,965 …a1118e18423b 2012-04-02 P2SH redeem-script failure unknown inclusion
173,970 …bd850d03c32f 2012-04-02 P2SH redeem-script failure unknown inclusion
173,980 …5b9a9a2842c0 2012-04-02 P2SH redeem-script failure unknown inclusion
173,986 …1abaf6792847 2012-04-02 P2SH redeem-script failure unknown inclusion
173,989 …5634470c63a2 2012-04-02 P2SH redeem-script failure unknown inclusion
173,993 …b7b5e073ba3f 2012-04-02 P2SH redeem-script failure unknown inclusion
173,998 …b0f33b189651 2012-04-02 P2SH redeem-script failure NMCbit body
174,005 …88e45c3799de 2012-04-02 P2SH redeem-script failure unknown inclusion
174,012 …fa678a6e6bc0 2012-04-02 P2SH redeem-script failure unknown inclusion
174,017 …c726993e0dd9 2012-04-02 P2SH redeem-script failure unknown inclusion
174,051 …8f911945ec51 2012-04-02 P2SH redeem-script failure unknown inclusion
174,057 …e7c2e9e25e5c 2012-04-02 P2SH redeem-script failure unknown inclusion
174,061 …0aa2e6c85e21 2012-04-02 P2SH redeem-script failure unknown inclusion
174,065 …3581271cb371 2012-04-03 P2SH redeem-script failure unknown inclusion
174,067 …3850324175a3 2012-04-03 P2SH redeem-script failure unknown inclusion
174,076 …8a7554eb066c 2012-04-03 P2SH redeem-script failure unknown inclusion
174,090 …55aed2242d6b 2012-04-03 P2SH redeem-script failure unknown inclusion
174,094 …20f5cd00d157 2012-04-03 P2SH redeem-script failure unknown inclusion
174,102 …74d1b5c030f0 2012-04-03 P2SH redeem-script failure unknown inclusion
174,121 …4af3124170cb 2012-04-03 P2SH redeem-script failure unknown inclusion
174,162 …06c096cee331 2012-04-03 P2SH redeem-script failure unknown inclusion
174,174 …ccf50ed76b6d 2012-04-03 P2SH redeem-script failure unknown inclusion
174,182 …3950c4bdafa7 2012-04-03 P2SH redeem-script failure unknown inclusion
174,185 …9876c2b488d1 2012-04-03 P2SH redeem-script failure unknown inclusion
174,187 …80b583a78114 2012-04-03 P2SH redeem-script failure unknown inclusion
174,232 …a50ac94f6521 2012-04-04 P2SH redeem-script failure unknown inclusion
174,234 …22e472b90a19 2012-04-04 P2SH redeem-script failure unknown inclusion
174,242 …f733ee0d07fa 2012-04-04 P2SH redeem-script failure unknown inclusion
174,307 …ea36120ec3dd 2012-04-04 P2SH redeem-script failure unknown inclusion
174,313 …a320009af63e 2012-04-04 P2SH redeem-script failure unknown inclusion
174,330 …cc79933a5090 2012-04-04 P2SH redeem-script failure unknown inclusion
174,343 …8950ac1dd622 2012-04-05 P2SH redeem-script failure unknown inclusion
174,380 …8d451134aa55 2012-04-05 P2SH redeem-script failure unknown inclusion
174,388 …d3b14e488019 2012-04-05 P2SH redeem-script failure unknown inclusion
174,414 …53b3ea01f56c 2012-04-05 P2SH redeem-script failure unknown inclusion
174,452 …f9cf1003c0bc 2012-04-06 P2SH redeem-script failure unknown inclusion
174,506 …8d016897c332 2012-04-06 P2SH redeem-script failure unknown inclusion
174,531 …811f0512cd4a 2012-04-06 P2SH redeem-script failure unknown inclusion
174,593 …64b5fc22412f 2012-04-07 P2SH redeem-script failure unknown inclusion
174,605 …784b3b3168c5 2012-04-07 P2SH redeem-script failure unknown body
174,702 …68c8f135e54f 2012-04-07 P2SH redeem-script failure unknown inclusion
174,772 …e54d21dee7b8 2012-04-08 P2SH redeem-script failure unknown inclusion
174,785 …1171c8cd8032 2012-04-08 P2SH redeem-script failure unknown inclusion
174,792 …1f7087803898 2012-04-08 P2SH redeem-script failure unknown inclusion
175,140 …2d3a2f01aa8c 2012-04-10 P2SH redeem-script failure unknown inclusion
175,227 …a45f7297e45d 2012-04-11 P2SH redeem-script failure unknown inclusion
175,240 …85a77db97c2d 2012-04-11 P2SH redeem-script failure unknown inclusion
175,245 …feeb5434fb57 2012-04-11 P2SH redeem-script failure unknown inclusion
175,261 …cfffec89309a 2012-04-11 P2SH redeem-script failure unknown inclusion
175,343 …6da4ef02b854 2012-04-12 P2SH redeem-script failure unknown inclusion
175,419 …f808084f44c3 2012-04-12 P2SH redeem-script failure unknown inclusion
175,423 …230aa4e281c0 2012-04-12 P2SH redeem-script failure unknown inclusion
175,451 …9d7e0bdbf726 2012-04-13 P2SH redeem-script failure unknown inclusion
175,488 …ac2293a835ff 2012-04-13 P2SH redeem-script failure unknown inclusion
175,517 …641db259332a 2012-04-13 P2SH redeem-script failure unknown inclusion
175,613 …abd92d44ac91 2012-04-14 P2SH redeem-script failure unknown inclusion
175,840 …883fc017dc91 2012-04-16 P2SH redeem-script failure unknown inclusion
175,848 …693ccfad03d8 2012-04-16 P2SH redeem-script failure unknown inclusion
175,888 …8ac4ec3798b1 2012-04-16 P2SH redeem-script failure unknown inclusion
175,926 …c38d350a746c 2012-04-16 P2SH redeem-script failure unknown inclusion
175,968 …e0910bab0805 2012-04-17 P2SH redeem-script failure unknown inclusion
175,998 …b6c95012abbd 2012-04-17 P2SH redeem-script failure unknown inclusion
176,210 …006aeabb91e0 2012-04-19 P2SH redeem-script failure unknown inclusion
176,897 …b1fcf0de7a2d 2012-04-23 P2SH redeem-script failure unknown inclusion
176,925 …dc03ac13d76a 2012-04-23 P2SH redeem-script failure unknown inclusion
177,050 …c1013bc6bea0 2012-04-24 P2SH redeem-script failure unknown inclusion
177,470 …986abb94ab19 2012-04-27 P2SH redeem-script failure unknown inclusion
177,525 …4bc884524fdf 2012-04-28 P2SH redeem-script failure unknown inclusion
177,896 …be438db392f3 2012-04-30 P2SH redeem-script failure unknown inclusion
178,119 …e81c4593ba40 2012-05-01 P2SH redeem-script failure unknown inclusion
179,218 …b1a7a1cbbcef 2012-05-08 P2SH redeem-script failure unknown inclusion
179,235 …51cc80bc3fc1 2012-05-08 P2SH redeem-script failure unknown inclusion
179,700 …8e0bfaf758da 2012-05-11 P2SH redeem-script failure unknown inclusion
179,781 …e6680971c578 2012-05-12 P2SH redeem-script failure unknown inclusion
179,890 …0ed289225cbe 2012-05-12 P2SH redeem-script failure unknown inclusion
180,227 …89fc4ee445d4 2012-05-15 P2SH redeem-script failure unknown inclusion
180,376 …93132d6d9812 2012-05-16 P2SH redeem-script failure unknown inclusion
180,402 …59d35da2022a 2012-05-16 P2SH redeem-script failure unknown inclusion
180,736 …0b9f6242293b 2012-05-19 P2SH redeem-script failure unknown inclusion
182,155 …5ea87e0a6b06 2012-05-29 P2SH redeem-script failure unknown inclusion
182,159 …e25767fe026a 2012-05-29 P2SH redeem-script failure unknown inclusion
182,195 …29582c5448f6 2012-05-30 P2SH redeem-script failure unknown inclusion
182,532 …54c3b2c16d2b 2012-06-01 P2SH redeem-script failure unknown inclusion
183,255 …d3d2891f5398 2012-06-06 P2SH redeem-script failure unknown inclusion
189,498 …187f7aa750b5 2012-07-17 P2SH redeem-script failure unknown inclusion
197,438 …ddfe8afd12a7 2012-09-06 Coinbase overpayment Eligius body
225,013 …010e10150708 2013-03-09 BIP34 height: difficulty in height field unknown header/coinbase
225,015 …62042bba2035 2013-03-09 BIP34 height: difficulty in height field unknown header/coinbase
225,134 …b61bb25e21bd 2013-03-10 BIP34 height: difficulty in height field unknown header/coinbase
225,145 …9e639ff51433 2013-03-10 BIP34 height: difficulty in height field unknown header/coinbase
225,221 …db21507ddc99 2013-03-10 BIP34 height: difficulty in height field unknown header/coinbase
225,430 …c01180e57f7f 2013-03-11 BIP34 height: difficulty in height field unknown header/coinbase
225,430 …56a0994e8960 2013-03-11 BIP34 height: difficulty in height field unknown header/coinbase
225,464 …771ca65b52c9 2013-03-12 BIP34 height: difficulty in height field unknown header/coinbase
226,230 …0db40a06b3cb 2013-03-16 BIP34 height: difficulty in height field unknown header/coinbase
226,845 …32574d5b997d 2013-03-20 BIP34 height: difficulty in height field mmpool (reported) header/coinbase
226,895 …e16390ba9559 2013-03-20 BIP34 height: difficulty in height field mmpool (reported) header/coinbase
226,912 …a1662c61e0e0 2013-03-20 BIP34 height: difficulty in height field mmpool (reported) header/coinbase
229,388 …ffff279e3f03 2013-04-03 BIP34 height: wrong height BTC Guild header/coinbase
229,388 …3e153169fa58 2013-04-03 BIP34 height: wrong height BTC Guild header/coinbase
229,388 …20e16d77a18c 2013-04-03 BIP34 height: wrong height BTC Guild header/coinbase
229,388 …9dd9e1187f95 2013-04-03 BIP34 height: wrong height BTC Guild header/coinbase
229,388 …a34276925cc8 2013-04-03 BIP34 height: wrong height BTC Guild header/coinbase
229,388 …a4871b61caa8 2013-04-03 BIP34 height: wrong height BTC Guild header/coinbase
277,975 …7c6b0ff0ac3f 2013-12-31 Coinbase scriptSig above 100 bytes GHash.IO header/coinbase
331,673 …39570a51112a 2014-11-26 BIP34 height: wrong height yongchao34 header/coinbase
331,674 …f940f0e0cf69 2014-11-26 BIP34 height: wrong height lengguangxian header/coinbase
331,735 …d87359118a1a 2014-11-26 BIP34 height: wrong height AntPool header/coinbase
363,726 …8fc7efbcd5d0 2015-07-04 Version below BIP66 minimum unknown header/coinbase
363,731 …26d90c439d99 2015-07-04 Version below BIP66 minimum BTC Nuggets (address) header/coinbase
363,847 …909a4c549de5 2015-07-04 Version below BIP66 minimum unknown header/coinbase
363,967 …6bb384a3660b 2015-07-05 Version below BIP66 minimum Bitsolo (address) header/coinbase
364,341 …f928b0226d3c 2015-07-08 Version below BIP66 minimum unknown header/coinbase
367,047 …bfa5803a32a4 2015-07-26 Version below BIP66 minimum mmpool header/coinbase
380,992 …36ede0423779 2015-10-28 Timestamp below parent MTP yndl header/coinbase
383,540 …d9c45a91a50b 2015-11-14 BIP34 height: wrong height Eligius header/coinbase
389,043 …82060f1b89b2 2015-12-18 Version below BIP65 minimum nodeStratum header/coinbase
402,610 …a06b0b37e3a2 2016-03-14 BIP34 height: wrong height c63346109 header/coinbase
422,059 …999d53e81fa7 2016-07-24 BIP34 height: wrong height ViaBTC header/coinbase
474,294 …e15efc6a4232 2017-07-05 Omitted unconfirmed parent 1Hash (reported) body
477,115 …68f193363d1b 2017-07-23 Transaction ordering 1Hash (reported) body
507,514 …d488d14055d0 2018-02-04 Inputs already spent in parent block AntPool body
509,557 …bd17c88da431 2018-02-17 Inputs already spent in parent block AntPool body
515,319 …23a2775bc613 2018-03-27 Inputs already spent in parent block AntPool body
534,339 …fc1ef933a0ba 2018-07-30 Inputs already spent in parent block AntPool body
543,804 …693cec1f1918 2018-09-30 Version below BIP65 minimum BTC.COM header/coinbase
544,024 …684445fa6ed8 2018-10-02 Version below BIP65 minimum BTC.COM header/coinbase
544,024 …01177af25d21 2018-10-02 Version below BIP65 minimum BTC.COM header/coinbase
544,600 …1124b5c5dc8a 2018-10-06 Version below BIP65 minimum BTC.COM header/coinbase
584,802 …88f4c5fa5a69 2019-07-10 Coinbase overpayment AntPool body
649,674 …d1d5dba425e6 2020-09-23 BIP34 height: missing script push unknown header/coinbase
717,696 …02e4e356e71c 2022-01-08 Retarget not applied ViaBTC header/coinbase
783,426 …a002668599e4 2023-04-01 Excessive sigops F2Pool body
784,121 …b0c2504c980d 2023-04-06 Excessive sigops F2Pool body
789,038 …d9884af393ed 2023-05-10 BIP34 height: wrong height AntPool header/coinbase
809,478 …e261e4f11853 2023-09-26 Transaction ordering MARA Pool body
946,213 …f570e58d9ed7 2026-04-15 Timestamp below parent MTP F2Pool header/coinbase
957,780 …fe2075ef2ffb 2026-06-29 Timestamp below parent MTP F2Pool header/coinbase
Table 4: All 143 established failures. Dates are header dates, including the stale timestamps in the two 2026 F2Pool headers; the timeline separately marks their observation dates. Linked heights open the header in the merge-mining monitor, which holds every case with a merge-mining observation.

All 10 reported cases still lacking proof

A recovered header establishes identity and allows header checks, but not the body-dependent failure claimed by a report. The linked ledger records source associations and missing evidence for each row.

Height Hash suffix Reported family Header recovered Missing evidence
197,701 …3c435ebc03f2 Coinbase overpayment no header and body or sufficient authenticated components
197,705 …34b4f8cd2dda Coinbase overpayment no header and body or sufficient authenticated components
197,883 …145f12c2304d Coinbase overpayment yes other transaction and fee evidence
212,048 …aea347c271b3 Unspecified failure no header, rejection reason and authenticated evidence of a consensus failure
363,997 …67e042a19b12 Block version no 80-byte header
364,261 …1665c74cfab2 Block version no 80-byte header
367,195 …dff8216cefc4 Block version no 80-byte header
386,682 …39a73b501cb6 Block version no 80-byte header
387,396 …d6c15d1d3ee3 Block version no 80-byte header
450,529 …f38d159565f5 Oversized block yes body bytes establishing size violation
Table 5: All 10 reported cases whose claimed invalidity remains unproved. Full identities and source associations are in the downloadable ledger.

References

Datasets, research and related posts

Incident reports and historical records

Specifications

Cite this post

deadmanoz (2026). Invalid Bitcoin blocks: full PoW, consensus invalid. deadmanoz.xyz. https://deadmanoz.xyz/posts/2026/invalid-blocks.