Back to Freedom.Tech Back
All Ledger Live Mobile releasesAll versions
Release Tue, Jun 30, 2026 5 min read

Ledger Live Mobile 4.10.0

Original release notes

4.10.0

Minor Changes

  • #18943 d60474c Thanks @francois-guerin-ledger! - fix(llc): use Arc native USDC's ERC20 token CAL descriptor for the exchange config, so the device shows the correct (6-decimal) swap amount
  • #18641 104d174 Thanks @claudiiafg! - Fix Asset Detail favourites for tokens opened from Market or Assets by resolving market data via the /v3/markets ledgerIds filter while keeping backward compatibility with the legacy ids filter.
  • #18363 26be121 Thanks @sarneijim! - Add Ledger Recover Backup Hub feature intro bottom-sheet with backup-hub deeplink
  • #18614 e636885 Thanks @Valentin-Ledger! - Add a custom.bottomSheet.error wallet-api method for the mobile Borrow Live App. The embedded webview can now open an error-toned bottom sheet that resolves with { confirmed: true } when the CTA is pressed and { confirmed: false } when the sheet is closed or dragged down, mirroring the custom.dialog.confirmation contract.

Shared param validation lives in @ledgerhq/live-common/wallet-api/Borrow/errorBottomSheetParams. On mobile the sheet is driven by a Redux Toolkit slice (borrow.errorBottomSheet) and a module-level resolver store, and its UI is rendered via the shared InfoState component with preset="error", which both tints the parent QueuedDrawerBottomSheet with the error gradient (via useBottomSheetBackgroundTone) and renders the icon, title, description and CTA.

The legacy vanilla-redux borrow reducer (actions/borrow.ts, BorrowActionTypes) has been migrated to createSlice; the slice now exports setInfoBottomSheet and setErrorBottomSheet actions directly.

  • #18977 f832e06 Thanks @Valentin-Ledger! - Add borrowFeature analytics property derived from the ptxBorrowLiveApp feature flag, included in identify traits and track events on both desktop and mobile.
  • #18832 52a9ddb Thanks @LucasWerey! - Add the bottom fade gradient (same as the transactions history) at the bottom of the Assets, Stablecoins and Stocks lists so content fades out at the bottom of the screen
  • #18586 6304f4f Thanks @tonykhaov! - Fix missing displayedPosition on Wallet Braze carousel content card analytics (impression, click, dismiss)
  • #18774 ca99ba2 Thanks @deepyjr! - Fix mobile market countervalue fallback and formatting for unsupported fiats and crypto units.

Adds two fields to the broadcast_success and broadcast_failure Datadog events, on both success and failure paths:

  • isTestnet: derived from the currency model (isTestnetFor)
  • isSendMax: derived from transaction.useAllAmount

Existing fields are left unchanged.

  • #18612 0ffa53e Thanks @claudiiafg! - Fix asset detail chart transaction marker clustering with per-timeframe spacing (wider gaps on 5y/all) via shared @ledgerhq/asset-detail utils.
  • #18741 913f4a8 Thanks @qperrot! - Fix: handle the "RBF requires an additional sats fee" error and show it in the frontend
  • #18771 9a5d4d5 Thanks @OlivierFreyssinet! - Track Device Intent Executor drawer close clicks only from explicit header close and backdrop press interactions
  • #18767 01cf3a8 Thanks @LucasWerey! - Disable the Mood index (Fear & Greed) for users in the UK on both mobile and desktop, based on the device region (same mechanism as the Earn APY). Adds a shared isMoodIndexAvailable helper and hides the Mood index card/tile from the Market screen and the Market banner when the region is "GB".
  • #18744 1bc567c Thanks @beths-ledger! - Ensure navigation header is set correctly when navigating between earn simulator and earn deposit flows via deeplinks.
  • #18552 0fe1b2d Thanks @claudiiafg! - Fix desktop asset detail all-time price variation to derive from chart endpoints instead of the 1y market change, and correct the 6m range mapping. Extract shared market chart and variation helpers to live-common for desktop and mobile.
  • #18807 5363ac7 Thanks @ishaba! - fix(lwm): polyfill structuredClone for Hermes to fix SUI send crash
  • #18743 e963396 Thanks @claudiiafg! - Rename the global search crypto category label from "Cryptos" to "Crypto" on mobile and desktop.
  • #18683 5ec842b Thanks @LucasWerey! - Fix the Market screen "Total market cap" highlight card overflowing in locales with longer compact-number suffixes (e.g. French "billions"). The value now shrinks to fit the card width while the trend indicator keeps its size.
  • #18665 1dff6fa Thanks @LucasWerey! - Share the Asset Detail trade-availability gating between mobile and desktop. Extracted useTradeAvailability and the ramp ledger-id resolution helpers (resolveRampLedgerIds, ledgerIdsFromLedgerCurrency, isAvailableOnBuy, isAvailableOnSwap) into @ledgerhq/asset-detail, and refactored desktop to consume them. Mobile now gates the Asset Detail CTAs (Buy/Swap/Receive) on the same logic: a currency that is not supported by the build or deactivated by a feature flag exposes no transfer actions (footer and in-page), while supported assets without buy/swap show the existing "Swap and Buy are not supported for this asset." banner.
  • #18645 6dc80fa Thanks @LucasWerey! - Update asset discovery analytics on mobile: add source (previous page) to the Global Search asset_clicked event, enrich the Page Market event with sortVolume/sortMarketCap/sortChange/timeframe/category, add the selected category to the market asset button_clicked event, and reshape sort_market_list to report each sort column independently.
  • #18635 57bc639 Thanks @LucasWerey! - Bump Lumen (design-core 0.1.17 / ui-react 0.1.41 / ui-react-visualization 0.1.20 / ui-rnative 0.1.42 / ui-rnative-visualization 0.1.19) and adapt the asset-detail price chart to its new four-state rendering. The chart now drives its loading and empty states through the Lumen LineChart loading/emptyLabel props instead of bespoke skeleton/error components, derives loading from the chart query's fetching state so changing the timeframe shows a loading state (not "No data"), and keeps the previous timeframe's line while the next one loads - scoped to the current asset so switching to an asset with no data shows the empty state rather than the previous asset's graph.