DOCUMENTATION
Nine cells, painted by the order flow.
ERC-404 gave us hybrid assets: a token that is fungible until you hold a whole one, at which point it becomes an NFT. Uniswap v4 gave us programmable pools: a contract that runs inside the swap. Chunck puts the second inside the first.
What a Chunk is
A 3×3 grid of nine cells. Each cell holds one of five shades. There is no image file, no
IPFS pin and no metadata server: tokenURI builds the SVG on chain out of four
numbers.
Holding one whole $CHUNK is holding one Chunk. Drop below a whole token and the Chunk is burned; cross back above and a new one is minted. That is the ERC-404 half.
Volume is the clock
The hook sits on the ETH/$CHUNK pool and does exactly two things on every swap: it adds the size of the trade to a running total, and it stirs the trade into an entropy accumulator.
When the running total crosses EPOCH_VOLUME, the epoch advances and one
new seed is appended. That append is the only storage write the system makes per epoch, and
the trader who tips the counter over pays for it.
Nothing changes between epochs. The art is not repainted on every swap; it is repainted every time the pool has done enough business to earn a new epoch.
One cell freezes per epoch survived
A Chunk remembers the epoch it was born in. For every epoch it lives through, one more of its nine cells freezes forever, in an order drawn from its own token id. After nine epochs the Chunk is completely still.
A cell freezes at whatever shade it held in the epoch it froze, so its value is fixed by that epoch's seed. Live cells always read the current one. Both are pure lookups, which means no per-token storage is ever written: not at mint, not at each freeze, not ever. A Chunk is a deterministic function of four numbers, and two people reading it in the same block always see the same nine cells.
The tension
This is the part worth understanding before buying one.
Trading is what advances the clock.
Trading your own Chunk resets your own clock.
ERC-404 hybrids are destroyed and re-minted as they move. Selling burns your Chunk and mints a new one to the buyer, with a new birth epoch. You need other people to trade, and you are punished for trading yourself. A nine-epoch Chunk cannot be bought. It can only be not sold, through nine epochs of somebody else's volume.
Nothing in the contract enforces this. It falls out of ERC-404's own semantics the moment the art depends on time survived.
The contracts
afterSwap only. No fee, no custody, no path to funds.Decisions worth stating
-
Two contracts, not one. In the original single-contract ERC-404,
approveandtransferFromshare a selector between ERC-20 and ERC-721 and are told apart by guessing whether the number looks like a token id. That guess causes most ERC-404 accidents. A separate mirror makes every selector unambiguous. - The hook can never brick the pool. One swap may advance at most eight epochs, so the loop is bounded no matter how large the trade; the surplus stays pending and drains into later swaps. The call into the clock is wrapped, so if the clock ever misbehaves the art stops moving and trades still clear.
- Infrastructure holds no Chunks. The PoolManager, the LP manager and routers are exempt from minting. Without that, a swap would try to mint a Chunk for every whole token it touches and the pool would be untradeable.
- Nothing is upgradeable. Nine epochs is a promise about the future. A proxy would make it a suggestion.
Parameters
What this is not
It is not a promise of value, a roadmap, or a claim that the art is rare. Every Chunk in existence re-rolls on the same seed at the same moment. What differs between them is only how long each one has been left alone.
Nothing is deployed yet. The live page is a simulation of the mechanic, not a reading of a pool.