Docs

How HoodRunnerz works

00 Overview

HoodRunnerz is a browser game on Robinhood Chain. You play a five-minute top-down arcade run; how well you play sets how hard your device mines; a valid proof found during the run mints one of 4,444 runners. Every runner is drawn entirely on chain.

Two sides, Punkz and Corpoz, race for mints. When the last runner is minted the war freezes, and from then on the side with more mints takes 90% of the collection's marketplace royalties, paid into its runners.

These docs start with what a player needs and end with the mechanics. Most rules here are enforced by the contract; where one is enforced at sign-in or by the game itself instead, it says so.

01 Getting in

  • Sign in with X. It is the only way in. A wallet on Robinhood Chain is made for you as you sign in, so there is nothing to install.
  • The bar. Your X account must be at least a year old, verified, and followed by at least 100 people. It is checked once, when your account is tied to your wallet. From then on the contract remembers your wallet, and every run starts from the chain alone.
  • One account, one wallet, for good. An X account is tied to one wallet and never to a second.
  • Choose a side once. Punkz or Corpoz. The contract records it on your first run and refuses the other side from then on.
  • ETH for the mint. Your game wallet needs the mint price for each runner and a very small network fee. The report card between runs shows the price and your balance.
  • No pop-ups during a mint. Your wallet signs the mint without asking, so nothing breaks the moment a proof lands; pressing Run is the agreement. Sending a runner or ETH out always asks first, in the game's own words.

02 A run

  • Five minutes, plus one. A run hashes for 300 seconds, with up to 60 more to land a proof it has already found. The chain keeps the clock, so a lost connection does not pause it.
  • The field. Ten waves of the other side's bugs, generated from your run's own salt, so no two runs are alike. Drones take two hits, Divers one, Bruisers three, and they shoot back.
  • Power. Your rig runs from the 2% idle floor up to 100%. Kills raise it and a chain of quick kills keeps it up; bigger bugs are worth more. The chain breaks after a couple of seconds without a kill and power drains back to the floor. These numbers are still being tuned by play.
  • Getting hit. There are no lives. A hit drops power to the floor for three seconds and breaks the chain; then you rebuild. Every player gets the full five minutes.
  • Speed. Your device mines at its own speed or 4 MH/s, whichever is lower, times your power. So 100% is the same on a fast desktop and on a recent phone; a slower device simply runs below the ceiling. A hidden tab mines nothing.
  • Bugs are not hashes. Shooting a bug never solves anything. The game shows what the miner is doing as things on the field: a shimmering Near-Miss bug when your best hash improves, the PROOF bug when a real proof is found. They report the miner; they do not drive it.
  • An early end. If nothing left in the run could possibly land, the game ends it when the hashing stops rather than show a minute of empty field. Anything that could still land gets the full minute.

03 Minting

  • The proof. Each run gets a salt from the contract when it starts. A proof is a number that, hashed with that salt, comes out at or below your side's current target. Other players' mints never make your salt stale.
  • Keep-best. The miner keeps the best hash of your run. The target eases every second nobody mints, so a hash that was not good enough can become good enough; the moment it is, it is sent, even in the grace minute.
  • If someone mints first. Every mint makes the target a little harder. If a mint lands just before yours, yours is refused at the cost of a small fee; the miner keeps the hash and sends it again when it qualifies.
  • The price. The same for every runner, fixed in the contract: reading…, read from it as you look.
  • How many. Each player may mint one runner. The limit rises by one each time nobody has minted for an hour while difficulty sits at its floor, up to five.

