HASHLINE
Creatures you breed with hashrate. Proof-of-work genetics on Robinhood Chain.
Version 3.0 · draft
1. Abstract
HASHLINE is a collection of on-chain creatures whose DNA is the hash that created them. A new creature can't be bought or minted at will: it is bred from an existing one by finding a hash that shares the parent's leading bits. Matching bits are inherited genes; the rest are mutations. Each extra matching bit doubles the work, so how faithfully a child copies its parent is a choice measured in hashrate.
Existing proof-of-work NFTs ask miners to hit a fixed target, such as leading zeros. HASHLINE is, to our knowledge, the first where the target is another NFT. Only the 64 genesis creatures can be parents, so each one heads a lineage and earns royalties from other people's work, difficulty balances itself, and every creature is backed by a share of a reserve it can be burned for.
2. Genome and artwork
- A creature's DNA is a 256-bit hash. Its visual genome is the DNA combined with its lineage's root:
genome = dna XOR keccak256(rootDna), so every lineage has its own look while a child still shares its parent's leading bits. - Each creature is a 48×48 pixel portrait assembled from an on-chain trait library of 147 sprites: 16 species (Cat, Fox, Owl, Frog, Ape, Wolf, Rabbit, Lizard, Bear, Panda, Dog, Mouse, Pig, Dragon, Robot, Alien), 16 fur colours, 12 fur textures, 24 eyes, 24 mouths, 24 headwear, 24 outfits and 24 accessories with weighted rarity, 16 cloth dyes and 16 hat dyes, 16 backdrop colours × 8 patterns. That is about 8·10¹⁴ combinations before the fur texture, which is drawn from each creature's own hash, so no two are alike.
- Inheritance. Bits 0–33 are always inherited (every child matches at least 34 bits): species, fur colour and texture define a lineage. Bits 34–81 pick the face, outfit and dyes and are inherited only as far as the child matched, so a higher-fidelity child looks more like its parent. Later bits choose the backdrop.
- The artwork, its sprites and palettes live in the contracts and are drawn by
tokenURIas SVG. No servers, no IPFS. The website draws with a reference renderer checked to produce byte-identical images.
3. Breeding
Only genesis creatures can be parents: children can't be bred from. To breed a child of a genesis creature P, a miner searches for a nonce such that
dna = keccak256(P.dna ‖ miner ‖ refBlock ‖ arbBlockHash(refBlock) ‖ nonce)
shares at least k leading bits with P.dna, where k is the current difficulty (§5).
| Property | How |
|---|---|
| Solutions can't be stolen | The miner's address is in the hash. A nonce copied from a pending transaction is worthless to anyone else. Robinhood Chain orders transactions first-come-first-served, with no priority-fee auction. |
| Work can't be prepared in advance | refBlock must be one of the last 240 L2 blocks (about one minute), and its hash comes from the chain's ArbSys precompile. |
| One lineage per hash | The parent's DNA is in the hash, so each hash targets one parent. |
| No replays | Every DNA is unique. |
| Same odds for everyone | Difficulty never depends on the wallet. More wallets don't help and don't hurt. |
Fidelity. A miner may keep going past k: the number of matching bits is recorded on-chain as the creature's fidelity.
4. Genesis stages
Genesis creatures descend from the Void, whose DNA is all zeros; mining them means finding leading zero bits. Genesis opens in stages with fewer and dearer genesis creatures each time:
- A stage's genesis creatures can breed once all of them exist; the next stage opens after 256 children of the current stage's genesis creatures. Genesis creatures of earlier stages keep breeding.
- A genesis creature needs 4 extra bits (16× the work of a child) and costs far more than a child. It earns 40% of every child's fee.
- A child's fee depends on its genesis parent's stage and rises as that stage breeds: it starts at the stage's child price and steps up by that amount after every 128 children of the stage (0.0005, 0.001, 0.0015 … ETH in stage 1), stopping at 10×. Fees are always round numbers.
| Stage | Genesis | Genesis fee | Child fee: start → max | At ETH = $4,000 (genesis; child) |
|---|---|---|---|---|
| 1 | 16 | 0.02 ETH | 0.0005 → 0.005 | $80; $2–20 |
| 2 | 12 | 0.03 | 0.00075 → 0.0075 | $120; $3–30 |
| 3 | 10 | 0.045 | 0.001 → 0.01 | $180; $4–40 |
| 4 | 8 | 0.065 | 0.0015 → 0.015 | $260; $6–60 |
| 5 | 6 | 0.09 | 0.002 → 0.02 | $360; $8–80 |
| 6 | 4 | 0.13 | 0.003 → 0.03 | $520; $12–120 |
| 7 | 4 | 0.18 | 0.004 → 0.04 | $720; $16–160 |
| 8 | 4 | 0.25 | 0.0055 → 0.055 | $1,000; $22–220 |
64 genesis creatures in all. Fees grow linearly within a stage and are capped; nothing doubles without limit.
5. Dynamic difficulty
k = global + parentFatigue(P) (at most 64)
- Global difficulty targets about one birth every two minutes. Every 8 births it retargets: faster than target adds 1 bit, and each further halving of the time adds another (up to +4 at once). Twice slower than target removes 1 bit; long idle periods relax it gradually.
- Rising floor. Difficulty never drops below a floor that starts at 34 bits and rises by 1 bit every 400 births, up to 52 bits (reached at 7,200 births). Early creatures are quick; late ones take serious hardware.
- Parent fatigue. Each birth from a parent adds 1 bit to that parent's next birth, fading by 1 bit every 30 minutes (at most 12). Popular parents get naturally more expensive, so births spread over all genesis creatures.
- Genesis needs 4 bits more than the global difficulty.
What this means for one RTX 5090 (Keccak-256 ≈ 6.4 GH/s in hashcat; a browser miner is typically 2–3× slower, to be measured):
| Bits | Expected hashes | One RTX 5090 (6.4 GH/s) | At 2.6 GH/s |
|---|---|---|---|
| 34 | 1.7·10¹⁰ | 3 s | 7 s |
| 38 | 2.7·10¹¹ | 43 s | 2 min |
| 42 | 4.4·10¹² | 12 min | 29 min |
| 46 | 7.0·10¹³ | 3 h | 8 h |
| 48 | 2.8·10¹⁴ | 12 h | 1.3 days |
| 50 | 1.1·10¹⁵ | 2 days | 5 days |
| 52 | 4.5·10¹⁵ | 8 days | 20 days |
With the two-minute target, the network settles near 46 bits with 100 such cards mining and 49 bits with 1,000; the floor takes over when hashrate is lower. Everything is computed by the contract from stored timestamps: no oracles, no admin controls.
6. Economics
Every birth fee is split on-chain:
| Recipient | Share |
|---|---|
| Owner of the genesis parent | 40% |
| Reserve | 35% |
| Treasury | 25% (plus the royalty when you breed from your own genesis creature) |
- Royalties. Owning a genesis creature is income: every child bred from it pays you 40%. Breeding from your own genesis creature pays that share to the treasury instead: no self-discount. A genesis fee goes 35% to the reserve and 65% to the treasury.
- Pull payments. Royalties and refunds accumulate in the contract and are withdrawn by their owners at any time.
7. Reserve and $GENE
$GENE is the companion memecoin, launched with a fixed supply on a Robinhood Chain launchpad. It is tied to the creatures through the reserve:
- The reserve holds ETH (35% of every birth fee) and $GENE: the treasury buys $GENE with its share and launchpad creator fees and sends it to the HASHLINE contract, where it becomes reserve. Every buyback is public.
- Each creature has a weight = its birth fee × its fidelity bits, fixed at birth. Genesis creatures, later stages and harder births weigh more.
- Burning a creature pays its owner
reserve × weight / total weightin both ETH and $GENE, minus a 10% tax that stays in the reserve for the remaining holders. A creature can be burned 7 days after birth. A burned creature's record and lineage stay, but it can no longer be bred from.
So every creature has a transparent floor value that grows with activity, $GENE bought back is locked in the reserve until creatures are burned, and the value of both is linked to how much the collection is used. $GENE confers no other rights and carries no promise of profit.
8. Mining
- In the browser: the official site mines with the graphics card through WebGPU. One slider sets how much of the card to use (0–100%); the batch size is tuned automatically. CPU threads are available when WebGPU isn't. Every solution is re-checked on the CPU and the transaction is simulated before sending.
- Open algorithm: the hash formula is public and the miner is open source. Fairness comes from the rules above, not from secrecy.
- Performance: the first 136-byte Keccak block doesn't depend on the nonce, so miners need a single Keccak permutation per attempt.
9. Security
- No mint, pause, fee or withdrawal powers for the team. All parameters are immutable. The owner can replace the artwork renderer until locking it forever, and set the $GENE address once.
- Tests: unit and fuzz tests; invariants over thousands of random actions (the contract holds exactly what it owes, stage counts add up, the total weight equals the living creatures' weights, every creature matches its parent in its recorded bits); SVG validity and byte-for-byte renderer checks; an end-to-end test that mines and mints through the website.
- An independent audit precedes the mainnet launch.
10. Roadmap
- Testnet: public test of mining, difficulty, stages, royalties and burning.
- Audit, then mainnet: the 16 genesis creatures of stage 1.
- $GENE launch and treasury buybacks into the reserve.
- Trait bounties: escrow ETH for "a child of P with trait X", paid to whoever mines it.
- Two-parent crossbreeding: match one parent's leading bits and the other's next bits.
11. Risks
HASHLINE is experimental software. Mining costs electricity and hardware time, and every birth costs a fee and gas whether or not the creature is later worth anything. NFTs and memecoins can lose all their value and may have no buyers. Smart contracts can contain bugs despite testing and audits. Nothing in this document is investment advice.