HASH MONKEYS DOCS
How the miner works, how a hash becomes a monkey, what stays on your machine
01 · overviewA monkey you have to mine
Hash Monkeys is a proof-of-work miner that runs in your browser. Press MINE, your machine starts hashing, and when a hash lands below the target a monkey is found. The 32 bytes of that hash draw the monkey. Same hash, same monkey, on any machine.
Nothing is sent anywhere. The miner, the generator and your collection all run and live in the browser.
02 · proof of worksha256(seed:nonce) below the target
A Web Worker (miner.js) takes a seed and a starting nonce and hashes the string seed:nonce with SHA-256 through crypto.subtle. If the 64-hex result is less than or equal to the target, the monkey is found and the worker reports the hash and nonce. Otherwise the nonce goes up by one.
├── seed 16 hex characters, random, generated once per browser ├── nonce starts at a random number below 1e9, +1 per attempt ├── hash sha256(seed + ":" + nonce), 64 hex characters ├── target 2^256 / difficulty, as 64 hex characters ├── found hash <= target ├── batch 400 hashes, then the worker yields ├── rate reported every 0.5 s as hashes per second
03 · retargetAbout forty seconds per monkey
Difficulty is the expected number of hashes per monkey. It retargets continuously from your own measured hash rate so a monkey takes about 40 seconds on the machine that is mining, whatever that machine is.
├── formula difficulty = 0.9 × difficulty + 0.1 × rate × 40 ├── floor 2 000 ├── start 20 000 on a fresh browser ├── stored localStorage, key hashmonkeys:diff ├── expected wait difficulty / rate, shown live
04 · generatorDrawn from the hash
monkey.js reads the hash as 32 bytes and draws a 24×24 pixel monkey on a canvas. Each trait comes from a specific byte, so the picture is deterministic.
├── byte 0 background, 8 options ├── byte 1 fur, 8 palettes ├── byte 3 eyes, 4 colours ├── bytes 4-5 hat: 22% none, else one of 9 ├── bytes 6-7 glasses: 40% none, else one of 5 ├── bytes 8-9 mouth: 30% none, else banana, cigar, gold tooth, gum, tongue ├── bytes 10-11 item: 45% none, else pickaxe, gpu, diamond, coin, wrench ├── byte 12 earring, 20% ├── byte 13 scar, 12% ├── id last 4 hex characters mod 16 384
05 · localOnly on your machine
The site has no backend. Everything below is localStorage in this browser and clears with it.
- hashmonkeys:seed
- your mining seed
- hashmonkeys:diff
- current difficulty
- hashmonkeys
- your collection: hash, nonce, seed, time for each monkey
06 · tokenThe token
Hash Monkeys is a token on Robinhood Chain, launched through Pons. There is one contract, it lives in config.js on GitHub, and the site reads it from there.
- Chain
- Robinhood Chain, EVM
- Launchpad
- Pons
- Ticker
- $HASHMONKEY
07 · honestWhere this is
├── done browser miner, difficulty retarget, monkey generator, collection, lightbox ├── launch contract address on the site ├── next claim a mined monkey on chain by its hash, once there is somewhere to claim it ├── not planned a pool, a server, anything that hashes for you