Skip to main content

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

  1. Install dependencies:

    pnpm install
  2. Run extension in development:

    pnpm --filter extension dev
  3. Start backend service:

    pnpm --filter backend dev

API Documentation

The backend includes comprehensive OpenAPI/Swagger documentation available at /api-docs when running the server.