For dApps & ServicesLedger WalletContributing to Ledger WalletGetting started

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:

ScenarioStart here
Creating a new featureHow to Structure a Feature
Working in MVVM codeMVVM Pattern reference
Working in legacy codeFollow existing patterns, use MVVM for new components
Writing or fixing testsHow to Write Tests
Your first contributionRead the recommended path below
  1. Architecture Decisions — Understand why the codebase is structured the way it is
  2. Architecture reference — Learn the folder structure and import rules
  3. Do’s and Don’ts — Review the 9 rules before writing code
  4. Git Conventions — Branch naming and commit message format

How-to Guides

Step-by-step instructions for common contributor tasks.

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.

Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Stax, Ledger Flex, Ledger Nano, Ledger Nano S, Ledger OS, Ledger Wallet, [LEDGER] (logo), [L] (logo) are trademarks owned by Ledger SAS.