About Muun Wallet
Muun is a non-custodial 2-of-2 multisig wallet with a special focus on security and ease of use. This is the source code repository for Muun’s Android wallet, designed to give users full control over their Bitcoin and Lightning transactions.Quick Start
Get up and running with Muun Wallet development in minutes
Requirements
View runtime and build requirements for the wallet
Architecture
Understand the clean architecture pattern used in Muun
Security
Learn about our security practices and responsible disclosure
Architecture
Muun follows the clean architecture pattern with three distinct layers:Data Layer
Handles all data backends including:
- Database operations
- Operating system interactions
- Network communications
Domain Layer
Contains the core business logic:
- Domain models
- Use cases (clean architecture terminology)
- Transaction signing decisions
Common Module
There’s also a pure Java common module with code shared across all layers. Most key handling and transaction crafting operations happen in this module.Auditing
When auditing the Muun codebase, focus on these critical areas:- Key Operations: Most key handling and transaction crafting operations happen in the
commonmodule - Data Security: All keystore and data handling happens in the
datalayer - Business Logic: All signing decisions happen in the
domainlayer - Layer Isolation: The
presentationlayer only depends ondomain, neverdatadirectly
Responsible Disclosure
Send security-related bugs or vulnerabilities to: [email protected] You can encrypt your email using our public PGP key:Contributions
Muun is currently not accepting contributions in PR form due to team size and development workflow constraints. However, feedback and suggestions for improvements are always welcome.
- Bug reports and issue submissions
- Feature suggestions and feedback
- Security vulnerability reports
Language translation contributions cannot be accepted at this time.