The puzzle
The rule, as code.
Your address is inside the hash, so nobody can cut a block on your behalf, and credit follows the seed rather than the submission.
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.
One window. One block per miner.
- The chain is divided into a fixed grid of 200-block windows. A window’s seed is its first block.
- The seed is a blockhash, so before the window opens there is nothing to grind against.
- msg.sender is inside the hash, so a solution lifted from the mempool hashes to something else in the thief’s hands.
- Credit follows the seed, not the submission. A miner who solves early and waits for a richer period is still paid by the period they solved in — and past 256 blocks the EVM cannot see the seed at all.
- One block per miner per window. Mining requires a locked deposit of the launched token; leaving is
quit(), then the fixed notice, then the deposit comes back. No branch refuses it.
Windows are a fixed 200-block grid measured from the launch block. Six of them make one 1,200-block payout period in this configuration.
Target0x00000fffffffffffffff…a hit is any hash below it
Simulated by running the contract’s own line, target -= target / difficultyStep, at the minimum step of 100,000 from a genesis target of type(uint256).max >> 20. A halving of the target is a doubling of the hashes one solution costs, and it arrives every 69,315 blocks cut — a constant count, at a wall-clock spacing that grows every time.
Assumed bucket1.000000 BNBnothing has traded — this is arithmetic on an assumption
The pot is what the period’s trading taxed, so it does not move when the seam hardens. Fewer blocks cut divide the same 60%, so the BNB per block rises. The end of that line is not a small wage but no wage: a period nobody cut pays its whole bucket, less the 2% settlement bounty, to the project.
The nonce log for three windows
Not connected to any chain, because there is no chain to connect to. Every hash here is a real keccak256 of the packed miner, nonce and seed shown — mined by tools/mine_console.py in this repository, and checkable with cast keccak. The miner keys and the window seeds are derived from labelled phrases rather than read from a chain: nothing is deployed, so there is nothing to read.
Three properties, each closing an attack.
- The seed is a blockhash. The window’s first block does not exist until the window opens, so before it opens there is nothing to grind against.
- msg.sender is inside the hash. A solution lifted out of the mempool hashes to something else in the thief’s hands, so there is nothing to steal by watching.
- Credit follows the seed. A block belongs to the payout period containing its seed, never the period containing the submission. Solving early and holding for a richer period buys nothing — and past 256 blocks the EVM cannot see the seed at all, so the solution simply expires.
The seed rule is also what makes difficulty a filter rather than a race. It does not decide who wins; it decides which machines can still finish inside a window. Slower rigs fall out first.
Fixing credit to the seed removes a miner’s ability to pick a richer period after seeing a result. It does not make a single block hash resistant to validator influence, or to validator collusion. We do not describe blockhash as unmanipulable, and the audit lists a block producer’s influence over one seed block as a disclosure rather than a solved problem.
A deposit is also not an identity. One actor can fund many keys and run many rigs; the mechanism proves work, not personhood.
Source: RULES.md rule 003, README.md