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
Last updated on