Original release notes
4.10.0
Minor Changes
- #18707
64cb6e7Thanks @mcayuelas-ledger! - Add truncated text to asset names in the Analytics Asset Allocation table, matching the Assets section behavior (ellipsis with a tooltip showing the full name on hover)
- #18943
d60474cThanks @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
- #18763
6202c1eThanks @mcayuelas-ledger! - Asset Detail: the "Add" account action now lets you choose the network for multi-network assets (e.g. Ethereum, Base, Arbitrum, Optimism), matching the mobile behavior, instead of defaulting to the canonical network.
- #18641
104d174Thanks @claudiiafg! - Fix Asset Detail favourites for tokens opened from Market or Assets by resolving market data via the /v3/marketsledgerIdsfilter while keeping backward compatibility with the legacyidsfilter.
- #18590
c199be5Thanks @mcayuelas-ledger! - Gate swap/buy CTAs on the asset detail page by availability: hide the swap sidebar (right panel) when swap is unavailable, hide the Buy action when the asset is not buyable, hide all actions/banner/sidebar for unsupported currencies, and show a fallback banner under the market data section when neither Buy nor Swap is available.
- #18977
f832e06Thanks @Valentin-Ledger! - AddborrowFeatureanalytics property derived from theptxBorrowLiveAppfeature flag, included in identify traits and track events on both desktop and mobile.
- #18701
dc8833dThanks @jiyuzhuang! - Fix Q2 Tour QA issues (base CTA button, no slide flash on close) and expose q2Tour in wallet40Attributes analytics
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 fromtransaction.useAllAmount
Existing fields are left unchanged.
- #18643
943b42dThanks @mcayuelas-ledger! - fix analytics for new Market
- #18773
2ffc0e8Thanks @deepyjr! - Fix desktop market countervalue fallback and formatting for unsupported fiats and crypto units.
- #18620
dd0be79Thanks @jiyuzhuang! - Add Q2 Tour on Portfolio with theme-aware slide images, Figma copy, persisted hasSeen state, and lwdWallet40 q2Tour flag
- #18612
0ffa53eThanks @claudiiafg! - Fix asset detail chart transaction marker clustering with per-timeframe spacing (wider gaps on 5y/all) via shared@ledgerhq/asset-detailutils.
- #18685
8faad36Thanks @jiyuzhuang! - Update Q2 Tour aggregated balance slide copy to reference USDT instead of USDC
- #18809
f857030Thanks @mitchellv-ledger! - Remove variant B analytics opt in from lwd
- #18741
913f4a8Thanks @qperrot! - Fix: handle the "RBF requires an additional sats fee" error and show it in the frontend
- #18976
0b9f1dfThanks @gre-ledger! - Revert the@datadog/electron-sdkmain-process integration (#17844) due to boot-time issues. The Electron main process no longer initializes Datadog/dd-trace; renderer Datadog reporting is unchanged. The asar source-map URL rewrite in the rendererbeforeSendis kept.
- #18767
01cf3a8Thanks @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 sharedisMoodIndexAvailablehelper and hides the Mood index card/tile from the Market screen and the Market banner when the region is "GB".
- #18550
30cfdb1Thanks @ooke-ledger! - Add swapEntryPoint tracking field and ptxSwapLiveAppOnAsset feature flag
- #18585
a489eb9Thanks @mitchellv-ledger! - Resume Add Account flow after device-connection onboarding
- #18552
0fe1b2dThanks @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.
- #18848
88c89b0Thanks @dilaouid! - fix(lwdm): new send flow fix no more unit hardcoding for btc fees
- #18842
ee21b98Thanks @OlivierFreyssinet! - Add desktop InfoState component with dialog gradient support
- #18776
b7a676dThanks @RobinVncnt! - fix: lwm top wallet cards spacing, lwd bottom cards radius
- #18743
e963396Thanks @claudiiafg! - Rename the global search crypto category label from "Cryptos" to "Crypto" on mobile and desktop.
- #18703
46b01e2Thanks @mcayuelas-ledger! - Extract a reusableHorizontalScrollcomponent (with hover chevrons and edge gradient) and reuse it across the Market banner, Stocks section, and Search overlay carousels
- #18770
7817affThanks @gre-ledger! - Fix desktop userId migration so returning users keep their identity after upgrade. Whenapp.identitieswas created by the deviceId rollout (deviceIds only, no userId), boot now recovers the legacy userId fromapp.user/localStorage instead of generating a new one, which had made returning users appear as new in Segment and Braze.shouldUsePersistedIdis now exported from@ledgerhq/client-ids/store.
- #18610
9bf46c3Thanks @mcayuelas-ledger! - Fix: LWD PnL detail modal now prefixes positive values with+(and negatives with-), matching Ledger Live Mobile.formatPricegains an optionalalwaysShowSignoption that is forwarded toformatCurrencyUnit.
- #18566
133a45fThanks @deepyjr! - Fix: the Portfolio Stocks "Explore" section now keeps its pills tightly packed on two horizontally scrollable rows at any window width (and shows more stocks to fill the row), instead of staying packed to the left with gaps on several rows. The layout now matches the global search overlay's compact two-row carousel.
- #18580
1d0d073Thanks @deepyjr! - Cap the top-bar global search results to 5 visible crypto rows in a fixed-height, scrollable list. Results now load progressively as the user scrolls (infinite scroll) via DADA cursor pagination instead of being hard-capped at 10, so the popover no longer grows to fit every result.
- #18665
1dff6faThanks @LucasWerey! - Share the Asset Detail trade-availability gating between mobile and desktop. ExtracteduseTradeAvailabilityand 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.
- #18558
17728cbThanks @deepyjr! - Fix the global asset search default list flickering when clicking outside the search bar
- #18607
03438b1Thanks @deepyjr! - Fix: searching from the global search overlay while already on an asset or market detail page now replaces the current history entry instead of pushing a new one. A single Back press returns to the page visited before the first search, so repeated searches no longer stack up in the navigation history.
- #18512
58bee3cThanks @mdomanski-ext-ledger! - feat: support for Aleo token accounts in LWD
- #18635
57bc639Thanks @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 LumenLineChartloading/emptyLabelprops 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.