04 Your runner

  • Settling. A mint does not decide the look: the next block does, one that had not happened yet when you minted. Your game settles it straight after the mint; if it cannot, the next players' runs settle it, and a watcher settles any left waiting. Until then the runner shows a settling card.
  • The art. A full standing figure, 56 by 68 pixels, from one of ten hoods: Brickyard, Parkside, The Docks, The Grid, Ashyard, Neon Row, Bloom Block, Rooftops, Frostside and Foundry. The picture and its traits are made by the contract from sprites stored on chain. There are no rarity scores; marketplaces rank traits their own way.
  • On marketplaces. A new runner can take about half an hour to appear, and may keep showing the settling card until the marketplace refreshes it. Most marketplaces have a "refresh metadata" button.
  • Your profile. It lists every HoodRunnerz runner your game wallet holds, minted or received, and nothing from any other collection, so an NFT someone sends you unasked never shows up there.
  • Sending a runner. From the profile. It asks first, it cannot be undone, and everything inside the runner's own wallet goes with it. A runner cannot be sent into a runner's wallet.
  • Burning. Allowed once a runner has settled, and only by its holder. It never lowers a score, never gives back mint allowance and never reopens supply; any share the runner had not yet claimed is paid to its holder as it burns. The contract refuses while the runner's wallet still holds ETH: claim, move it out, then burn.

05 The war

  • Score. Every mint scores one for its side. Burns never lower a score.
  • The handicap. The side in front mines against a harder target, up to two bits harder (four times the work), by a fixed formula (see Mechanics). It ends at the freeze.
  • The freeze. The mint of runner #4,444 freezes the war: the side with more mints takes 90%, the other 10%, a tie 50/50. It never changes after.
  • What the game shows. Which side leads, never by how much. The scores themselves are public on chain.
  • If the supply never mints out. Then the war never freezes and the vault never pays out. That is a real possibility, and the design accepts it.

06 The prize

  • The royalty. 4.44% of every resale, owed to the prize vault through the standard royalty signal marketplaces read. Nobody can change it, the owner included. Marketplaces treat royalties as optional, so this income is best-effort: the prize is not a yield or a return.
  • ETH only. Royalties that arrive as wrapped ETH are turned back into ETH by a call anyone can make.
  • Before the freeze. It builds up. Nothing is shared, because nobody knows the winner yet.
  • After the freeze. Each new amount is split by the frozen ratio and shared evenly across each side's runners. Claiming pays a runner's share into that runner's own wallet; an unclaimed share stays with the runner when it is sold.
  • The runner's wallet. Every runner has one, made at mint and answering only to whoever holds the runner. It can send ETH out or pass on a HoodRunnerz runner, nothing more. Multi-token NFTs can never land in it at all, and it refuses ordinary NFTs sent the usual safe way. Your profile shows the ETH inside it and nothing else: anything else someone manages to send it is not shown, and the wallet cannot move it.
  • Moving it out. "Move to my wallet" in the profile takes the ETH from the runner's wallet into your game wallet. Your game wallet pays the small fee; ETH inside a runner cannot pay it, and the profile says so before you try.
  • A side with no runners left. Its share goes to the other side rather than sitting where nobody can claim it.
  • Holders outside the game. A runner bought on a marketplace sits in the buyer's own wallet, which the game does not sign for. The claim page connects any wallet, with no sign-in, to claim a runner's share and move it out.

07 What nobody can do

Things the contracts make impossible, for everyone, the team included:

  • Mint without a proof from a live run. There is no owner mint, and the supply stops at 4,444.
  • Change the price, the supply, the royalty rate or the split.
  • Choose a runner's look, or redraw it after it settles.
  • Take the prize. The vault has no owner and pays only as claims into runners' wallets, and a runner's wallet answers only to whoever holds the runner.
  • Burn a runner while its wallet holds ETH.
  • Make a hash win: every mint is checked against the same target as everyone else on its side.

The owner of the contract cannot mint, change a rule or reach the prize either, and ownership cannot be renounced.

The game itself is not trusted by the contract. Power and the 4 MH/s ceiling are rules of the official game; someone running their own miner is held back by the verified account and the per-player limit, not by the ceiling.

Not audited. The contracts have not had an external audit. HoodRunnerz is an experimental project on a young chain: take part only with what you can afford to lose.

08 Mechanics

Difficulty

