Tool · Difficulty & emission
Bits, target and difficulty
Three ways to write how hard it is to find a block
What it does
Type any one of the three and the other two follow:
- Bits: the 4-byte compact form stored in every block header.
- Target: the 256-bit number those bits stand for.
- Difficulty: how many times smaller the target is than the easiest one allowed.
How to read it
- Bits are a tiny floating-point number: the first byte (the exponent) is the target’s length in bytes, and the next three (the mantissa) are its first three bytes. Everything after them is zero.
- The 32 boxes are the target written out in full. Amber boxes are the mantissa; the dim ones are leading zeros.
- The bar uses a log scale: each step left halves the target and doubles the difficulty. A random 256-bit number lands below the target about once in 2^(256 − log₂ target) tries.
- Typing a target or a difficulty rounds it to what bits can store (three significant bytes), so you may see a slightly different value come back.
Pearl specifics
- Difficulty 1 is bits
0x1b00ffff, Pearl’s PowLimit (2²⁰⁸ − 1). Bitcoin’s difficulty 1 is0x1d00ffff, which is above Pearl’s limit and invalid here. Pearl’s easiest target is 65,536 times smaller than Bitcoin’s. - Nothing in Pearl compares a hash with this target alone. A block wins when the BLAKE3 ticket in its certificate is at most target × the work in one tile. The block hash is never checked against it.
- The target changes after every block (WTEMA), so consecutive blocks have slightly different bits.
Under the hood
Runs entirely in your browser: nothing you type is sent anywhere. The conversions are src/lib/block.ts,
written to match btcd’s CompactToBig and BigToCompact and the node’s difficulty report. Unit tests check
them against the research test vectors (bits → target → difficulty → work) and real mainnet headers.