$ ./art

The Art

Every Fox is generated deterministically from the NFT's mint address. No two are identical. The visual is locked at wrap time and travels with the NFT forever.

# how the seed works

When you wrap, the program mints a brand new NFT. Its mint address (a base58 Solana pubkey) is hashed:

  seed = sha256(nft_mint_pubkey_base58)

The seed feeds a weighted trait roll across multiple slots (coat, eyes, background, accessory, mouth, headwear) and renders the result as a unique Fox image stored onchain.

# the trait system

  coat palettes     9    orange / red / black / white / gold / silver / ghost / fire / void
  eye variants      8    normal / golden / void / green / angry / closed / laser / 3d
  backgrounds       7    forest / dusk / neon / chart / void / sky / crimson
  headwear         12    crown, halo, cowboy, mohawk, cap, fire_aura, bandana, ...
  accessories      10    cigarette, cigar, chain, earring, shades, ...
  mouth             8    grin, frown, shout, bubblegum, cigarette, cigar, ...

Combinatorial space far exceeds the 1,000 supply cap. Rare slots (void coat, laser eyes, fire_aura, halo) appear at ~0.5–1% weight.

# tier reroll

Tier numbers (1 to 1000) are reused after unwrap. The number stays, but a rewrap mints a fresh NFT mint → fresh seed → fresh visual. Fox #042 today is not necessarily Fox #042 next week.

Why this matters: the art is bound to the NFT mint, not the tier number. Trade the NFT — the art follows. Burn the NFT — that exact visual is gone forever.

# sample foxes

fox sample fox sample fox sample fox sample

# renderer

The renderer is open source — pure JS, no IPFS, no mutable metadata. Anyone can run it and reproduce the exact image from a mint pubkey. The art cannot be retroactively altered, even by the team.

[ VIEW THE FULL PACK → ]