Skip to Content
📢 Breaking change: Applications using LedgerJS for transport implementation should migrate to the Device Management Kit (DMK). Learn more.
DocumentationLedger Wallet ProviderMigration guide

Migration guide — 1.x.x → 2.0.0

This page covers the breaking changes introduced in 2.0.0 and explains how to update your integration from 1.x.x.

2.0.0 is not yet released. This guide documents the planned breaking changes so you can prepare your integration in advance.

What changed

You must now declare which blockchains you support

In v1, the EVM provider was registered automatically when initializeLedgerProvider was called. Starting from 2.0.0, the SDK ships no chain by default: you pass one factory per blockchain family you want to handle, and at least one is mandatory.

In v2, the SDK ships no chain by default: you declare the blockchain families you want to handle by passing one factory per family to initializeLedgerProvider. The choice is yours: initialize the LedgerProvider with one or several family packages, for each blockchain you support. The SDK registers only the families that you opted for if they are enabled in your partner configuration. Before (1.x.x and earlier)

// EVM provider was registered automatically — no factory needed import { initializeLedgerProvider } from "@ledgerhq/ledger-wallet-provider"; initializeLedgerProvider({ dAppIdentifier: "my-dapp", apiKey: "your-api-key", });

After (2.0.0)

import { initializeLedgerProvider } from "@ledgerhq/ledger-wallet-provider"; import { evmBlockchainProviderFactory } from "@ledgerhq/ledger-wallet-provider-evm"; initializeLedgerProvider({ dAppIdentifier: "my-dapp", apiKey: "your-api-key", blockchainProviderFactories: [evmBlockchainProviderFactory], });

Why: The blockchainProviderFactories pattern enables multi-chain support (EVM + Solana) from the same call and lets bundlers tree-shake blockchain packages you do not use. Each family package exports its own registration, so the family identifier travels with the package instead of being retyped at every call site.


Step-by-step migration

Install the EVM package

If you do not already have it:

npm install @ledgerhq/ledger-wallet-provider-evm

Initialize the LedgerProvider with evmBlockchainProviderFactory

Update your initializeLedgerProvider call to include the EVM registration:

import { evmBlockchainProviderFactory } from "@ledgerhq/ledger-wallet-provider-evm"; initializeLedgerProvider({ // ...existing options... blockchainProviderFactories: [evmBlockchainProviderFactory], });

Register any other families you support

Solana (available in upcoming v2.0.0) is passed the same way as EVM. Add it as well if your dApp supports Solana:

npm install @ledgerhq/ledger-wallet-provider-solana
import { solanaBlockchainProviderFactory } from "@ledgerhq/ledger-wallet-provider-solana"; initializeLedgerProvider({ // ... blockchainProviderFactories: [ evmBlockchainProviderFactory, solanaBlockchainProviderFactory, ], });

See the v2 get started guide for the full walkthrough.

See also

  • Get started — v1 — v1 integration guide, EVM built into the main package
  • Get started — v2 — v2 integration guide, declare the families you support
  • Configuration — full options reference with Required / Optional / Deprecated badges
  • EVM — EIP-6963 discovery and EIP-1193 signing
  • Solana — Wallet Standard connect and signing
Last updated on
Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Stax, Ledger Flex, Ledger Nano, Ledger Nano S, Ledger OS, Ledger Wallet, [LEDGER] (logo), [L] (logo) are trademarks owned by Ledger SAS.