Monorepo for the onchain CryptoPunks data, rendering, and market contracts, plus the TypeScript SDK, indexer, and front-ends that build on them. All contracts target Ethereum mainnet only.
| Package | Name | Purpose |
|---|---|---|
contracts/ |
@networked-art/punks-contracts |
Hardhat 3 sources for PunksData, PunksRenderer, PunksMarket, the auction/vault system, and the batch unwrap helper for the broken June 9th 2017 CryptoPunks contract. |
sdk/ |
@networked-art/punks-sdk |
Collection-first TypeScript SDK: local search and rendering, CryptoPunksMarket and PunksMarket reads/writes, Stash, criterion offers, and auctions. |
indexer/ |
@networked-art/punks-indexer |
Ponder indexer that tracks CryptoPunks and CryptoPunksMarket, their ERC-721 wrappers, PunksMarket, and the PunksAuction house, with USD-cent prices stamped per event. |
punksmarket.app/ |
@networked-art/punksmarket.app |
Nuxt front-end for punksmarket.app and the unwrap.punksmarket.app helper. |
punks.auction/ |
@networked-art/punks.auction |
Nuxt front-end for punks.auction, the zero-fee auction house — lots, auctions, criterion offers, and Punks Vault custody. |
docs/ |
@networked-art/punks-docs |
VitePress documentation site for the contracts and SDK. |
images/ |
@networked-art/punks-images |
CryptoPunks sprite sheet and per-token PNG extraction — the rendering assets the front-ends consume. |
Full per-surface docs live in docs/. Highlights:
PunksData— trait masks, visual metrics, palette, indexed pixels, dataset commitments.PunksRenderer— SVG, PNG-8, RGBA, marketplace backgrounds, ERC-721 metadata.PunksMarket— the criteria-bid market that wraps the broken June 9th 2017CryptoPunkscontract.- TypeScript SDK — the collection-first SDK entry point.
Requires Node 24 (see .node-version) and pnpm@10. If pnpm is not installed:
npm install -g pnpm@10Install all workspace dependencies:
pnpm installThe SDK must be built before the Nuxt dev server can start — Vite resolves it
from sdk/dist/ at runtime.
# 1. Build the SDK
pnpm --filter @networked-art/punks-sdk build
# 2. Set up the front-end env (only needed once)
cp punksmarket.app/.env.example punksmarket.app/.env
# Edit .env — set NUXT_RPC_URL to a mainnet JSON-RPC endpoint
# (e.g. https://eth.llamarpc.com for a free public one, or your Alchemy/Infura URL)
# 3. Start the dev server → http://localhost:3001
pnpm --filter @networked-art/punksmarket.app devpnpm test # contracts + SDK
pnpm typecheck # all packages
pnpm format # prettier
pnpm docs:dev # local VitePress previewPer-package scripts (Hardhat tasks, Ponder dev, Nuxt dev, Kamal deploys) are documented in each package's README.