The most comprehensive enterprise-level multi-signature wallet for Polkadot ecosystem
π Website β’ π Documentation β’ π Report Bug β’ π‘ Request Feature
Mimir Wallet is a state-of-the-art Progressive Web Application (PWA) designed for enterprise-grade multi-signature wallet management in the Polkadot ecosystem. Built with modern web technologies and following best practices, it provides an intuitive interface for complex blockchain operations while maintaining the highest security standards.
- Enterprise-Ready: Production-grade multi-signature management with advanced security features
- Cross-Chain Support: Native support for Polkadot, Kusama, and all Substrate-based chains
- Progressive Web App: Installable app with offline capabilities and native-like experience
- Modern Architecture: Built with React 18, TypeScript 5.6, and Vite 6.3 for optimal performance
- Monorepo Structure: Scalable Turbo-powered architecture with modular packages
- Multi-Signature Management
- Flexible M-of-N signature schemes (2/3, 3/5, custom configurations)
- Hardware wallet integration (Ledger, Trezor)
- Role-based access control with granular permissions
- Secure transaction approval workflows
- Universal Substrate Support
- Native Polkadot and Kusama integration
- Support for 40+ substrate-based parachains
- Real-time chain state monitoring
- Chopsticks integration for transaction simulation
- Advanced Transaction Management
- Batch transaction processing for efficiency
- Real-time transaction status tracking
- Gas fee estimation and optimization
- Transaction scheduling and automation
- Comprehensive audit trails and history
- Modern Development Stack
- TypeScript-first development with strict type safety
- Comprehensive React hooks for blockchain interactions
- Modular component library with HeroUI v2
- Extensive testing coverage with Vitest and Cypress
- Intuitive Interface
- Responsive design optimized for all devices
- Dark/light theme support
- Accessibility-first component design
- Progressive Web App with offline capabilities
Ensure you have the following installed:
- Node.js >= 20.0.0 (Download)
- Yarn v4.7.0+ (Install via Corepack)
- Git (Download)
- Modern Browser (Chrome 61+, Firefox 60+, Safari 11+, Edge 18+)
-
Clone the repository
git clone https://github.com/mimir-labs/mimir-wallet.git cd mimir-wallet -
Enable Yarn and install dependencies
corepack enable yarn install -
Start development server
yarn dev
-
Open your browser
Navigate to http://localhost:5173
# Build all packages for production
yarn build
# Preview the production build locally
cd app && yarn previewThis project uses a Turbo-powered monorepo with the following structure:
mimir-wallet/
βββ app/ # Main wallet application
βββ packages/
β βββ polkadot-core/ # Blockchain integration layer
β βββ service/ # Service layer & data management
β βββ ui/ # Component library
β βββ dev/ # Development tools & configs
βββ turbo.json # Turbo configuration
βββ package.json # Root workspace configuration
app/ - The primary Mimir Wallet application
- Framework: React 18.3 + TypeScript 5.6 + Vite 6.3
- Features: PWA support, multi-chain wallet interface, responsive design
- Build Output: Optimized production build with code splitting
The foundational blockchain integration package
- Polkadot.js API v16.2.2 integration
- Multi-chain API management for Polkadot ecosystem
- Transaction processing with dry-run capabilities
- Chopsticks integration for fork simulation and testing
- React hooks for seamless blockchain state management
Service layer and data management
- Client-side service architecture with dependency injection
- React Query integration for efficient server state management
- Storage management (localStorage, sessionStorage, IndexedDB)
- WebSocket support for real-time blockchain updates
Hybrid React UI component library with modern architecture
- HeroUI v2 + ShadCN/UI hybrid component system for gradual migration
- Radix UI primitives for enhanced accessibility and customization
- Tailwind CSS v4.1 for utility-first styling with modern features
- Class Variance Authority (CVA) for type-safe component variants
- TypeScript-first design system with strict typing
- Specialized blockchain components (Address, Balance, etc.)
- Framer Motion animations for enhanced UX
Development tooling and shared configurations
- ESLint v9 configurations with modern rules
- TypeScript configurations for consistent builds
- Build tools and utilities for monorepo management
| Technology | Version | Purpose |
|---|---|---|
| React | 18.3 | UI framework with concurrent features |
| TypeScript | 5.6 | Type-safe development |
| Vite | 6.3 | Fast build tool and dev server |
| HeroUI + ShadCN/UI | v2 + Latest | Hybrid accessible component library |
| Tailwind CSS | 3.4 | Utility-first styling |
| Framer Motion | 12.12 | Smooth animations |
| Technology | Version | Purpose |
|---|---|---|
| Polkadot.js API | 16.2.2 | Substrate blockchain interaction |
| Chopsticks | 1.0.1 | Fork simulation for testing |
| WalletConnect | 2.15.1 | Cross-wallet compatibility |
| Technology | Version | Purpose |
|---|---|---|
| React Query | Latest | Server state management |
| Zustand | 5.0 | Client state management |
| React Router | 6.28 | Client-side routing |
| Socket.io Client | Latest | Real-time communication |
| Technology | Version | Purpose |
|---|---|---|
| Turbo | 2.4.4 | Monorepo build system |
| Yarn | 4.7.0 | Package management with PnP |
| ESLint | 9.21 | Code linting and formatting |
| Vitest | 3.1.4 | Unit testing framework |
| Cypress | 13.13 | End-to-end testing |
| Technology | Version | Purpose |
|---|---|---|
| Vite PWA | 1.0.0 | Progressive Web App features |
| Workbox | 7.1.0 | Service worker management |
| Chart.js | 4.4.9 | Data visualization |
# Development
yarn dev # Start all development servers
yarn build # Build all packages for production
yarn check-types # Run TypeScript checks across all packages
# Code Quality
yarn lint # Run ESLint across all packages
yarn commit # Create conventional commit (uses Commitizen)
# Package Management
yarn workspace <package-name> <command> # Run command in specific workspace# Navigate to app directory first: cd app/
yarn dev # Start app development server (Vite)
yarn build # Build app for production
yarn preview # Preview production build
yarn check-types # TypeScript type checking# Navigate to specific package: cd packages/<package-name>/
yarn dev # Start package in watch mode
yarn build # Build package
yarn check-types # Check TypeScript types# Unit Testing
yarn test # Run all unit tests
yarn test:watch # Run tests in watch mode
yarn test:coverage # Generate coverage report
# E2E Testing
cd app/
yarn cypress:open # Open Cypress test runner
yarn cypress:run # Run Cypress tests headlessly| Browser | Minimum Version | Features |
|---|---|---|
| Chrome | 61+ | Full PWA support, hardware wallets |
| Firefox | 60+ | Full functionality |
| Safari | 11+ | PWA support (limited) |
| Edge | 18+ | Full functionality |
| Opera | 48+ | Full functionality |
- Latest Chrome (recommended)
- Latest Firefox
- β Installable: Add to home screen on mobile/desktop
- β Offline Support: Basic functionality without internet
- β Background Sync: Transaction status updates
- β Push Notifications: Transaction confirmations (when supported)
- Flexible Thresholds: Support for any M-of-N configuration
- Member Management: Add/remove signatories with proper governance
- Transaction Approval: Streamlined approval workflow with status tracking
- Batch Operations: Execute multiple transactions efficiently
- Asset Management: View and manage assets across multiple chains
- Cross-Chain Transfers: XCM support for inter-parachain transfers
- Chain Switching: Seamless switching between supported networks
- Real-Time Updates: Live chain state and transaction monitoring
- Hardware Wallet Support: Ledger and Trezor integration
- Transaction Simulation: Preview transaction effects before execution
- Audit Trails: Comprehensive transaction history and logs
- Secure Storage: Client-side key management with encryption
We welcome contributions from the community! Here's how you can help:
-
Fork the repository
git clone https://github.com/<your-username>/mimir-wallet.git
-
Create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes
- Follow the existing code style and conventions
- Add tests for new functionality
- Update documentation as needed
-
Commit using Conventional Commits
yarn commit # Uses Commitizen for proper formatting -
Push and create a Pull Request
git push origin feature/amazing-feature
- TypeScript: Strict type checking enabled
- ESLint: Enforced code style and best practices
- Prettier: Automatic code formatting
- Conventional Commits: Standardized commit messages
- Testing: Unit tests required for new features
- π Bug Fixes: Help us identify and fix issues
- β¨ New Features: Propose and implement new wallet features
- π Documentation: Improve guides and API documentation
- π§ͺ Testing: Increase test coverage and add E2E tests
- π¨ UI/UX: Enhance user interface and experience
- π§ Performance: Optimize bundle size and runtime performance
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- π Website: mimir.global
- π Documentation: docs.mimir.global
- π± GitHub: mimir-labs/mimir-wallet
- π Issues: Bug Reports & Feature Requests
- π¬ Telegram: Join our community
- π¦ Twitter: @Mimir_global
- π¦ Releases: GitHub Releases
Made with β€οΈ by Mimir Labs
β Star us on GitHub if you find this project useful!
