Wayne is the DataHaven web app for managing storage buckets, uploading files, and interacting with the StorageHub network through a wallet-first experience.
- Create and manage StorageHub buckets.
- Upload, download, and delete files through MSP (Managed Storage Provider) APIs.
- Submit on-chain storage requests and confirmations via StorageHub smart contracts.
- Use a wallet connection flow (Reown AppKit + Wagmi) for authentication and signing.
- Node.js
22.xor24.x(see.nvmrcfor the pinned version). pnpm(seepackage.jsonpackageManager).- Optional: Docker for running a local Storage Hub stack.
pnpm installcp .env.example .envUpdate the required values in .env (see .env.example for the full list).
pnpm run devThe app runs at http://localhost:3002.
This project uses dotenvx to load environment variables. A plain .env works out of the box. If you want to encrypt .env, follow the dotenvx documentation and make sure your encryption keys are available in your environment.
To test against a local Storage Hub:
- Clone the Storage Hub repository: https://github.com/Moonsong-Labs/storage-hub
cd testpnpm install- Pull the docker images and start the chain:
docker pull --platform linux/amd64 moonsonglabs/storage-hub:latest && \
docker tag moonsonglabs/storage-hub:latest storage-hub:local && \
docker pull --platform linux/amd64 moonsonglabs/storage-hub-msp-backend:latest && \
docker tag moonsonglabs/storage-hub-msp-backend:latest sh-msp-backend:local && \
pnpm docker:start:solochain-evm:initialisedThen set NEXT_PUBLIC_LOCAL_CHAIN_ENABLED=true and run pnpm run dev.
- Frontend: Next.js App Router with Mantine UI and Jotai state.
- SDK layer: StorageHub SDK for on-chain actions; MSP client for off-chain file operations.
- Data fetching: TanStack React Query.
See:
docs/ARCHITECTURE.mdfor the full system overview.docs/SDK.mdfor StorageHub and MSP integration details.
pnpm run lint:fixfor formatting and linting.pnpm run typecheckfor TypeScript checks.pnpm run testfor Vitest (local).pnpm run playwright:testfor end-to-end tests.
Read CONTRIBUTING.md before opening a PR. Be sure to follow the Code of Conduct (CODE_OF_CONDUCT.md) and Security Policy (SECURITY.md).
Note for external contributors: Some CI workflows require secrets and infrastructure managed by the DataHaven team. See the "CI for External Contributors" section in
CONTRIBUTING.mdfor details on which checks may be skipped when running from a fork.
- Secret scanning -- gitleaks runs in CI and as a local pre-commit hook to prevent accidental secret commits.
- Dependency updates -- Dependabot is enabled for both npm packages and GitHub Actions.
- Vulnerability reporting -- See
SECURITY.mdfor responsible disclosure instructions.
For public releases, follow docs/RELEASE_CHECKLIST.md.
This repository is released under the MIT License. See LICENSE.
