A small, self-hosted dashboard for tracking NFT collection floor prices and 24h volume across a watchlist of collections, using the OpenSea API v2.
It is deliberately tiny: one fetch script, one static page, one JSON file between them. No framework, no build step, no server.
Live demo: https://q8zx.github.io/nft-floor-tracker/ (renders the sample snapshot)
- Reads a watchlist of collection slugs from
data/collections.json. - Calls
GET /api/v2/collections/{slug}/statsfor each one and writes a timestamped snapshot todata/floors.json. - Serves a single static page that renders the snapshot: floor price, 24h volume, 24h change, owners, and total supply — sortable, light/dark aware.
export OPENSEA_API_KEY=... # https://docs.opensea.io/reference/api-keys
node scripts/fetch-floors.mjs # writes data/floors.json
python3 -m http.server 8080 # then open http://localhost:8080Without an API key the page falls back to data/floors.sample.json, so the dashboard
still renders offline.
Edit data/collections.json to change the watchlist:
["cryptopunks", "boredapeyachtclub", "pudgypenguins"]The fetch script requests one collection at a time with a 250 ms gap between calls, which keeps a 20-collection watchlist comfortably inside OpenSea's per-key limits. It is meant to be run on a cron (hourly is plenty for floor tracking), not in a loop.
Personal project, work in progress. The snapshot format is not stable yet — the next thing on the list is appending snapshots to a history file so the page can draw a floor-price sparkline instead of a single point in time.
MIT — see LICENSE.