Open problem
Originality
The contract can only tell that two byte strings differ. A tracing of somebody else's drawing, or the same drawing shifted one pixel, is a new coin to the chain. Uniqueness here means the bytes, not the idea.
How it works
A launch is a drawing sent as bytes. Everything after it is a constant in a contract. There is no upload step, no image host and no metadata service, because the chain holds the picture and draws it back itself.
The canvas is 256 by 256. Each stroke you make is simplified to a handful of points, a colour from a fixed sixteen colour palette and a width, and packed into bytes: three bytes per stroke plus two per point. A doodle is a few hundred bytes. The pad accepts up to 8,192.
One transaction. The contract checks the bytes are well formed, refuses an exact repeat of a drawing that already exists, writes the bytes into the new coin's contract, mints the whole supply to the coin's own curve and gives you nothing: no allocation, no cut, no admin.
Buys and sells run against one constant product forever. One percent of every trade is the fee, and the same transaction splits it: eighty percent credited to your wallet, ten spent on the curve and burned, ten to the protocol. Claim yours from the studio whenever you like.
The format
Version 1. Every coin's drawing() returns exactly these bytes, and image() returns the SVG the renderer makes of them.
| Bytes | Meaning | Range |
|---|---|---|
| byte 0 | Version. Must be 1. | 1 |
| byte 1 | Paper colour, an index into the palette. | 0 to 15 |
| then, per stroke | Colour index, width in canvas units, number of points. | 0 to 15 · 1 to 64 · 1 to 255 |
| 2 bytes per point | x then y on the 256 by 256 canvas. One point is a dot, more is a line with round caps and joins. | 0 to 255 |
| Whole drawing | Strokes back to back until the bytes run out. Anything malformed reverts the launch. | 2 to 8,192 bytes |
Plainly
Honestly
Open problem
The contract can only tell that two byte strings differ. A tracing of somebody else's drawing, or the same drawing shifted one pixel, is a new coin to the chain. Uniqueness here means the bytes, not the idea.
Open problem
Anyone can launch anything they can draw. Nothing is reviewed and nothing can be taken down, because nothing is hosted. The gallery shows what the chain holds.
A limit
The cap keeps a launch cheap and a render cheap to read. The easel simplifies strokes as you draw so most pictures use a fraction of it, and refuses a stroke that would go over.
A limit
A fixed palette costs one byte per stroke and makes every drawing look like it came from the same hand. It is the PICO-8 palette with pure white in place of its off white.
The canvas is on the front page. The rest is the contract's problem.