Normies are not “just faces”. Each token is a programmable 40×40 canvas where pixels can flip on-chain. Action Points (AP) define how many pixels you’re allowed to mutate per transaction forever without custody leaving your wallet.
Renderer V1 upgrades the pass metadata and display logic. Finished artwork now persists visually after a pass is transferred, instead of turning blank when ownership of the originally bound Normie changes.
The pass itself remains the same NFT and keeps the same token ID. Renderer V1 only changes how metadata and SVG output are generated. It also adds a live on-chain Tick Count attribute so collectors can see how far a pass has evolved.
Think of a Normie as a state machine: the “state” is the bitmap. When you submit a transform, the contract applies an XOR bitmap on-chain, producing a new state (a new image) that persists.
┌───────────────────┐
│ NormiesStorage │ (original 40×40 bitmap)
└─────────┬─────────┘
│
│ XOR with transform bitmap (40×40)
▼
┌────────────────────┐
│ NormiesCanvas │ (validates AP + delegation)
│ setTransformBitmap │
└─────────┬──────────┘
│ emits PixelsTransformed
▼
┌───────────────────┐
│ CanvasStorage │ (stores transform layer)
└───────────────────┘
┌───────────────────────────────┐
│ NormiesGlitchPainter (tool) │
│ - builds glitch bitmap │
│ - calls setTransformBitmap │
│ - ticks GlitchPass │
└───────────────────────────────┘
┌───────────────────────────────┐
│ NormiesGlitchPass (NFT) │
│ - downsample seed from Normie│
│ - evolves via neighbor swaps │
│ - renderer outputs SVG │
└───────────────────────────────┘AP is a per-token budget enforced by the NormiesCanvas contract. A transform bitmap consumes “cost” equal to the number of flipped pixels in that bitmap. If your bitmap flips 120 pixels, you need at least 120 AP for that token to submit the transform.
AP is earned through the burn commit/reveal system. Burned tokens can transfer existing AP, and also mint new AP based on the burned token’s pixel count and tier roll.
The painter uses chain time to choose a “season” every 256 blocks. Each season changes the glitch style (clean scanline, broken scanline, drift, echo, static burst, phase lock). This creates an on-chain rhythm: the same tool behaves differently as the chain advances.
Most people paint manually. This tool is infrastructure: programmatic transforms for collectors who want to manipulate their token state without needing to be an artist. Your token stays in your wallet. The chain is the canvas.