Implement Ledger transaction signing - #942
Merged
Nanle-code merged 3 commits intoAug 31, 2026
Merged
Conversation
|
@Gojv-byte Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
@Gojv-byte is attempting to deploy a commit to the nanle-code's projects Team on Vercel. A member of the Team first needs to authorize it. |
…ransaction-signing
Collaborator
|
@Gojv-byte Please resolve the conflict |
…ransaction-signing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds end-to-end Ledger hardware wallet signing support to the dashboard’s transaction flow. It enables users to connect a Ledger device, reuse the active Ledger session, sign Stellar transaction XDR, and return a valid signed envelope for submission to the network.
What Changed
Added Ledger connection/session management with WebUSB/WebHID detection and Stellar app initialization
Implemented transaction signing for raw Stellar transaction objects and unsigned XDR envelopes
Validated network passphrase, derivation path, public key, and signature output before assembling the signed transaction
Added clear user-facing error handling for unsupported browsers, rejection, locked devices, and app state issues
Integrated the flow into the existing transaction signer UI and wallet state
Added test coverage for successful signing and rejection scenarios
Why
The app previously lacked a reliable Ledger signing path. This creates a gap for users who rely on hardware wallet security and prevents Ledger-based signing from being used in the transaction workflow.
Validation
Executed:
npx vitest run src/lib/wallet/tests/ledger.test.js
Result:
1 test file passed
3/3 tests passed
closes: #759
Impact
This closes the core Ledger signing gap in the wallet flow and gives users a secure, hardware-backed transaction signing path within the dashboard.