Onchain Atlas

EtherRock

A December 2017 collection of 100 clipart rock JPEGs with a self-contained on-chain buy/sell market and an explicit 'serves no purpose' pitch, which went from ~0.001 ETH mints to million-dollar sales in the 2021 provenance mania.

▶ Run interactive simulation animated mechanism with editable parameters

Statuspartial success
Launched2017-12
ChainsEthereum
Mechanismsfixed-supply-100, quadratic-bonding-price-schedule, on-chain-order-book-per-item, owner-set-ask-price, no-royalties-no-fees-on-secondary, erc721-wrapper-for-marketplace-compat
Official sitehttps://etherrock.com/
Project X@etherrockcom (verified_by_official_website)
FoundersPseudonymous

How it works onchain

Diagram of how EtherRock's mechanism worksOpen full-size diagram
Original diagram derived from this entry’s researched mechanism description.

Summary

EtherRock is a collection of 100 numbered rock images (based on freely available clipart) launched on Ethereum in December 2017, shortly after CryptoPunks and CryptoKitties. It is one of the earliest NFT-style projects, predating the ERC-721 standard: ownership, pricing, and sales all live in a single bespoke contract (0x41f288...c4E2). The official site is disarmingly honest — the rocks "serve NO PURPOSE beyond being able to be bought and sold, and giving you a strong sense of pride in being an owner of 1 of the only 100 collectible rocks." After roughly three dormant years in which only around 30 rocks had ever been bought, the August 2021 NFT provenance mania sent the floor to roughly $300,000; Justin Sun reportedly bought one for about $500,000. The project's creator has never been publicly identified.

Design (Mechanism)

The verified contract (Solidity ^0.4.2) is a minimal self-contained marketplace, ~150 lines:

  • Fixed supply, sequential primary sale. Rocks are numbered 0–99. Only one "virgin" rock is for sale at a time (latestNewRockForSale). When it sells, the next rock is listed at a quadratic price schedule hard-coded in buyRock: price = 10^15 + id² × 10^15 wei, i.e. 0.001 ETH + 0.001·id² ETH. Rock 1 cost ~0.002 ETH; rock 99 would cost ~9.8 ETH. Primary-sale proceeds sit in the contract and are claimable by the deployer via withdraw() — the only privileged function.
  • Per-item on-chain order book. sellRock(id, price) lets the owner set an ask (price must be > 0); dontSellRock(id) delists; buyRock(id) requires exact msg.value == price, pays the full amount to the seller (no protocol fee, no royalty), and flips the rock to the buyer. giftRock(id, receiver) transfers for free.
  • No token standard. There is no ERC-721 interface, no events for transfers, and no metadata; images are served off-chain by etherrock.com. rockOwners is append-only, so rockOwningHistory records every address that ever held a rock but never removes past owners.
  • The redeployment. The revised contract's own header comments document that the original contract (0x37504ae0282f5f334ed29b4548646f887977b7cc) contained a classic bug: require(rocks[rockNumber].currentlyForSale = true) — assignment instead of comparison — meaning anyone could "buy" any rock at its last price whether or not it was listed. The creator redeployed with the fix and migrated all owner state into the new contract's constructor.
  • Wrapper for marketplaces. Because the contract predates ERC-721, an official wrapper (0xa3f599...fc02) lets owners deposit a rock and receive an ERC-721 "Wrapped Ether Rock" tradable on OpenSea.

Outcome

Dormant from 2018 to mid-2021 (roughly 30 of 100 rocks ever purchased), EtherRock exploded in August 2021 when collectors began hunting "historic NFTs." Commentary from figures like Gary Vaynerchuk coincided with the cheapest listed rock reaching about $300,000, and Justin Sun reportedly paid $500,000 for one. The mania also resurrected the abandoned buggy original contract: in August 2021 a pseudonymous user found that it would mint effectively unlimited new rocks for gas (each newly minted rock also auto-listed for free until the minter raced to relist it), spawning the derivative "We Like The Rocks"/Genesis Rocks community and a public fight over which contract was "the real" EtherRock. In March 2022 the collector @dino_dealer accidentally listed a rock for 444 wei instead of 444 ETH; a bot sniped it instantly, and the rock was reportedly resold days later for 234 ETH ($640,000). Prices collapsed with the broader 2022 NFT market, but the collection persists as a functioning, immutable artifact and a canonical piece of NFT history. On its own terms — 100 purposeless rocks that became museum pieces — it partially succeeded; as a durable market it did not.

