Easy Ledger Wallet support for Stellar applications and command line.
This library is a convenient wrapper around the official Ledger libraries for Stellar:
It provides a way to support Ledger Wallets with a few one-liners:
// Step 1: Connect await ledgerWallet.connect() // Step 2: Get public key const pubkey = ledgerWallet.publicKey // Step 3: Sign transaction await ledgerWallet.sign(transaction) // Extra: Event handlers ledgerWallet.onConnect = connectionHandler ledgerWallet.onDisconnect = disconnectionHandler
This library is compatible with both Node.js and browser environments.
npm install @cosmic-plus/ledger-wallet
yarn add @cosmic-plus/ledger-wallet
In your script:
const ledgerWallet = require("@cosmic-plus/ledger-wallet")
bower install cosmic-plus-ledger-wallet
In your HTML page:
In your HTML page:
Note: For production release it is advised to serve your copy of the library.
Waits for a connection with the Ledger Wallet application for Stellar. If
account is not provided, account 0 is used. The library will stop
listening for a connection if
await ledgerWallet.disconnect() is called.
Once the connection is established, you can use
await ledgerWallet.connect() again at any time to ensure the device is still
When switching to another account, you can
await ledgerWallet.connect(new_account) without prior disconnection.
Note: Account numbering starts at 0 to remain compatible with previous releases of this library. This will change with the next major release to be consistent with the Ledger application which starts at account 1.
||Either an account number (starts at 0) or a derivation path (e.g:
Prompts the user to accept transaction using the connected account of their Ledger Wallet.
If the user accepts, adds the signature to transaction. Else, throws an error.
||A StellarSdk Transaction|
Close the connection with the Ledger device, or stop waiting for one in case a connection has not been established yet.
Function to execute on each connection.
Function to execute on each disconnection.
Public key of the connected account.
Derivation path of the connected account (default:
Version of the Stellar application installed on the connected device.
Whether or not the user accepts to sign transactions without checking them on the device first. This allows to sign long transactions (10+ ops) that could normally not be handled by the device memory, but this is insecure.
The Ledger Transport instance. (internal component)
The Ledger Stellar application instance. (internal component)