Development
Altitude Wallet is built as a monorepo with packages for the extension, backend service, and blockchain utilities.
Monorepo Structure
packages/
├── extension/ # Browser extension (React + WXT)
├── backend/ # API service (Express.js)
├── blockchain-service/ # On-chain operations (Viem)
└── docs/ # Documentation (Docusaurus)
Package Management
The project uses pnpm for efficient package management and workspace linking.
Code Organization
The codebase follows Feature-Sliced Design (FSD) principles for scalable architecture:
- Entities — Core business entities (wallet, account, network)
- Features — User-facing functionality (send, swap, approve)
- Pages — Route-level components
- Shared — Reusable utilities and UI components
- Widgets — Complex composite components
Technology Stack
Extension
- React 19 with TypeScript
- MobX for state management
- Vanilla Extract for styling
- React Query for data fetching
- Viem for blockchain interactions
Backend
- Express.js with TypeScript
- Moralis SDK for Web3 data
- Axios for HTTP requests
- Swagger for API documentation
Blockchain Service
- Viem for EVM interactions
- Custom transport with fallback
- Type-safe contract ABIs
Getting Started
-
Install dependencies:
pnpm install -
Run extension in development:
pnpm --filter extension dev -
Start backend service:
pnpm --filter backend dev
API Documentation
The backend includes comprehensive OpenAPI/Swagger documentation available at /api-docs when running the server.