One target for everyone, driven only by the timing of mints. While nobody mints it eases continuously, halving the expected work every 600 seconds; every mint makes it 0.2 bits harder. It aims for about one mint every two minutes. Easing never mints anything by itself: only people playing do, so how long the collection takes depends on how many play. It is kept as bits of expected work, with a floor of 27 bits and a ceiling of 64 (both provisional); the target is 2256 divided by 2 to the bits.

The proof

keccak256(abi.encode(bytes32 salt, uint256 nonce)) <= target for the player's side. The salt is fixed by the contract when the run starts, from the previous Robinhood Chain block hash, a running challenge, the wallet and its run count.

The handicap

Added to the leading side's bits only: log2(score + 32) − log2(other + 32), clamped between 0 and 2 bits, in exact integer arithmetic. 32 mints to none is exactly one bit; 96 to none is exactly two.

The look

At mint the contract stores a commitment to the proof, the token and the previous block; the next block's hash then settles the seed, and every trait is picked from that seed by weighted rolls. A miner can choose a proof but not the block after it, so spare hash power buys mints, never looks.

09 Contracts

HoodRunnerz

The collection: runs, proofs, mints, sides, the war, the royalty. The one address this page is given.

0x2ba7622e…922a0247Explorer

Prize vault

Receives the royalties, splits them after the freeze, pays claims into runners’ wallets. Created by HoodRunnerz; no owner.

Reading from HoodRunnerz…

Renderer

Draws every runner from the sprites stored on chain. View only; its pages are frozen.

Reading from HoodRunnerz…

Runner wallet code

The code every runner’s own wallet runs: ETH in, ETH out, and our runners moved on; nothing else.

Reading from HoodRunnerz…

ERC-6551 registry

The standard registry that gives each runner its wallet address. Not ours; the same on every chain.

Reading from HoodRunnerz…

Chain: chain 4663 (id 4663).

10 Questions

Can I buy a runner instead of playing?

Not from us: a proof from a live run is the only way to mint one. Runners already minted trade on marketplaces like any NFT.

Does a gaming PC beat a phone?

Not in the game: every device mines at most 4 MH/s at full power, so the ceiling is the same for everyone who plays it. A slower device runs below it. See what the game can and cannot enforce.

Does shooting bugs solve hashes?

No. Play sets your rig's power, power sets how fast you mine, and mining finds the proof. A run

What happens when I get hit?

Your power drops to the floor for three seconds and your chain breaks. The run carries on; there are no lives.

Why does it need an X account, and that bar?

So that one person is one player. Real, established accounts are much harder to farm than devices. Getting in

How many runners can I mint?

One to start, rising by one each time nobody has minted for an hour at the floor, up to five. Minting

When can I claim the prize?

After runner #4,444 is minted. Before that nothing is shared. And royalties are best-effort, not a yield. The prize

My runner is not on a marketplace yet.

A new runner can take about half an hour to appear, and may show the settling card until the marketplace refreshes it. Your runner

Is it audited?

No. The contracts have not had an external audit, and HoodRunnerz says so wherever it matters.

What if this website goes away?

The collection does not change: the art, the rules and the prize all live in the contracts, which do not depend on this site.

11 Glossary

Run
Five minutes of play and mining, plus up to a minute to land a proof already found.
Power
How hard your rig is mining right now, from 2% to 100%, set by how you play.
Hash
One try at the puzzle: the salt and a number, put through keccak256.
Proof
A hash at or below the target. The only thing that can mint a runner.
Target, bits
How good a hash must be. Each extra bit doubles the expected work.
Keep-best
The miner holding your best hash of the run until the easing target reaches it.
Settling
The block after a mint deciding the runner's look.
Side
Punkz or Corpoz, chosen once, kept by the contract.
Handicap
The extra difficulty the leading side mines against.
Freeze
The mint of runner #4,444, which fixes the royalty split for good.
Prize vault
The contract that collects the royalties and pays claims. It has no owner.
Runner's wallet
The wallet every runner has of its own, holding its claimed ETH, going with it when it is sold.
Hood
A runner's colourway and turf: one of ten.