4096

An experiment in whether a market can paint a picture. 4,096 pixels, one canvas, colour from trading and nothing else. Nobody has seen the result, including me.

Hover a pixel

Your pixels

About

A canvas painted by its own market

4,096 tokens. Each one owns a single pixel on a single 64×64 canvas. No pixel has a colour at mint. Every one starts white.

Colour comes only from what happens to a token afterward: how often it sells, how erratically, how long it rests. Nobody picks it. Nobody can see the finished image, including the person who deployed it.

The three channels

ChannelMeasuresTo raise it
Red How many times it has sold Trade often
Green How uneven the gaps between sales are Trade unpredictably
Blue Longest unbroken hold, including the one running now Out-hold everyone else
White Never sold Never sell

Colour is a rank

Each channel is ranked across the whole collection and split into sixteen tones. Your pixel's colour describes where it stands against every other pixel, not an absolute number. It moves when other people trade, even if you do nothing.

That means holding is never passive. Roughly nine in ten pixels change colour over any meaningful stretch of trading, because a tone gained by one pixel is a tone lost by another.

The last sale

The total climbs with every sale. At a hidden target, the sealed number, committed as a hash before launch and revealed only when the total reaches it, the canvas sets forever. The sale that reaches it is the last sale. The canvas mints as a single artwork and opens at 1 ETH with no deadline. Proceeds split equally across all 4,096 pixels, paid to whoever held each one at that block.

The winner inherits the royalties. From the moment the auction settles, the 5% royalty on every pixel sale in the collection is paid to whoever holds the canvas, not to the creator, and not to the holders. It follows the artwork: hold the canvas and you collect, sell it and the income passes to the next owner with it. That is what is actually being auctioned. Not just a picture, but every trade the collection ever makes afterward.

The sealed number may never be reached. There is no time limit and no backstop. If the total never reaches the sealed number, the painting is never finished.

What cannot change

No admin key, no upgrade path, no pause, no server, no indexer. The colour rules, the auction terms and the royalty destination are fixed at deploy.

Method

Everything, in the open

If you want to know why your pixel is the colour it is, this is where it is decided.

