Onchain Atlas

ChainFaces

January 2020 collection of 10,000 fully on-chain generative ASCII faces with stepwise tiered mint pricing and on-chain rarity stats, a pre-boom PFP pioneer that later spawned a burn-to-survive tournament (ChainFaces Arena).

▶ Run interactive simulation animated mechanism with editable parameters

Statuspartial success
Launched2020-01
ChainsEthereum
Mechanismsfully-on-chain metadata and art, stepwise tiered mint pricing (supply-based price steps), buyer-supplied seed + blockhash pseudo-randomness, on-chain rarity scoring (Golf Score / Symmetry / Percent Bear), burn-to-compete tournament with prize pool (Arena successor), VRF-based minigame (FaceGolf)
Official sitehttps://chainfaces.co/
Project X@Unknown (unverified)
FoundersNate Alex (reported as Nate Hart in 2020 FaceGolf announcement) (@NateAlexNFT)

How it works onchain

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

Summary

ChainFaces, launched in January 2020 by collector-turned-creator Nate Alex, is a collection of 10,000 generative ASCII "text faces" (e.g. ʕ◕ᴥ◕ʔ) minted on Ethereum with every attribute — the face string itself, rarity statistics, even display colors — computed and stored entirely on-chain. Arriving a full year before the 2021 PFP boom and inspired by Larva Labs' Autoglyphs, it was one of the very first fully on-chain generative PFP collections. The mint used a stepwise price curve rising from 0.006 ETH to 0.014 ETH as supply grew, sold out in under a week, and implied roughly 100 ETH of primary revenue. The collection later powered two follow-on experiments: FaceGolf (June 2020), a Chainlink-VRF minigame, and ChainFaces Arena (January 2022), a tournament in which 17,031 successor faces fought for a prize pool and 12,775 of them were permanently burned.

Design (Mechanism)

Fully on-chain generation. The verified contract (ChainFaces.sol, Solidity 0.5.12) composes each face from five parts — left face, left eye, mouth, right eye, right face — drawn from hardcoded Unicode character arrays (8 left/right face characters, 13 eye characters, 11 mouth characters). The assembled string is stored in contract state at mint time; nothing lives off-chain. Two easter-egg faces are hardcoded at supply counts 77 and 80 (a cat face and a bear face).

On-chain rarity statistics. The contract computes and stores three scores per token: Golf Score (the sum of the five part IDs — lower is rarer, golf-style), Percent Bear (16 points per bear-themed part plus a random 0–20), and Face Symmetry (0/50/100% depending on whether eyes and face sides match). It even derives text and background RGB colors on-chain from these scores. This made ChainFaces one of the first collections whose rarity ranking was a first-class, contract-computed property rather than a marketplace afterthought.

Stepwise tiered mint pricing. createFace(uint256 seed) enforced an exact payment that stepped up with total supply: 6 finney (0.006 ETH) below 2,000 minted, then 8, 10, 12, and 14 finney per 2,000-face tier — a crude discrete bonding curve rewarding early minters. Proceeds were split 80/20 between two hardcoded addresses. Supply was capped at 10,000 ("because there's 10,000 Punks," per Nate Alex) with no breeding or inflation mechanic.

Buyer-supplied seed + blockhash randomness. Randomness came from a Random library seeding a hash-chain pool from recent blockhashes combined with the caller-supplied seed parameter. Because past blockhashes are known when a transaction is constructed, sophisticated minters could simulate outcomes and choose seeds (or mint via contracts) to target rare faces — an exploit later acknowledged in the FaceGolf announcement, which noted "some faces were minted using special techniques that could abuse the contract RNG."

Follow-on mechanisms. FaceGolf (June 2020, built with developer Skyler Fly) pitted ChainFaces' Golf Scores against each other with Chainlink VRF supplying tamper-proof randomness, minting FaceGolf Card NFTs and writing stats back to the originals. ChainFaces Arena (January 2022, separate contract) was a month-long survival tournament: entrants' NFTs were burned if they fell, and survivors earned shares of the pooled mint fees plus generative scars added to their on-chain art for every 10 rounds survived.

Outcome

