About
Squatters, mostly. Nobody invited them and nobody can get them out. Here's what's known.
Short answer: nobody knows, and they're not saying.
Longer answer: chains leave gaps. Gas gets refunded, numbers get rounded off, and there's usually a bit of room at the end of a block where the last thing didn't quite fit. It's worth nothing, so nobody's watching it.
The Robinhood Chain was about two weeks old when 2,222 of them turned up in that gap, one per block. Nobody deployed anything. They've been there ever since and they've stopped pretending to be embarrassed about it.
Not much, but they're extremely committed to it.
They'll read your transactions over your shoulder. They've got opinions about your gas settings and they'll share them. If something on your screen is two pixels left of where you left it, that was one of them, and no, it wasn't.
Nobody's managed to get rid of one yet. You can send the transaction. It'll confirm. The ghost is still going to be there.
Two hundred and sixty-six came out wrong and got shipped anyway.
Ninety-six went see-through. Sixty-eight came out inside-out. Thirty-five arrived with a second copy of themselves standing just behind them, which they'd rather you didn't bring up. Thirty-six got smeared sideways halfway through drawing and simply kept going.
Then there's eight with no body at all. An outline and two eyes, that's it. They know precisely how good that looks.
#ccff00. If you've seen an arcade cabinet or a highlighter, you've seen it.
There's no deeper reason for it. It's the brightest thing that still reads properly when you've only got thirty-two pixels to work with, and it turned out to suit them.
Thirty-nine showed up in a different colour anyway. Twenty-six have a pink outline, thirteen went gold. They won't explain, and the other 2,183 are sick of hearing about it.
You give it a number. That's the whole input.
The number gets hashed ten times, once per trait category, each with a different salt. Ten hashes, ten random streams, ten decisions: form, colour, eyes, mouth, fringe, crown, aura, pattern, backdrop, and whether anything went wrong. Those same ten rolls write the trait list in the metadata too, so the picture and its description always agree.
Each category gets its own stream on purpose. Share one and adding an eleventh trait later would shift every roll after it, quietly redrawing the whole collection. Separate streams mean you can add one and nothing that already exists moves.
Nothing's saved anywhere. Ask for #19 tomorrow on a different computer and you'll get the identical image, byte for byte.
Each ghost is pinned to a real block: #1 to block 1, on up to #2,222 to block 2,222. Those are the first blocks the Robinhood Chain ever made, back in spring 2026 when it managed one every few minutes instead of several a second. Every ghost links through to its block on the explorer if you want to check.
The block doesn't affect what the ghost looks like, which is deliberate. Draw the art from block numbers and picking a different range later would have changed all 2,222 of them. This way the art was settled up front and the chain just records where each one ended up.
2,222 is small enough to simply count, so that's what happens. Every filter in the gallery checks all of them and gives you a real total.
The grades come from the collection's own spread rather than a sample, so Legendary means the top thirteen scores that actually exist, not an approximation of them.
Rates are odds, not quotas. Hollowed sits at half a percent of the tables, which across 2,222 pieces averages about eleven. It came out 8.
The PNG writer, the animated GIF encoder, the pixel font, the sprite compositor and the rarity maths are all written from scratch. There are no runtime dependencies at all. If some package somewhere gets unpublished next year, none of this stops working.