An infinite collaborative pixel drawing board on NEAR Protocol. Free to draw.
Website: https://berry.fast
API: https://api.berry.fastnear.com
Contract: berryfast.near
- Contract (
contract/) — Minimal NEAR smart contract with a singledraw()method. Exists only so transactions can be sent; the indexer reads args directly from chain data. - Indexer (
backend/indexer/) — Streams blocks from NEAR viafastnear-neardata-fetcher, filters draw calls, validates pixel JSON, and pushes events to a Valkey queue. - Server (
backend/server/) — Axum HTTP/WebSocket server. Consumes draw events from the queue, applies ownership rules, updates region blobs in Valkey, and broadcasts live updates. - Frontend (
frontend/) — Vite/React app. Full-viewport canvas with Google Maps-style pan/zoom, NEAR Wallet Selector for signing transactions, and IndexedDB caching.
- Anyone can draw on an undrawn pixel
- Anyone can draw on top of another pixel for 1 hour (it resets the timer)
- After 1 hour the pixel becomes permanent