Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions bip-0325.mediawiki
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,15 @@ A block is considered fully validated only if the to_sign transaction is a valid

There is one other acceptable special case: if a block's challenge is e.g. `OP_TRUE` (`0x51`), where an empty solution would result in success, the block is also considered valid if the signet commitment is absent.

=== Minimum Difficulty ===

The minimum difficulty for blocks in signet is approximately
0.0011265, corresponding to a maximum target of
<code>00000377ae000000000000000000000000000000000000000000000000000000</code>
which is represented by an nBits value of <code>0x1e0377ae</code>.
Copy link
Member

@jonatack jonatack Dec 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified the maximum target and nBits values correspond to those for signet in src/kernel/chainparams.cpp in Bitcoin Core:

consensus.powLimit = uint256{"00000377ae000000000000000000000000000000000000000000000000000000"};

.../...

genesis = CreateGenesisBlock(1598918400, 52613770, 0x1e0377ae, 1, 50 * COIN);

Edit: verified that these values yield a minimum difficulty of ~0.0011265.


This value is chosen so that multiplying the maximum target by maximum retarget timespan (8 weeks measured in seconds) does not overflow a uint256, making it easier to do difficulty adjustment calculations.

== Genesis Block and Message Start ==

The genesis block is the same for all signet networks, whereas the message start is defined as the first four bytes of the sha256d of the challenge script as a single data push (see below).
Expand Down