No IPFS
No pinning service, no gateway, no CID to keep alive. The image bytes
are computed inside tokenURI() every time you read it.
10,000 scraps drawn by an unsteady hand. Humans, animals, monsters and money that grew a face. Every line crooked on purpose.
Drawn by the contract itself. No IPFS. No reveal. No off-chain art.
Reading the chain…
A scrap is not a picture stored somewhere. It is a seed and a renderer. Ask the contract for token #1 and it draws the whole thing — background, wobble, ink, hat — and hands you an SVG. It will do that for as long as the chain exists.
Most "on-chain" collections store a link. This one stores the drawing.
No pinning service, no gateway, no CID to keep alive. The image bytes
are computed inside tokenURI() every time you read it.
Nothing to reveal. The art for every token id is already determined by the contract at deploy. You can render token #9,999 right now.
The renderer can be frozen with a one-way switch. After that the art cannot be changed by anyone, including us.
> scraps.tokenURI(1)
"data:application/json;base64,eyJuYW1lIjoiUm9iaW4gU2NyYXAgIzEiLCJk…"
> decoded.image
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmc…"
Rendered in your browser by the same integer maths the contract runs — byte for byte the same drawing you get on chain.
Four kinds of scrap, twelve species, and a lot of bad handwriting.
human · animal · monster · object
cat · dog · bear · bunny · frog · coin · note · card · pump · jar · human · monster
googly · dot · tired · x · shades · spiral · cyclops · triple · beady
line · grin · teeth · o · tongue · smoke · frown
none · beanie · cap · cowboy · horns · antenna · hair · crown · halo · bucket
shirt · hoodie · chain
12 colours × halftone · scribbles · rays · plain
warts · whiskers · eye count · misregistered fills
The contract contains the drawing engine: a seeded random number generator,
a sine table, a wobbling ink brush and every shape in the collection. When a
marketplace calls tokenURI(), the contract draws the SVG and
returns it inside the metadata as a data URI. Nothing is fetched from
anywhere.
Every outline is densified into short segments and then pushed around by a random walk, so no line is ever straight. Fills are deliberately printed off-register from their outlines, like a bad riso print.
No. The art of every token id is fixed the moment the contract is deployed and can be read before it is minted.
0.000084 ETH per scrap, up to 20 per transaction, on Robinhood Chain.
The renderer address can be repointed until freezeRenderer()
is called — a one-way switch that locks the art forever.
10,000, hard-capped in the contract. There is no way to mint 10,001.