Bitcoin Knots 29.4.2 · BLAKE2b

Coinbase maturity changed. But not in one single way.

The release has a consensus rule and a stricter policy rule. That difference is why older mining rewards can look locked even when they are still valid to spend in a block.

Two gates: policy and consensus A coinbase spend faces two separate checks. Policy decides whether Knots will accept and relay it. Consensus decides whether a block containing it is valid. ₿ coinbase spend POLICY Mempool + relay CONSENSUS Block validity
1 · Start simple

Bitcoin already had a coinbase maturity rule.

A newly mined reward normally cannot be spent until it has 100 blocks of confirmation.

Block mined
Coinbase reward is created
→
100 blocks
Then it is normally spendable
2 · The new release

Knots 29.4.2 adds a temporary 6480-block rule.

On mainnet, the release defines a long-maturity window beginning at block 973440 and ending before block 979920.

Before 973440Old rewards already exist
973440 → 979919Long-maturity consensus window
979920+Consensus window ends
6480 blocks is the configured long maturity. The important part is that consensus and policy apply it differently.
3 · Two rulebooks

Consensus and policy are not the same thing.

Both matter, but they answer different questions.

✓

Consensus

Consensus decides whether a block is valid. If a transaction breaks consensus, nodes reject the block that contains it.

→Defines the actual chain rules
→Miners cannot ignore it without forking
→Old coinbases are not retroactively covered
⇄

Policy

Policy decides what a node will accept into its mempool, relay to peers, and usually offer to miners.

→Policy can be stricter than consensus
→A policy-rejected transaction can still be consensus-valid
→29.4.2 applies 6480 blocks to all coinbases in policy
4 · What consensus does

Consensus is not retroactive.

For block validation, the code checks the height where the coinbase was created.

Example A

Coinbase mined at 972000

Created
Before block 973440
Consensus
✓ Normal 100-block rule
Retroactive?
No
Example B

Coinbase mined at 973500

Created
Inside the new window
Consensus
Long-maturity rule applies
Until
Consensus release height 979920
This is a temporary consensus window, not a permanent 6480-block tag attached to each reward. At block 979920 the long consensus rule turns off and the normal 100-block rule applies again.
5 · What policy does

Policy is retroactive in 29.4.2.

The mempool path uses a start height of 0. That makes every coinbase look subject to the 6480-block policy rule, even if it was mined long before 973440. In this release, that policy is not limited to the consensus window.

Old coinbase Mined before 973440 and already more than 100 blocks old
→
Knots mempool Checks against 6480 blocks because policy uses start height 0
→
Rejected by policy Not normally accepted, relayed, or mined from the mempool
Before 973440Policy still asks for 6480 confirmations
During windowPolicy still asks for 6480 confirmations
After 979920Policy still asks for 6480 confirmations
Why? The mempool call passes 0 as the long-maturity start height, so every real coinbase height qualifies for the 6480-block policy check.
6 · The confusing case

A transaction can be rejected by Knots policy and still be valid Bitcoin consensus.

This is the part that sounds contradictory until the two rulebooks are separated.

Old coinbase · 2045 confirmations

Send it normally

Mempool
✕ Rejected
Reason
Policy still wants 6480 confirmations
Same exact spend

Put it directly in a valid block

Consensus
✓ Accepted
Reason
The coinbase was mined before 973440 and already passed 100 blocks
7 · Wallet effect

The built-in Knots wallet also uses the 6480-block value.

So an older reward can appear “immature” in the wallet even though consensus would allow it in a block.

Consensus
“This old reward is spendable.”
≠
Wallet / policy
“Wait until 6480 confirmations.”

The bottom line

Bitcoin Knots 29.4.2 does not retroactively change consensus for coinbases mined before block 973440. Those old rewards still only need the normal 100-block maturity to be valid in a block. But 29.4.2 policy is stricter and retroactive: its mempool and wallet treat every coinbase as needing 6480 confirmations. That is why an old reward can be consensus-valid yet still be rejected by a normal Knots transaction broadcast.