The 10,000-face mint sold out in under a week in January 2020 — a notable feat in a market where NFTs were still a niche pursuit. Rare low-Golf-Score faces traded upward of 1 ETH on secondary markets shortly after. The collection remains live and trades on OpenSea (floor around 0.0148 ETH as of mid-2026 listings), and its Etherscan token page still renders faces directly from chain state. ChainFaces Arena drew 17,031 entrants in January 2022, burned 12,775 of them, and left 4,256 scarred survivors sharing a prize pool described as worth millions of dollars at the time. ChainFaces is now widely cited alongside Avastars and Autoglyphs as proto-history of on-chain PFPs, though it never approached CryptoPunks-tier valuations. The RNG-abuse episode during mint stands as an early, well-documented case of seed-manipulation in NFT minting.

Why it worked

  • Radical simplicity of full on-chain storage: ASCII strings are tiny, so ChainFaces achieved 100% on-chain art and metadata at 2020 gas prices without SVG assembly tricks — provable permanence became the product.
  • Contract-native rarity: Golf Score, Symmetry, and Percent Bear gave collectors an objective, manipulable-by-no-one rarity language baked into the token itself, seeding later games.
  • Early-mover pricing: the stepped curve made early participation cheap (0.006 ETH) while capturing modest upside from demand, and the hard 10k cap with no inflation preserved scarcity credibility.
  • Composability payoff: because everything lived on-chain, third-party and first-party games (FaceGolf, Arena) could read scores trustlessly and extend the collection's life over multiple years.

Where the design broke

  • Exploitable randomness: the buyer-supplied seed plus known blockhashes let technical minters cherry-pick rare faces, undermining fair distribution — the exact problem Chainlink VRF was later brought in to fix.
  • Too early for its market: launching 18 months before the PFP mania meant ChainFaces was overshadowed commercially by 2021 entrants with weaker provenance; its floor remains modest relative to its historical significance.
  • Thin ongoing surface: with no treasury, token, or roadmap, momentum depended entirely on the creator shipping new games; between FaceGolf and Arena the project was largely dormant, and the official site has since gone offline.

Lessons

  • Never let minters supply entropy that combines only with already-known values (past blockhashes); use commit-reveal, future blockhashes, or VRF, or accept that rarity sniping will occur.
  • Fully on-chain storage is a long-horizon moat: six years on, ChainFaces still renders from Etherscan while off-chain-metadata peers from the same era have rotted.
  • Contract-computed rarity scores turn a static collection into a game platform; interoperable stats (Golf Score) enabled two derivative games with no re-architecture.
  • A stepwise supply-based price curve is a simple, legible alternative to auctions for rewarding early conviction, but it leaks value to gas-war snipers at tier boundaries.
  • Burn-to-compete tournaments (Arena) show that destroying supply for prize eligibility can generate real engagement — but they permanently shrink the community that survives them.

Redesign (EDITORIAL — hypothesis, not fact)

This section is editorial speculation, not a factual account. A modern redesign would keep the fully on-chain ASCII art and contract-native rarity, but replace the seed-manipulable RNG with a commit-reveal mint (commit payment, reveal after a future block, or Chainlink VRF batch reveal), eliminating rarity sniping without off-chain trust. The stepped price tiers could become a smooth VRGDA or continuous bonding curve to remove tier-boundary gas wars, with a portion of proceeds escrowed into an on-chain prize treasury that pre-commits funding for future games — making the "programmable art becomes a game platform" arc a protocol guarantee rather than a founder promise. Arena's burn mechanic could be softened into stake-to-compete with a "fallen" soulbound memorial token, preserving the drama of permadeath while leaving eliminated players a collectible stake in the story rather than nothing.

Sources

  1. ChainFaces verified contract source (ChainFaces.sol), Ethereum mainnet — primary (contract)
  2. Announcing FaceGolf, the ChainFaces mini-game powered with Chainlink VRF (NonFungibleTeam, June 2020) — primary (docs)
  3. OpenSea: ChainFaces Arena collection (project description with tournament stats) — primary (archive)
  4. OpenSea: ChainFaces collection (archive)
  5. Cointelegraph Magazine: NFT Creator Nate Alex on selling 70 CryptoPunks too early (news)
  6. DappRadar: ChainFaces Arena Lets You Upgrade Your NFT in Battle (analysis)
  7. CryptoSlate: Chainlink's verifiable randomness brings fair winnings to ChainFaces golf games (news)

Related experiments

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