Hello everyone on another fine day :-)
Good news! The Stellar app is now available from the Ledger Store! Here's a quick tutorial to get you started.
Install the app on the Nano S using the Ledger Manager [1].
Open the Stellar App and go to Settings > Browser support to enable Browser support.
Using Chrome or Opera go to https://www.stellar.org/account-viewer/#!/
If you have the Stellar app open and browser support enabled you should be able to click the 'Sign in with Ledger' button. This will sign you in with your default Ledger-based account.
As this is a brand new account it and not yet funded, send some Lumens to the new address to activate the account and try it out.
When you make a payment or other operation on the Stellar network the device prompts you to confirm the transaction. In the case of a payment it will automatically loop through the following information: type of operation, qualified amount, destination address, memo, transaction fee, network (Test, Public, or Unknown). Press the buttons to confirm or cancel the transaction.
Some notes about wallet support.
At this early stage the only Stellar wallet that has support for the Ledger is the Stellar account viewer. But expect more wallets to add support soon. For instance I've sent in a patch for Stellarterm [2] that adds Ledger support. If it gets accepted you will be able store and send any Stellar-based token with the Ledger, add trust lines, and make trades on the decentralised exchange from your Ledger-based account directly using Stellarterm. The device will prompt you with details to confirm all those different operations. The developer of Stargazer is also adding Ledger support.
Note about some limitations.
The app can sign all the Stellar transaction types. However, for some types of transactions, details cannot be shown. Currently details are shown for the following operations: create account, payment, manager offer (create offer, change offer, delete offer), and change trust (add trust, remove trust). Also no details are available when signing transactions that contain more than one operation (Stellar allows for 100 operations per transaction).
Browser support.
Communication with the browser occurs over u2f. You need a u2f enabled browser to use web-based wallets with Ledger support. Currently only Chrome and Opera support u2f. Firefox v57 which will be out shortly also adds u2f support.
In the future when more wallets add support for Ledger and you want to use multiple wallets, you need to turn browser support on and off if you want to switch between a web-based wallet and a desktop wallet.
Multiple Ledger-based accounts.
When you open the Stellar account viewer you will see a checkbox with the label 'Use default account'. Many users will only need the default account but you actually have an almost infinite number of accounts at your disposal. Unchecking the checkbox will reveal an input field where you can enter the path to an alternative account. Valid values are of the form 44'/148'/n' where n is the account index. The default account is located at 44'/148'/0', your next account is 44'/148'/1', etc.
A note about security.
The Ledger is designed to be tamper-proof. Secret keys cannot leave the device. Transactions for your account can only be signed on the device. However, it has no control over what transactions it is sent. This is why it is important to check the details of the transaction on the device before approving it. Since not all Stellar transactions can be shown on the Nano, some advanced usages require that you trust the host that sent the transaction. For all other types of transactions the rule is that if you are not presented with the transaction details then it is probably wise not to approve it.
Acknowledgments
Although most of the work on this app was done by me I'd like to thank Bartek for his support with code reviews and improvement suggestions both for the app and the account-viewer. zcc was also very helpful for initiating the discussion on bip32 account paths. Ledger team has an amazing support channel that is very responsive and it's great that they put in the effort to accept code donations even during busy times.
- https://www.ledgerwallet.com/apps/manager
- https://stellarterm.com