Why it worked

  • Radical honesty as a meme moat. The "serves NO PURPOSE" copy became the product. When 2021 buyers wanted a pure test of provenance-driven value, EtherRock was the cleanest instrument available: zero utility claims to disappoint.
  • Verifiable antiquity and scarcity. A December 2017 deploy date and a hard cap of 100, both checkable on-chain, gave it the same "historic artifact" premium as CryptoPunks.
  • Self-contained mechanism. Buy, sell, delist, and gift all live in one immutable contract with no admin control over ownership — trades cleared for four years with no operator, website, or marketplace required.
  • Simple bootstrap curve. The quadratic primary-price ramp made early rocks nearly free while letting the deployer capture upside if demand appeared — a primitive but functional bonding-curve launch.

Why it failed or underperformed

  • The first deploy shipped a one-character critical bug (= vs ==), forcing a full redeploy and state migration — and the abandoned contract later came back to haunt the brand as an infinite-mint derivative that muddied "originality."
  • Pre-standard design caused permanent friction. No ERC-721 interface meant no marketplace compatibility without a wrapper, no transfer events for indexers, and off-chain images dependent on one website.
  • The exact-price, bot-exposed order book was unforgiving. Asks are public and instantly executable with no confirmation layer; the 444-wei fat-finger loss was a direct consequence of a marketplace with no slippage checks, delays, or escape hatches.
  • Value was purely reflexive. With no cash flows, utility, or ongoing development, price tracked NFT-mania sentiment; when the meme trade rotated, liquidity evaporated.

Lessons

  • A one-character logic error (= for ==) in a require statement can invert a contract's entire security model; assignments in conditionals should be linter-fatal, and this incident is a canonical argument for tests and static analysis even on "toy" contracts.
  • Abandoned contracts never die. The buggy original was resurrected four years later and monetized by strangers; deprecation on an immutable chain is social convention, not a technical state.
  • Standards are distribution: pre-ERC-721 assets needed wrapper contracts to access marketplace liquidity, adding trust assumptions and splitting provenance across contracts.
  • Human-facing price entry needs guardrails. Wei-denominated asks with instant bot execution turn typos into total loss; confirmation bounds ("price changed by >10^6x?") are cheap insurance.
  • Explicitly promising nothing can outperform overpromising: EtherRock's anti-pitch aged better than most 2017 utility roadmaps, because the only claim — scarcity plus history — remained true.

Redesign (EDITORIAL — hypothesis, not fact)

This section is editorial speculation, not historical fact. A modern EtherRock would keep the anti-utility honesty but fix the plumbing: implement ERC-721 natively with on-chain SVG rocks so images survive the website; emit standard events for indexers; and replace exact-price buyRock with a listing system that includes a seller-signed price denominated in ETH (not wei) plus a sanity band rejecting fills more than some factor below the item's last sale, blunting fat-finger snipes. The quadratic primary curve could route a slice of proceeds to an endowment that pays for permanent metadata pinning rather than solely to the deployer. Finally, the buggy-original saga suggests shipping a canonical-collection attestation (e.g., an on-chain registry entry signed by the deployer key) so provenance disputes between contract versions can be resolved by cryptography instead of Twitter arguments.

Sources

  1. EtherRock verified contract source (revised contract, Solidity ^0.4.2) — primary (contract)
  2. EtherRock.com official site (mechanics, contract address, 'NO PURPOSE' statement, @etherrockcom) — primary (docs)
  3. EtherRock.com wrapper page (ERC-721 wrapper for OpenSea trading) — primary (docs)
  4. EtherRock — Wikipedia (launch, 2021 revival, Justin Sun purchase, Dino Dealer incident) (archive)
  5. Decrypt: EtherRock NFTs 'Original' Code Has Bug That Lets Anyone Mint More for Free (Aug 2021) (analysis)
  6. Fortune: EtherRock NFTs are now worth millions, but are they the originals? (Aug 2021) (news)
  7. BeInCrypto: NFT Collector Accidentally Sells EtherRock NFT for a Penny (Mar 2022) (news)

Related experiments

Last verified: 2026-07-27 · Spot an error? Suggest a correction