wattsy

December 2021·Engineering·4 toadz

An on-chain GIF encoder in Solidity. Each CrypToad renders from a few hundred bytes, with no server.

ChainToadz

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.

Receiptverified
projectChainToadz, fully on-chain animated CrypToadz (ERC-721)
contract0xacd235697B33A0b4cF7A8ef52A81c01D28a150c6
networkEthereum mainnet
deployed17 December 2021 · block 13824510
authorwattsy (signature banner embedded in the deployed GIFEncoder source)
compilersolc 0.8.9, optimizer on (1 run), london; verified on Etherscan
artCrypToadz by GREMPLIN (CC0); on-chain engine + customs by wattsy
verifycast 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.