Colliery mark — 260
Stripped — 64
The halving
Of the target, not of a reward.
There is no block reward in this contract, so there is nothing to halve in the usual sense. What halves is the target, on a fixed count of accepted blocks.
Nothing is deployed. No address exists on any chain.
There is no factory address, no vault address and no mine address, on mainnet or on any testnet. No transaction has been broadcast. What exists is source, a test suite, the measurements on these pages — and a deploy script that has not been run.
Not of a reward. There is no reward to halve.
A halving is usually a halving of a block reward, on a schedule anyone can read years ahead. This contract has no block reward to halve. What halves here is the difficulty target, and it is counted in blocks cut rather than in dates.
Because target loses target / difficultyStep on every accepted block, it halves every ln2 × difficultyStep blocks cut. At the minimum step of 100,000 that is 69,315 blocks; at the maximum of 1,000,000,000 it is about 693 million. That count is a constant.
The wall clock is not. Nothing retargets, so each halving doubles the hash rate a rig needs to finish inside a 200-block window; fewer windows get cut per day; and each halving takes longer in seconds than the one before. It is not a calendar line you can hold a party on. It is a horizon.
Difficulty only rises, so eventually the best machine available cannot finish inside a 200-block window. From that day nobody can cut a block, every period is empty, and each empty period sends its whole bucket — less the 2% settlement bounty — to that period’s project address.
That is not a rule added on top. It is what “no work, no wage” evaluates to, written as an explicit branch anyone can read. Until then, every increment of difficulty raises the BNB paid per block, because the pot comes from trading and the divisor is the number of blocks cut.
Source: MECHANISM.md, README.md
What halves is the difficulty target, not a block reward — there is no reward in these contracts to halve. Sampled from target -= target / difficultyStep run for real at the minimum step of 100,000, not from a closed form: it halves every 69,315 blocks cut, a constant count, and each halving still takes longer in wall clock than the one before because nothing retargets.
| Blocks cut | Hashes per solution | Wall clock |
|---|---|---|
| 0 | 1× | genesis |
| 69,315 | 2× | — |
| 138,630 | 4× | longer than the last |
| 207,945 | 8× | longer again |
| 277,260 | 16× | longer again |
At the minimum difficultyStep of 100,000. The block count between halvings is constant; the elapsed time is not, and the contract never measures it.