How it works
Hashbits is one ERC-721 contract that mints Hashbits Monster. Nothing here is sold ready made: the only way a Monster comes into existence is a hash below the current target plus the HASHBITS burn of the current epoch, and it is always the next one in line.
Every moving part is below, and the instruments are real — keccak256 in your browser, the live chain, and the same formulas the contract uses.
Find a hash. Mint a Hashbits Monster.
The miner hashes your wallet address, a nonce, the contract domain and your personal counter: 20 + 32 + 32 + 32 bytes. A hash at or below the current numerical target earns the right to mint one NFT, after paying the current HASHBITS burn price.
| Miner | 0x0000…0000 No wallet connected, so the zero address stands in. Connect one and this row — and every hash below — becomes yours. |
|---|---|
| Nonce | 4 815 162 342 The only free value of the four — this is what the workers spin, hundreds of thousands of times a second per core. |
| Proof domain | — This immutable value identifies the chain and contract. It never changes when someone mints. 0x································································ |
| Personal counter | — Your next one-use mint counter, padded to 32 bytes. It increases only when your wallet successfully mints. |
A proof has no time or block deadline. It must meet the live difficulty, and its personal counter must remain unused. Epochs and mint streaks can make a saved hash insufficient. A temporary streak penalty may cool enough to make the same hash usable again. The browser saves the proof locally for the same wallet, network and contract. Clearing browser data deletes that local copy.
- Connect your wallet and approve the current HASHBITS burn amount.
- Start CPU or GPU mining. A found proof is saved in this browser for this wallet.
- Submit when your saved hash meets the live target. The contract verifies work and your maximum price before consuming the counter.
- The HASHBITS payment is burned. Your Hashbits Monster starts sharing future SPCX deposits.
Each personal counter can mint once. Other wallets cannot reuse your proof. Changing browsers or deleting local data removes your saved copy. Total NFT supply and the current payment requirements still apply.
Epochs and mint pace set the work.
The epoch floor starts at 26 bits and rises one bit per epoch. Every 8 mints, the base target follows a 10-second pace, limited to 4× harder or 2× easier per adjustment. Network and personal streaks add separate penalties: each recent mint doubles work, and each streak cools one step every 10 seconds (16 steps maximum per penalty). Each 5-minute idle period relaxes base difficulty one bit, up to 20 steps, capped at one bit easier than the epoch floor. The exact 256-bit target governs acceptance; rounded bit counts are for display.
| Epoch floor | — | bits · +1 each epoch |
|---|---|---|
| Retarget | Every 8 mints | 10-second target pace |
| Streak cooldown | 10 seconds | Network + personal |
| Supply | 1,000 | Hashbits Monster NFTs |
| Proof expiry | None | Live target applies |
| Replay protection | Personal counter | |
| Price | At mint execution | Maximum cost enforced |
Both the default price and minimum work double each epoch. Mint pace and streaks can make the live target harder than this floor. Saved work must meet the target and pay the price at execution.
At 1.9 MH/s — thirteen workers of an ordinary desktop, pure JavaScript keccak, no GPU. Every extra bit doubles all three numbers; there is no shortcut, and that is the whole point.
What mining burns,
and why it cannot drift
A valid solution hash is only half the ticket. Mining also pulls HASHBITS from the miner and destroys it.
Epochs double. The first is 8 Monsters, each next one twice as large: 8, 16, 32 … up to the last, which the 1 000 cap cuts short. The default burn starts at 10,000 HASHBITS and doubles at each border.
The token is destroyed. The contract uses ERC-20 transferFrom, then calls the token's burn function. The amount does not sit in a treasury and cannot be withdrawn later.
The miner sets a ceiling. maxCost is the amount the wallet agreed to burn. If the live cost rises before the transaction lands, the call reverts instead of taking more tokens.
Holders earn $SPCX. The owner can deposit rewards. Every live Monster gets an equal share, and each holder claims the amount attached to the NFTs they own.
mine() reverts with SoldOut whatever the hash.| Epoch | Monsters | Size | Burn per mine |
|---|---|---|---|
| 0 | #1–8 | 8 | 10 000 HASHBITS |
| 1 | #9–24 | 16 | 20 000 HASHBITS |
| 2 | #25–56 | 32 | 40 000 HASHBITS |
| 3 | #57–120 | 64 | 80 000 HASHBITS |
| 4 | #121–248 | 128 | 160 000 HASHBITS |
| 5 | #249–504 | 256 | 320 000 HASHBITS |
| 6 | #505–1 000 | 496 | 640 000 HASHBITS |
The owner may publish a replacement schedule for future epochs. A miner passes a maximum cost, so a transaction reverts instead of paying above the amount shown when it was sent.
The other exit:
burn it for points
A Monster burned in its own epoch credits 1 000 BITS points to the address that burns it. Wait an epoch and it is 500; wait two and it is 250. Burning is final.
A Monster cannot be burned the minute it is mined. Two doors stand before the burn: at least one more Monster has to exist after yours, and 10 minutes have to pass since the mint. The contract answers both separately (burnQuote), so the Monster page can tell you which one you are waiting on.
Points are a number on-chain, next to your address. points[owner] goes up, the token goes away, Burned is emitted. The site shows the balance next to the wallet button. There is no ERC-20, nothing to trade and nothing to approve: BITS points are an airdrop promise, not a token.
The supply stays 1 000 for ever. A burned id is never reissued and minted never goes down, so a burn does not make room for another mint. It makes the collection smaller.
The halving is per epoch, not per day. The clock is epoch() − monster.epoch: the epoch of the next mint, minus the one your Monster was mined in. On a quiet chain a Monster can sit in its own epoch for a long time at the full rate; a busy chain melts it faster.
| Waited | Points |
|---|---|
| own epoch | 1 000 |
| 1 epoch | 500 |
| 2 epochs | 250 |
| 3 epochs | 125 |
| 4 epochs | 62 |
| 5 epochs | 31 |
| 6 epochs | 15 |
1 000 points if the burn lands in the same epoch the Monster was mined in, half of that for every epoch waited, never below 1. Points are credited to the burner's address on-chain and shown next to the wallet; the Monster is gone for good and its number is never reissued.
A live Monster shares every $SPCX deposit. Claim before transferring if you want to keep the pending reward; otherwise it follows the NFT. Burning pays pending rewards to the burner first.
1 000 monsters,
drawn before the first hash
Every Hashbits Monster is a 128 × 128 pixel monster, pre-rendered and scaled 8× to 1 024 px with no smoothing. The set was fixed before deployment; mining decides who gets the next one, not what it looks like.
- Blood Moon
- Toxic Sewers
- Rotten Swamp
- Cursed Forest
- Slime Lab
- Crypt Fog
- Deep Void
- Haunted Violet
- Fungal Cave
- Flesh Portal
Sequential assignment. Token id, edition and artwork number are the same integer. The next Monster in line is yours — the hash does not pick the picture, and no amount of hashrate reaches past the queue. A farm cannot grind for a rare Monster; it can only be first to the next one.
Six species. Toxic Slime, Abyss Spawn, Frost Ghoul, Magma Fiend, Fungal Brute and Stone Golem — the skin of every Monster is one of these six. Each wears one of six corrupted streetwear fits: Spiked Biker, Void Hoodie, Swamp Bomber, Graveyard Denim, Blood Varsity or Biohazard Techwear.
Ten scenes. Blood Moon, Toxic Sewers, Rotten Swamp, Cursed Forest, Slime Lab, Crypt Fog, Deep Void, Haunted Violet, Fungal Cave and Flesh Portal stand behind them; face, eyes, head and equipment are the cursed traits on top.
Seven trait types. 7 layers per Monster, 79 traits in all. Rarity is a share of the 1 000, known in advance and printed on every Monster page next to the trait.
Provenance. Every image has a SHA-256, and the SHA-256 of all 1 000 of them in order is the provenance hash below. The per-image hash is printed on the Monster's page; recompute it from the PNG and it matches, or the site is lying.
Served by this site. Images and metadata come from /api/image/[id] and /api/metadata/[id]; the contract's baseURI points here and the owner can move it. No IPFS yet — the provenance hash is what pins the set until then.

