ChainToadz encodes a GIF in the EVM. It rasterises a few hundred bytes of draw instructions (fill, line,
dot) and compresses them with LZW. A view function returns the GIF89a as a
data: URI. There is no server,
no IPFS, and no oracle.
The LZW is complete: a binary-search-tree dictionary, 9- to 12-bit codes, and a clear code when the table is full. Some on-chain encoders write uncompressed data.
The NETSCAPE loop extension lets a toad move. Token 6613 (“Vibe”) was the first animated toad. Token 9002 (“Swish”), minted in 2026 for tokenfox, is the first three-frame animation from the contract, with no change to the code.
The toadz are CrypToadz, the CC0 collection by GREMPLIN. The art is not
mine, and the CC0 licence permits this use. The metadata still points to
cryptoadz.io. I wrote the engine and drew two customs: 9000, a “sload
toad” sloth, and 9001, an arctic “foxtoad”. Each token is approximately
600–700 bytes.
2021-12-17 — ChainToadz deploys and the first toad moves
The contract deploys, and 6613 “Vibe” mints: a 671-byte image and a 1,569-byte animation, which the contract renders to a looping GIF.
cast call 0xacd235697B33A0b4cF7A8ef52A81c01D28a150c6 "tokenURI(uint256)(string)" 6613 --rpc-url <rpc>2021-12-29 — Two customs of my own
9000 (“sload toad”) and 9001 (“foxtoad”) mint. They use the same draw-instruction format.
2026-07-10 — A toad for tokenfox
9002 mints from the same contract, with no changes. It is the first three-frame animation from the contract.



