Tester App
The Tester App is a frontend interface built with Next.js to interact with the Kaizen protocol.
Screenshots
Normal Mode (Control Panel)

The default mode provides a full control panel with:
- Drawing Tools: Select, Box, and Line tools for placing theses on the chart
- Leverage Multiplier: Adjustable leverage (1x - 10x)
- Balance Display: Current USDC balance
- Mock Bridge (Faucet): Simulates USDC deposits
- Recent Theses: History of placed theses with their outcomes
Degen Mode 🔥

Degen Mode is a streamlined, one-click trading experience:
- Fixed Bet Amounts: Quick-select buttons (10, 25, 50, 100 USDC)
- Auto Quote → Best Solver → Execute: Automated flow from drawing to execution
- Enhanced Thesis Display: Shows margin, position size, and leverage badge
- Visual Indicator: Fire theme and header badge
Overview
| Property | Value |
|---|---|
| Package | apps/tester |
| Framework | Next.js, React, Tailwind CSS |
| State Management | Zustand |
| Web3 | Wagmi, RainbowKit |
| Default Port | 3000 |
Features
- Real-time Charting: Visualizes price feeds with a smooth, scrolling canvas-based chart
- Thesis Management: Interface to place Box theses via RFQ system
- Bridge Integration: Deposit/withdraw USDC via mock bridge
- Portfolio Tracking: Real-time updates of active theses, PnL, and settled positions
- Theme Customization: 6 themes each for Normal Mode and Degen Mode
Running
# Development
pnpm --filter @kaizen-core/tester dev
# Or from apps/tester
cd apps/tester
pnpm devThe application will be available at http://localhost:3000.
Docker
# Start with full stack
docker compose up -d tester
# Access
open http://localhost:3000Environment Variables
| Variable | Description | Default |
|---|---|---|
NEXT_PUBLIC_KAIZEN_RPC_URL | Kaizen RPC endpoint | http://localhost:8546 |
NEXT_PUBLIC_KAIZEN_WS_URL | Kaizen WebSocket endpoint | ws://localhost:8546/ws |
NEXT_PUBLIC_BRIDGE_URL | Bridge service URL | http://localhost:3002 |
NEXT_PUBLIC_SOLVER_URL | Solver service URL | http://localhost:3001 |
Architecture
The app uses a service layer pattern:
┌─────────────────────────────────────────┐
│ React UI │
│ (Chart, ThesisPanel, BridgeModal) │
└────────────────┬────────────────────────┘
│
┌────────────────▼────────────────────────┐
│ Zustand Stores │
│ (wallet, thesis, settings, price) │
└────────────────┬────────────────────────┘
│
┌────────────────▼────────────────────────┐
│ @kaizen-core/sdk │
│ (KaizenClient, WebSocket, Signer) │
└────────────────┬────────────────────────┘
│
┌────────┴────────┐
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Kaizen Node │ │ Solver │
│ (RPC/WS) │ │ (Quotes) │
└───────────────┘ └───────────────┘Key Components
| Component | Description |
|---|---|
Chart.tsx | Canvas-based price chart with box drawing |
ThesisPanel.tsx | Active/history thesis list |
BridgeModal.tsx | Deposit/withdraw interface |
SettingsModal.tsx | URL and theme configuration |
EnableConnectionModal.tsx | API wallet setup flow |