| Trait | Values | Rarest |
|---|---|---|
| Background | 10 | Fungal Cave · 82 |
| Equipment | 14 | Hellforged Axe · 1 |
| Skin | 6 | Stone Golem · 160 |
| Clothes | 6 | Blood Varsity · 156 |
| Face | 6 | Bone Tentacles · 13 |
| Eyes | 11 | Plague Beam · 18 |
| Head | 26 | Golden Skull · 1 |
Concatenate the SHA-256 of /monsters/1.png through /monsters/1 000.png as hex, in order, hash the string once more, and this is what you get.
The whole thing,
by address
One contract: the ERC-721, the mining rules, the price table, the burn and the points all live in MonsterMiner. The site is told its address; everything else on this page it asked the chain for.
| 01 MonsterMiner | 0x585732aae949fedbcc676fbdc3635bd1d478dfa2 The collection, mining rules, BITS burns and $SPCX reward accounting. A valid hash plus the current HASHBITS burn opens the next sequential token id. |
|---|---|
| 02 HASHBITS | reading… Burned by every successful mine. The default schedule starts at 10,000 tokens and doubles each epoch. |
| 03 $SPCX | reading… Reward token deposited into MonsterMiner and divided across every live Monster. |
| 04 Chain | Robinhood Chain · id 4 663 RPC |





