Registry is SuperPaymaster operation interface based on PRD version contracts.
IMPORTANT: Always use pnpm run dev to start the development server, not pnpm run dev:vite.
# Install dependencies
pnpm install
# Start development servers (Vite + Vercel)
pnpm run devThis starts two services:
- Vite Dev Server (port 5173) - Frontend application
- Vercel Dev Server (port 3000) - API endpoints and RPC proxy
The application uses a dual-server architecture to:
-
Protect API Keys: RPC endpoints (Alchemy/Infura) are proxied through the Vercel serverless function, keeping your private keys secure and never exposed to the frontend.
-
Hybrid Mode:
- Local Development: Uses the RPC proxy at
/api/rpc-proxyserved by Vercel - Production: Vercel automatically serves the API routes based on request URI
- Local Development: Uses the RPC proxy at
- Frontend: http://localhost:5173
- API Proxy: http://localhost:3000 (proxied through Vite)
| Command | Description |
|---|---|
pnpm run dev |
Recommended - Start both Vite and Vercel dev servers |
pnpm run dev:vite |
❌ Do not use alone - Vite only (breaks RPC proxy) |
pnpm run dev:vercel |
Start Vercel dev server only (port 3000) |
pnpm run build |
Build for production |
pnpm run preview |
Preview production build |
pnpm test |
Run Playwright tests |
Create a .env.local file (not committed to git) with your private RPC endpoint:
# Optional: Private RPC URL (recommended for better reliability)
SEPOLIA_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/YOUR_API_KEY
# The proxy will fallback to public RPCs if this is not setIf SEPOLIA_RPC_URL is not set, the proxy automatically falls back to public Sepolia RPC endpoints:
- https://rpc.sepolia.org
- https://ethereum-sepolia.publicnode.com
- https://sepolia.drpc.org
- And more...
# Run all tests
pnpm test
# Run tests in headed mode (see browser)
pnpm playwright test --headed
# Run specific test file
pnpm playwright test tests/deploy-wizard.spec.ts
# Open test report
pnpm playwright show-reportregistry/
├── api/ # Vercel serverless functions
│ ├── rpc-proxy.ts # RPC endpoint proxy (protects API keys)
│ └── gas-events.ts # Gas events endpoint
├── src/
│ ├── pages/ # React pages
│ ├── components/ # Reusable components
│ └── utils/ # Utility functions
├── tests/ # Playwright e2e tests
└── docs/ # Documentation
If you see Failed to load resource: the server responded with a status of 500 in the console:
Problem: You're running pnpm run dev:vite instead of pnpm run dev
Solution:
- Stop the current server (Ctrl+C)
- Run
pnpm run devinstead
If port 3000 or 5173 is already in use:
# Kill process on port 3000
lsof -ti :3000 | xargs kill -9
# Kill process on port 5173
lsof -ti :5173 | xargs kill -9
# Then restart
pnpm run devThe application is deployed to Vercel. Push to main branch to trigger automatic deployment.
# Manual deployment
vercel --prod- Changes Log - Development progress and changes
- User Guide - User documentation with screenshots
- Create a new branch for your feature/fix
- Make your changes
- Run tests:
pnpm test - Commit and push
- Create a Pull Request
MIT