Chainstats is a React + Vite app that visualizes Chainstack blockchain node storage sizes by protocol, network, node type, and client.
Production URL: https://chainstats.org
- API endpoint:
https://console.chainstack.com/api/core/v1/calc/ - Source path:
Enterprise.protocols - Inclusion rule in UI:
- Use only
dedicatedentries - Include only nodes where
type === "public" - Skip entries without
node_info.storage.size_required
- Use only
- Protocol/network/client table with sorting and filtering.
- Search by protocol slug and friendly display aliases.
- Full and archive node-type rows.
- Multi-client visibility per network/type.
- Protocol icons with fallback badges for unmapped protocols.
- Light/dark theme support.
- React 19
- Vite 7
- Ant Design 6
- Sass
- Axios
- Node.js 24+
- npm 9+
npm installnpm startOpen http://localhost:5173.
npm start: run Vite dev server.npm run build: create production build indist/.npm run preview: preview built app locally.npm run test: run Vitest (--passWithNoTests).npm run check:protocol-icons: compare visible API protocols to icon map coverage.npm run deploy: publishdist/to GitHub Pages.
Workflow: .github/workflows/ci.yml
Runs:
npm cinpm run check:protocol-iconsnpm run build
Shared protocol formatting lives in:
src/helpers/protocolMetadata.jsonsrc/helpers/protocolDisplay.js
Use these helpers for protocol naming and network formatting in UI components.
- Run checks:
npm run check:protocol-iconsnpm run build
- Deploy:
npm run deploy
- Verify: