DocumentationLedger LiveDiscoverIntegration walkthroughsLedger Services KitAppendixWorking with Ledger Live

Working with Ledger Live

This page documents how to link the local packages of the wallet-api monorepo in order to work with Ledger Live locally (or any other application using the Wallet-API) without having to deploy a new version to the npm registry.

In the Wallet-API folder

First you want to start the dev server to have every packages built and ready to be used by the application but also to have the watcher in place whenever we make changes in the Wallet-API.

pnpm dev

In the Ledger Live monorepo

ℹ️

Tip: Search for all places to modify with "@ledgerhq/wallet-api

Step 1

Update all package.json file containing a wallet-api lib with the following version:
"@ledgerhq/wallet-api-<LIB>": "link:PATH_TO_WALLET_API/wallet-api/packages/<LIB>",

For example with the client lib:
"@ledgerhq/wallet-api-client": "link:/Users/dave/Documents/Projects/wallet-api/packages/client"

Step 2

When you are done updating all package.json files, you can run pnpm i to update the dependencies with the local ones.

Step 3

Then you can start developping as usual with pmpm dev:lld and any modification in the wallet-api sources will be reflected automatically.

Step 4 (Optional)

You might also want to run pnpm watch:common to keep it up to date, as we have a lot of code shared in the common folder.

⚠️

Don’t forget to revert the changes in package.json and pnpm-lock.yaml before committing

Troubleshooting

LLD doesn’t start properly and/or stay on the logo screen

In this case you might need to update the vite config for LLD.

The file to update is located at apps/ledger-live-desktop/tools/utils/index.js
Then you want to add the packages (like "@ledgerhq/errors") in optimizeDeps.exclude.

And you might need to rm -rf apps/ledger-live-desktop/node_modules/.vite in order to cleanup the pre-bundled deps from vite. (more infos)

Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Nano S, Ledger Vault, Ledger OS are registered trademarks of Ledger SAS