Red: how often it sells
What is measured Total sales. A sale is any transfer where the caller is not the sender, which is what a marketplace fill looks like. Moving a token between your own wallets does not count. Gifts do not count. The mint does not count. How it becomes a number key_velocity = min(sales, 1023) The sale count maps straight to a key. No scaling. An earlier version divided by supply, which crushed everything under five sales into one bucket and left most of the range unreachable. How it becomes a colour Every pixel that has ever sold is ranked by that key. The ranking is split into sixteen equal groups. Equal counts share a tone, so if four hundred pixels all have two sales, all four hundred share a tone. What this means for you Red is buyable. Each sale costs only gas, and the price of the pixel barely matters because you set it yourself in a private sale. What you cannot buy is a tone when nobody is standing near you: climbing from a crowded part of the distribution is cheap, climbing from a sparse part is not.
Green: how uneven the gaps are
What is measured The population standard deviation of the intervals between consecutive sales. Steady cadence scores low. A flurry, then years of silence, then another flurry scores high. How it is computed The contract keeps two running totals, updated on every sale: gapSum += gap gapSumSq += gap x gap Then, with n = sales - 1 gaps: mean = gapSum / n meanSq = gapSumSq / n variance = meanSq - mean x mean (floored at 0) rhythm = sqrt(variance) in seconds Quantised on a log scale so a gap of minutes and a gap of decades fit one axis: e = floor(log2(v)) key = e x 32 + ((v - 2^e) x 32) / 2^e, capped at 1023 Below three sales it does not exist One sale has no gap at all. Two sales have a single gap, whose spread is trivially zero. Neither is low rhythm, both are no rhythm, so those pixels sit at the midpoint, tone 8, and are left out of the ranking entirely. What this means for you Green cannot be bought quickly. Its whole substance is duration, and you cannot manufacture a two year gap in an afternoon. The only way to score high is to have actually traded unpredictably across real time.
Blue: longest unbroken hold
What is measured open = now - lastSale hold = max(open, longestGap) key = qLog(hold) same log quantiser as rhythm The longest stretch without selling, including the one running right now. Absolute seconds, never a ratio. Why absolute and not a share of its life An earlier version measured the hold as a fraction of the pixel's life. That fails: as a pixel sits unsold, the hold and the life converge, so the ratio marches toward one for everybody at once and the channel stops telling pixels apart. Absolute holds grow at the same rate for everyone, so the distance between two holders never blurs. What this means for you Blue is the one channel where doing nothing is the action. It rises on its own every day you hold, and it resets the moment you sell. It is also the only channel that changes without any transaction anywhere in the collection.
Removing the overlap between channels
The problem A pixel that trades constantly is, almost by definition, also trading erratically. Left alone, red and green measure much the same thing, colours collapse onto a diagonal, and most of the cube goes unused. Before this step was added there was not one pure red pixel on the canvas. The correction Least squares slopes across the defined population, with n tokens: den = n x Svv - Sv x Sv m1 = (n x Svg - Sv x Sg) / den red out of green m2 = (n x Svb - Sv x Sb) / den red out of blue Residuals, then blue out of green: rb = patience - m2 x velocity rg = rhythm - m1 x velocity - m3 x rb What survives in green is not "how erratic is this pixel" but "how erratic compared to others that traded about as much." The arithmetic A slope is a fraction and Solidity has no fractions, so a naive integer divide rounds m1 and m2 to zero and the correction silently does nothing. Every slope is therefore held in fixed point: S = 1,000,000 m = (numerator x S) / denominator and unwound by S wherever it is applied. If den is 0, which happens when every token has identical velocity, the slope is set to 0 rather than dividing. Honesty about the result Measured pairwise correlation afterwards is around minus 0.21, minus 0.20 and zero. Not perfect. Linear regression removes a linear relationship and what remains between these measures is not linear.
From rank to colour
Sixteen tones Each channel is ranked and split into sixteen: tone = floor(rank x 16 / population), capped at 15 channel = tone x 17 gives 0, 17, 34 ... 255 colour = (R x 65536) + (G x 256) + B Sixteen cubed is 4,096 possible colours, from 4,096 pixels. Ties Equal measurements share a tone, always. That means the sixteen tones are approximately, not exactly, equal in size, and the low end of red will always be lumpy because sale counts are whole numbers. White A pixel that has never sold renders pure white, identical for every untraded pixel, with no tiebreaking. Pure white is reserved: a pixel at the maximum of all three channels would otherwise compute to the same value, so it renders one shade below instead. Everything moves Because colour is a rank, a tone gained by one pixel is a tone lost by another. Across any meaningful stretch of trading, roughly nine in ten pixels that have ever sold end up a different colour, whether or not their owner did anything.

Heart

The heart of 4096.

The canvas is what 4096 is. This is where it came from.

Everything on this page runs on the collection. The heart brightens when a pixel sells. It fades when nothing moves. The arteries were grown from the block 4096 was deployed in, and they reach further the longer the collection lives. None of it is a picture of the project. It is the project, read back.

The work below belongs to people who worked something out before I did. Each one built a system, then stepped out of its way. That is the idea I am working from. I am not claiming their company. I am showing you where I learned it.

computed at block claimed /4096

The heart

It lives inside somebody else’s contract.

The heart is craft #1154 on The Vessel. Every craft there holds exactly as many bytes as its token ID. Fifteen hundred of the ten thousand are machine crafts, which store no image at all. They hold a pointer to another contract, and when you look at one, it calls that contract and asks for bytes.

The contract on the other end is Heartbeat4096. The Vessel calls it, it reads 4096’s state, and it answers with 1,154 grayscale values. Nothing is stored anywhere along that chain. No image file, no server, no cache. The heart does not exist between the moments somebody looks at it.

Craft #1154 renders in grey, fixed when it was claimed and not something anyone can change. On this page the grid is cropped square and shaped into a heart. The Vessel’s own render is the canonical one.

Brightness

One number decides everything.

Brightness is the time since a 4096 pixel last sold, anywhere in the collection. A sale takes it to 255. From there the remaining time is raised to the power of one and a half, which is what makes the decay front-loaded. Not a straight line down, but a fast drop that flattens into a crawl.

Day 0
255
1
202
2
153
3
110
4
71
5
38
6
13
7
0

swipe →

Past seven days it is zero. One sale puts it straight back to full. There is no partial recovery and no memory of how long it was out.

The beat

The pulse leaves the muscle first.

Every artery cell knows its distance from the heart. The beat is that distance offset against a clock, so the crest starts at the muscle and travels out to the tips.

