0 M−120 M−260 M−430 MTOPSOILSANDSTONE, CROSS-BEDDEDSHALEFIRECLAYTHE SEAMGRITBORE 7SEAM CONTINUES,UNPROVED2.2 M115 M TO THE FACE1.5 M310 M TO THE FACE0.8 M575 M TO THE FACESECTION THROUGH THE SEAMDEPTHS IN METRES BELOW BANK · LOOKING NORTHSEAM AND ROADWAYS DRAWN × 100200 M
The seam, in sectionFour levels down, and thinning

The seam

It empties, and the grid does not move.


Difficulty only rises, so eventually the best machine available cannot cut a block at all. Where a block belongs is fixed by the grid it was seeded in.

Status

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.

01  /  The consequence

A harder seam pays more per block, not less.


This is the part that runs against the intuition the word “mining” invites. The pot is the tax a period’s trading produced. Its size depends on how much the token traded — not on how hard the seam is. The pot does not shrink as the seam hardens.

Difficulty does not decide who wins a race. It decides which machines can still finish inside a 200-block window at all, so slower rigs fall out first. Fewer rigs finish, fewer blocks are cut — and the settlement divides the same pot among those fewer blocks.

The limit is not a small wage. It is no wage at all: a period nobody cut has no wage to pay, and its bucket goes to the project instead. That is a branch in the contract anyone can read, not a rule bolted on.

CoalVault._settleWage
wagePool60% of the bucket
— set bytrading volume
cutblocks cut in the period
— set byrigs that finish in time
As difficulty climbscut falls, wagePool holds
ThereforeBNB per block rises
At the endcut = 0 → no wage at all

Source: MECHANISM.md — “the pot is the same and _settle divides it with wageRate = wagePool / cut, among fewer blocks”.

02  /  The window grid
200blocksOne puzzle window
1blockPer miner, per window
256blocksThe answer window — then the seed is unreadable
×200Every payout period is a whole multiple

200 blocks, and periods that are whole multiples of them.


A puzzle window is 200 blocks wide, and each miner may cut one block per window. A payout period is a separate, longer cadence set at launch: between 200 and 1,000,000 blocks, and required to be a whole multiple of 200.

The multiple-of-200 rule is enforced by a second require, which is why the reachable set is 200, 400, … 1,000,000 and the stated lower bound of 20 is unreachable. Without the alignment, a cadence like 250 would give some periods one window and others two, and any cadence below 200 would leave most periods with no window at all — structurally unpayable, sweeping to the project while the miners’ 60% could never be reached.

Everything here is counted in blocks, never in seconds. No part of the contract assumes a seconds-per-block figure. Elapsed wall time moves with BSC consensus, and the contract does not care.

Puzzle window200 blocks
Blocks per miner per window1
Payout period bounds200 to 1,000,000 blocks
Alignmenta whole multiple of 200
Reachable set200, 400, … 1,000,000
Unit throughoutblocks, never seconds
Funding ruletax arriving in period N funds N+1
Settlement costO(1) — settleEpoch never walks history

Source: MECHANISM.md, FACTORY.md, README.md

Fig. 05 — windows, periods, and creditthe seed decides
PERIOD 342 · 1,200 BLOCKSPERIOD 343 · 1,200 BLOCKS205220532054205520562057205820592060206120622063200-BLOCK WINDOWS, A FIXED GRID FROM THE LAUNCH BLOCK — SIX TO A PERIOD HERE256 BLOCKS — THE ANSWER WINDOWPAST IT THE EVM CANNOT SEE THE SEED AND THE SOLUTION EXPIRESSEED BLOCK 41,411,400MINE() SENT AT BLOCK 41,411,650PERIOD 342 PAYROLL — 1 BLOCK CUTPERIOD 343 PAYROLL — NOT THIS ONECREDIT FOLLOWS THE SEEDSOLVING EARLY AND WAITING FOR A RICHER PERIOD BUYS NOTHING — THE PERIOD THAT OWNS THE SEED PAYSPERIOD 342PERIOD 3432056205720582059200-BLOCK WINDOWS — SIX TO A PERIOD256 BLOCKS — THE ANSWER WINDOWTHEN THE SEED IS UNREADABLESEED BLOCK 41,411,400MINE() SENT AT BLOCK 41,411,650P342 · 1 CUTP343 · NONECREDIT FOLLOWS THE SEEDTHE PERIOD THAT OWNS THE SEED PAYS

Block numbers follow the same worked example as the console: a launch block, 200-block windows on a fixed grid from it, and a 1,200-block payout period, which is six whole windows. A cadence that is not a whole multiple of 200 would leave some periods holding no window at all — structurally unpayable, which is why the factory requires the multiple.

Specification browserParameters as written
ContractBytesSpare
CoalVault23,1521,424
CoalVaultFactory8,23316,343
CoalMine8,13216,444
CoalMineDeployer2,20422,372
CoalVaultDeployer2,19722,379
CoalBeacon79823,778

Runtime size against the 24,576-byte EIP-170 limit.

Window length200 blocks
Seed blockthe window’s first block
Blocks per miner per window1
Genesis target2 ** targetShift expected hashes
targetShift bounds8 to 48
difficultyStep bounds100,000 to 1,000,000,000
Per accepted blocktarget -= target / difficultyStep
Seed visibilityexpires after 256 blocks
Function that raises targetnone exists

Puzzle parameters shown

Not connected to any chain. Nothing is deployed; these are the bounds and constants the code enforces.