Back to Freedom.Tech Back
All Ledger Live Desktop releasesAll versions
Release Mon, Jun 22, 2026 6 min read

Ledger Live Desktop 4.9.0

Bundle stack frames from the packaged asar are rewritten to https://app.asar/

4.9.0

Minor Changes

  • #18423 3fa1fca Thanks @mcayuelas-ledger! - Add a favorites ranking to the desktop Market Banner. The banner now switches between the trending performers list and the user's starred market coins, fetching favorites via useMarketData (availability filtering bypassed so starred coins always show) and disabling whichever query is inactive.
  • #18362 9fe00b7 Thanks @jiyuzhuang! - Add theme-specific awareness modal hero images, feature intro border, carousel navigation label, and related UI improvements
  • #18315 bfbd74d Thanks @shazzzam! - Display the correct fee currency for Celo CIP-64 transactions (fees paid in tokens such as USDT/USDC instead of native CELO). Adds a feeCurrencyAddress field to CeloOperationExtra, an eth_getTransactionByHash-based sync enrichment, and a skip option to useTokenByAddressInCurrency for conditional CAL lookups.
  • #18291 c0b15db Thanks @mcayuelas-ledger! - Add the Altcoin Season index card to the Market top cards section. The arc gauge used by the Fear & Greed indicator is extracted into a shared ArcGaugeIndicator component, and a shared MarketTopCardError component now renders a graceful error state for each top card instead of silently hiding it.
  • #17844 7a120cb Thanks @gre-ledger! - Adopt @datadog/electron-sdk to cover the Electron main process. Uncaught exceptions, unhandled rejections, and renderer crashes (render-process-gone) are now reported to Datadog, and dd-trace adds main-process resource/trace and renderer telemetry forwarding. Gated by the existing sentryLogs user opt-in; no new feature flag.

Bundle stack frames from the packaged asar are rewritten to https://app.asar/... before sending, so Datadog can match the uploaded source maps and unminify stack traces - both the renderer's file://.../app.asar/.webpack/... URLs and the main process's raw /.../app.asar/.webpack/... filesystem paths.

  • #18397 4fc3636 Thanks @mcayuelas-ledger! - Add Cryptos and Stablecoins suggestion sections to the global Search overlay. Both sections are sourced from DADA market data (shared single fetch, split in-memory by DADA stablecoin tickers), ranked by market cap and capped to a per-section limit, with loading skeletons and click-through to the asset detail / market list.
  • #18237 8d79393 Thanks @ysitbon! - Migrate @ledgerhq/live-common's internal feature-flag consumers off its React featureFlags Context module and @ledgerhq/types-live feature types, onto the Redux-backed @shared/feature-flags / @features/platform-feature-flags packages, and remove the featureFlags module along with the apps' now-inert FeatureFlagsContextBridge. Remaining external React consumers (both apps) are repointed to @features/platform-feature-flags; @ledgerhq/live-dmk-desktop receives its ldmkTransport flag via a prop instead of depending on the feature-flags package; non-React imperative reads use an injected getter or the relocated live-common/firebase/featureFlags reader. Adds the platform-specific formatToFirebaseFeatureId / formatDefaultFeatures to @features/platform-feature-flags and the generic isValidFeatureId to @shared/feature-flags. No behavioral change - resolved flag values are identical.
  • #18386 24d19cc Thanks @ysitbon! - Repoint the remaining @ledgerhq/types-live feature-type consumers (desktop app + desktop/mobile e2e) onto @shared/feature-flags, taking in-repo usage of the legacy types-live feature types to zero. Also drop now-dead feature-flag tooling config: the @ledgerhq/live-common/featureFlags/index unimported entry in live-dmk-desktop, and the deleted FeatureFlagsContextBridge eslint-guardrail exemptions in both apps (the block rules against re-introducing the deleted module are kept).
  • #18546 9c17db3 Thanks @mcayuelas-ledger! - Fix Global Search navigating to "asset not found" for assets without a market-provider entry (e.g. Canton). The search now forwards the full market currency (with its ledgerIds) as navigation state, so the Asset Detail screen can resolve such assets via the DADA fallback - matching the behaviour of the Market table rows and mobile.
  • #18428 67c3a67 Thanks @LucasWerey! - Add the Global Search default-sections data on mobile, fed by DADA. Cryptos (top 3) and stablecoins (top 2) render as market rows; stocks (top 10) as pills.

Share the DADA asset-discovery selection in @ledgerhq/live-common (selectTopStocks, selectTopAssetsByCategory, StockSuggestion) so desktop and mobile use one implementation; desktop's stocks section now consumes selectTopStocks instead of its own copy.

  • #18480 7626bfb Thanks @mcayuelas-ledger! - Gate the desktop market banner ranking behind the asset discoverability feature flag and default the ranking to gainers when the flag is off
  • #18450 89b52f5 Thanks @mcayuelas-ledger! - Add live asset search results to the top-bar search overlay. Typing a query (debounced, min 2 chars) fetches matching assets from DADA via useAssetSearchResultsViewModel and renders them as a flat list, with dedicated empty ("No asset found") and error ("Connection failed") states. The asset row gains a default density for the expanded results layout, and the clear button no longer toggles the overlay.
  • #18557 74c559f Thanks @deepyjr! - Fix: re-clicking the global search bar no longer closes the search overlay. Clicks inside the open search field are now prevented from toggling the Popover trigger, so the overlay stays open and the typed query is preserved.
  • #18449 db3bb7e Thanks @mcayuelas-ledger! - Migrate the search-overlay asset suggestions to the DADA assets endpoint (useAssetsData + useUsdToFiatRate) instead of useMarketData, exposing an isError state for cryptos/stablecoins and stocks. The Stocks section also moves from a CSS grid to an explicit two-row layout (shared splitIntoTwoRows helper) to keep the column-major scroll order.
  • #18312 621a175 Thanks @lysyi3m! - Surface insufficient fee-token balance on Celo Send Desktop as an explicit error banner.
  • #18488 b5b7fc5 Thanks @mcayuelas-ledger! - Add a "Stocks preset" generator to the developer mock-accounts tooling (dev-only tooling, no user-facing change). It fetches the top tokenized stocks from DADA (category=stocks) and injects them as sub-accounts grouped under their network.
  • #18548 7ad54da Thanks @claudiiafg! - Fix transaction history staying filtered by asset when opening Transactions from the top bar while already on a scoped history view
  • #18294 f4f4185 Thanks @LucasWerey! - LWD - W4.0 - Add the Market category switcher (All / Stocks / Favorites) on the V4 Market page, gated by the lwdWallet40.assetDiscoverability feature flag. The selected category is persisted across reloads and supersedes the legacy starred filter drawer when the flag is on. The shared category helpers (parseMarketListCategory, getMarketFilter, isStockMarketCurrency) now live in @ledgerhq/live-common/market/utils/category and are reused by both desktop and mobile.
  • #18307 59aa611 Thanks @LucasWerey! - LWD - W4.0 - Support a category param in the Market deeplink (e.g. ledgerwallet://market?category=stocks). When present, the category is pre-selected (setMarketCategory) before navigating to /market; unknown values fall back to all.