Thanks for contributing! These guidelines apply to internal and external contributors, including agents. Please read fully before opening a pull request.
Important
For Ledger Wallet we are currently accepting bug fixes and invited contributions only. Feature PRs that do not align with our roadmap or long-term goals will be closed without extensive review.
- External contributors should fork the repository.
- Create your branch from
develop. - Follow the main README to get started.
- Follow additional setup instructions in the README files of the app or lib you are working on.
We use repo-wide conventions for branch names, commit messages, pull request titles and merge commits.
The canonical rules live in Git conventions.
Always prefer rebasing unless your branch contains merge commits from sub-features.
- Small, self-contained branches -> rebase on
develop. - Branches with cross-branch merges -> merge
developinto them to stay up to date.
Open your PR as a Draft and pass all automated checks before making it Ready for Review.
flowchart LR
S0[Create draft<br>pull request] --> S1[Pass all<br>automated checks]
S1 --> S2[Open pull request:<br>Ready for review]
S2 --> S3[Pass review<br>by code-owners]
Before marking your PR ready for review, ensure all of the following pass:
- lint, TypeScript — all linter and type checks must pass.
- unit tests, e2e — all tests must be green. See testing requirements.
- SonarQube — a green state is expected: meet the quality gate (expected test coverage, no unhandled code smells). See SonarQube Guide.
- Copilot — request a Copilot review, address or explicitly dismiss every comment, and resolve all threads.
- Click "Ready for review" to convert from Draft — this automatically requests the relevant code owners via
CODEOWNERS. - When a reviewer leaves feedback and you push a fix, re-request their review (GitHub "Re-request" button).
- If you receive a review request for files you don't own, feel free to remove yourself from the Reviewers panel.
Important
If you are a code owner, see REVIEWING.md for reviewer guidance, including your daily review queue.
We use changesets for versioning. Run:
pnpm changesetA changeset is required for any user-facing change or library API modification. See the wiki for the full guide.
We use Smartling for automated translations.
Only edit the English source files. Never commit files for other locales.
See the README files of Ledger Wallet Desktop and Ledger Wallet Mobile for the source file paths.
Tools and resources for building on Ledger are at the Ledger Developer Portal.

