React + TypeScript + Vite. Wallet connect (Freighter), the swap form, batch monitor, and order history.
npm install
cp .env.example .env # defaults point at a local backend on :5001
npm run dev # http://localhost:5173Requires the Freighter browser extension to connect a wallet. Without a backend running, the swap form and batch monitor still render — API calls just fail gracefully (empty lists, logged errors).
npm run dev— dev server with hot reloadnpm run build— type-check (tsc -b) + production buildnpm run preview— preview the production build
See the root README for the overall data flow.
Key entry points: src/pages/SwapPage.tsx (main flow), src/services/api.ts
(backend client), src/services/encryption.ts (placeholder — see root
README's Status section), src/context/WalletContext.tsx (Freighter
connection state).