The art

48×48 pixels, drawn by hand.

One drawing, made pixel by pixel, then recoloured across four trait categories - body, fabric, studs, backdrop. The engine only ever changes colour. It never redraws the figure, so every piece in the set is the same drawing you see here.

Colours are not paired at random. Every combination is checked for perceptual contrast before it can be minted - a bra that would sink into the body, or studs the same colour as the fabric they sit on, is never produced. That rejects 2,068 of the 19,840 combinations on paper.

Ten from the set

Every one a different body and a different fabric, so the spread is visible at a glance. Browse the full live gallery at /gallery.

Sample Nftit nftit_01
Sample Nftit nftit_04
Sample Nftit nftit_07
Sample Nftit nftit_10
Sample Nftit nftit_13
Sample Nftit nftit_16
Sample Nftit nftit_19
Sample Nftit nftit_22
Sample Nftit nftit_25
Sample Nftit nftit_28

Anatomy of a nftit

Four trait categories. Percentages below are the real distribution across the 1,000 minted pieces - countable from the collection yourself, not a target we aimed at.

Body
×16
tangerine · violet · cocoa · gold · jade · azure · porcelain · bubblegum · lime · mint · ash · lavender · plum · crimson · coral · teal
Rarest: teal - 3.2%
Fabric
×31
coral · pearl · ice · cherry · lime · lilac · candy · ocean · denim · scarlet · mint · cobalt · indigo · noir · sand · forest · …
Rarest: rust - 1.5%
Studs
×5
sapphire · gold · ruby · diamond · onyx
Rarest: onyx - 4.1%
Background
×8
slate · cream · dusk · ocean · ember · meadow · rose · void
Rarest: void - 6.8%

The math

Multiplying the active variants across every category:

16 × 31 × 5 × 8 = 19,840 − 2,068 unreadable
17,772
legible combinations
Minted, each one unique
1,000
Combinations per piece minted
18×

17,772 is a measure of visual diversity, not supply. The real ceiling is 1,000 alive nftits at any moment, enforced on chain by the token math: 1B $NFTITS ÷ 1M per wrap = 1,000 simultaneously wrappable. When all 1,000 are alive, zero free $NFTITS remain to wrap an 1,001st - the only way to create a new nftit is for an existing one to unwrap.

The 1,000 pieces were drawn up front, and no two share a combination. Drawing them at mint time from a hash would have been simpler, but with 1,000 pulls from 17,772 options the birthday paradox makes a collision near-certain - roughly a 1 in 1012 chance of avoiding one. Picking the set in advance is what makes each piece genuinely one of one.

The rarest of each

No invented Common-to-Legendary ladder. The set is finite and already minted, so rarity is just a count - here is the scarcest value in each category, out of 1,000.

Body
teal
32 of 1,000
Fabric
rust
15 of 1,000
Studs
onyx
41 of 1,000
Background
void
68 of 1,000

Count them yourself - every trait is listed in /collection/traits.csv, and the images are static files. Nothing here depends on trusting our arithmetic.

How it's made

The set was picked and drawn before launch. Every piece is reproducible from the published traits and the open-source renderer.

01
Traits picked before launch

1,000 combinations were drawn from the 17,772 legible ones without repetition, then assigned to the numbers 1 to 1,000 and published as traits.csv. The art belongs to the number, not to the NFT mint. Wrap #42 today or after ten people have unwrapped it, and you get the same drawing.

02
SVG built cell by cell

The renderer outputs a <svg viewBox="0 0 48 48"> document with a background gradient and roughly 1,300 <rect width="1" height="1"/> elements - one per occupied pixel, plus a one-cell outline that flips light or dark to keep the silhouette off the backdrop. Vector. Crisp at any size.

03
Served as both SVG and PNG

/api/render/<tier>?format=svg returns the vector source. /api/render/<tier> returns a 768×768 PNG (48×48 grid scaled 16×, nearest-neighbor - no smoothing).

Where the art lives

The trait table is published as a plain CSV. The renderer is open source on GitHub. The delivered image is served from nftits.fun, but feeding a row of the CSV into the renderer reproduces that PNG byte for byte.

This is why the art is reproducible without trusting us. If the site goes down tomorrow, all 1,000 pieces can still be rebuilt from the CSV and the renderer, with no RPC and no server involved at all.