Contributing to Ledger Wallet
Welcome to the contributing guide for the Ledger Wallet (formerly Ledger Live) monorepo. This documentation covers the architecture, coding conventions, and testing practices for both Ledger Wallet Desktop (LWD) and Ledger Wallet Mobile (LWM).
⚠️
Migration in Progress: The codebase is actively migrating to a feature-first architecture. New features and refactored code should follow the guidelines described here.
Where to start
Depending on your task, follow the appropriate path:
| Scenario | Start here |
|---|---|
| Creating a new feature | How to Structure a Feature |
| Working in MVVM code | MVVM Pattern reference |
| Working in legacy code | Follow existing patterns, use MVVM for new components |
| Writing or fixing tests | How to Write Tests |
| Your first contribution | Read the recommended path below |
Recommended reading for new contributors
- Architecture Decisions — Understand why the codebase is structured the way it is
- Architecture reference — Learn the folder structure and import rules
- Do’s and Don’ts — Review the 9 rules before writing code
- Git Conventions — Branch naming and commit message format
How-to Guides
Step-by-step instructions for common contributor tasks.
- How to Structure a Feature — Create a new feature module or work within the existing architecture
- How to Write Tests — Write integration and unit tests, mock APIs, debug test failures
- How to Use the Custom Renderer — Render components and hooks with all providers in tests
Reference
Lookup tables, rules, and specifications to consult while working.
- Architecture — Folder structure, import rules, platform-specific file extensions
- MVVM Pattern — ViewModel pattern structure, implementation examples, when to use
- Do’s and Don’ts — 9 numbered rules for components and naming (use in code reviews)
- Testing — Testing tools, coverage targets, custom renderer API, query priority
- Git Conventions — Branch naming, commit message format, Gitmoji
Explanation
Background and rationale behind our architectural and testing decisions.
- Architecture Decisions — Why feature-first architecture, why MVVM, and the migration journey
- Testing Strategy — Testing principles and why we favor integration tests for UI