Rate and strength both come from the brightness. About a second per beat at full, stretching past three by day six, stopped completely at zero. A dying heart pulses faintly before it stops rather than beating hard and cutting out.

The arteries

Grown from a block that already existed.

The arteries were not drawn. A program grew them. Five trunks leave the heart, four from the top and one descending, and each walks outward one cell at a time, splitting as it goes and thinning until it runs out. Every one of those decisions comes from a single seeded random number generator.

The seed is block 25,621,173, the block 4096 and its renderer were both deployed in. That number was fixed before any of this existed, so it is not a shape I could have shopped for by growing a hundred trees and keeping a favourite. Run the same seed and you get the same tree, on any machine, forever.

How much of it you can see is the collection’s decision, not mine. The mint builds the trunks. Trading builds the fine branches at the tips. Both only ever add, so nothing that has appeared can be taken away. It is nowhere near finished.

Every number on this page is checkable. 4096 — 0xEB46…FF2C Heartbeat4096 — 0x4C9d…fb61 The Vessel — 0xECb9…1463 Seed block — 25,621,173

Heartbeat contract  ·  4096

Inspiration

4096 Farben, Gerhard Richter, 1974

In 1974 Gerhard Richter finished a painting of 4,096 coloured squares on a square canvas. It was the last work in a series he had been circling since 1966, and it ended the series so completely that he did not return to colour charts for twenty five years.

Not his painting. A 16×16 sketch of the method: 64 systematic tones, each repeated four times, placed by lottery. See the original at Sotheby's →

The original 4096 Farben sold at Sotheby's in May 2023 for $21.8 million.

How he made it

Richter wanted to leave artistic feeling behind entirely, so he turned to math. He worked out exactly 1,024 unique tones by grading the primaries against greys and greens with a fixed system, made four copies of each, and then ran a random lottery to decide where all 4,096 squares would land. He painted none of the decisions himself. In the earliest colour charts he even had a friend call the colours out loud, so the selection was not his either.

What he was after, in his own words, was a diffuse, undifferentiated overall effect, a field rather than a picture. The grid, he noted, stops shapes forming, although you can find them if you insist on looking.

The part that gets us: he painted this in 1974, and it looks exactly like modern digital pixels. Decades before computers were on every desk, a math experiment on pure colour quietly predicted the world we now live in. That is a genuinely cool way to have arrived at the grid.

Why it matters here

Richter was refusing authorship. Not by making random marks, but by building a system strict enough that his taste could not get into it, and then letting the system decide. The painting is his and the colours are not.

4096 borrows that structure and swaps the system. Where Richter used arithmetic and slips of paper, this uses a market. Nobody picks the colours here either. They are produced by thousands of people trading, none of whom can see what they are painting.

Richter was the hand that held the brush while a system decided the colours. We are not even the hand. We wrote the math and then stepped back. The market is the brush, every trade is a stroke, and the people making those strokes cannot see the canvas they are painting. We do not get to choose the ending any more than you do. We built the instrument and let go of it, and that letting go is the whole point.

His painting resolved in a studio over weeks; this one resolves over years and might never resolve at all. His palette was complete by construction; this one is only as rich as the market that makes it. He knew what his painting looked like when he finished it. Nobody will know what this one looks like until it stops.

The system, in his words

Richter described how he built the palette by repeated multiplication.

4 x 4 = 16 x 4 = 64 x 4 = 256 x 4 = 1024
Gerhard Richter · Palais des Beaux-Arts catalogue, Brussels, 1974

He kept the image size, the square size and the number of squares in constant proportion.

That stepwise, multiply-by-four structure is the same shape our own tones sit on: sixteen gradations per channel, spaced so a difference near the bottom and a difference near the top feel like the same size of interval. He arrived at it with a pencil. We arrived at it because a market needs a scale that survives a token trading twice or two hundred times.

One thing he said that is worth sitting with

Richter thought 4,096 was probably too many. Past a thousand or so tones, he reasoned, the difference between one shade and the next stops being visible, and the extra precision buys nothing the eye can use.

That is true here as well. Sixteen tones per channel is a coarse instrument, and it is coarse on purpose. A pixel does not need to be uniquely identifiable. It needs to be somewhere in a field, and the field needs to hold together.

No connection to Gerhard Richter or his estate. The reference is a citation.

Auction and claim

4096  ·  fully on-chain X OpenSea Etherscan econ101