docs

how it works

everything you need to know about Normies, the Canvas system, and what this archive does.

part 1

what is a normie?

Normies is a collection of 10,000 NFTs on Ethereum. Each one is a 40×40 monochrome bitmap — 1,600 pixels, each either on (dark) or off (light). The art is stored entirely on-chain, meaning no IPFS, no external servers. The pixel data lives directly in Ethereum smart contracts forever.

Every Normie has traits — Type (Human, Cat, Alien, Agent), Gender, Age, Hair, Eyes, Expression, Accessory — all packed into 8 bytes of on-chain storage.

the pixel colors are always the same: #48494b for on-pixels and #e3e5e4 for off-pixels. the only thing that varies is which of the 1,600 pixels are flipped.
part 2

what is normiescanvas?

NormiesCanvas is a separate smart contract that lets owners edit their Normie's pixels. It works through a transform layer — an XOR mask stored on-chain alongside the original bitmap.

the final displayed Normie is always: original XOR transform_layer. every 1-bit in the transform layer flips the corresponding pixel. the original is never destroyed — it always exists underneath.

you can interact with NormiesCanvas at normies.art/lab.

part 3

action points & burning

you can't edit pixels for free. editing requires Action Points (AP) — on-chain budget earned by burning other Normies into your target Normie. each 1 AP of budget lets you flip one pixel in the next edit transaction.

1
choose a normie to burn
you pick a Normie you own (the "fuel") and a target Normie that will receive the AP budget. the fuel Normie is destroyed permanently — it's gone forever.
2
pixel count determines ap earned
the burned Normie's pixel count (how many pixels are lit up) is converted to AP. denser Normies give more AP. there are three tiers — above 490 pixels and above 890 pixels unlock higher conversion percentages.
3
commit → reveal
burning uses a two-step commit-reveal pattern on-chain to prevent front-running. you commit first, then reveal after a delay to actually receive the AP budget.
4
spend ap to transform pixels
with AP budget on your Normie, you can call the canvas contract to flip pixels. each flip costs 1 AP. the transform layer is updated on-chain, and the displayed image changes permanently.
note on the AP stat shown here: the "AP" displayed on this archive (and in canvas/info from the API) is the total pixels ever flipped — a lifetime edit score that only goes up, not a remaining budget. your actual remaining budget is tracked separately on-chain. think of the AP shown here as "total edits made".
part 4

levels

Level is a display stat derived directly from Action Points:

level = floor(AP ÷ 10) + 1

so 0 AP = Level 1, 10 AP = Level 2, 50 AP = Level 6, 100 AP = Level 11, and so on. there's no cap. level signals how much editing activity a Normie has accumulated over its lifetime.

part 5

delegates

Normie owners can authorize a delegate address to transform pixels on their behalf — without giving up ownership of the NFT. this is useful for cold wallet holders who want to edit from a hot wallet, or for collaborative projects where someone else manages the canvas.

when a delegate is active, you'll see it displayed on the Normie's detail page as a banner with the authorized address (here on the archive website).

part 6

about this archive

the Normie Pixel Archive is an independent site that indexes every on-chain edit event and makes the history of each Normie explorable. here's what it does and how:

1
ponder indexer + blob cache
all pixel state, edit history, and canvas data is served by the Normies Ponder API (api.normies.art), which indexes every on-chain event in real time. leaderboard and burn data is fetched from the Ponder API every 10 minutes by a GitHub Actions cron job and cached in Vercel Blob — so the site never hits the blockchain directly on page load.
2
per-normie history
when you open a Normie's detail page, the archive fetches that token's full edit history from the Ponder API. timestamps for each edit are resolved lazily — only the blocks relevant to that specific Normie. this is fast because each Normie typically has at most a handful of unique edit blocks.
3
timeline animation
using the original pixels, the transform layer, and the edit history, the archive reconstructs an animated timeline showing each edit step. pixels are distributed proportionally across edits based on their change counts and shuffled deterministically — so the same Normie always produces the same animation.
4
heatmap overlay
the heatmap shows exactly which pixels were added (green) vs removed (red) from the original. this is built from the canvas/diff endpoint and overlaid on the canvas in real time.
5
leaderboard & the 100
the leaderboard ranks all edited Normies by total AP (lifetime edits). "The 100" page shows the first 100 Normies ever edited — sorted by the block number of their first PixelsTransformed event.
6
wallet search
you can look up any Ethereum address or ENS name to see all Normies it owns, sorted by AP. ownership is fetched live via multiple strategies (OpenSea, Reservoir, Etherscan) so the data is always current. visit /wallet to search.
data freshness: leaderboard and burn data is refreshed every 10 minutes via a background cron. individual pixel/history data comes directly from api.normies.art and is CDN-cached for 5 minutes. wallet ownership is fetched live on every lookup. nothing here is mutable or controlled by anyone.

built by @aster0x