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. -
#18757
36200f9Thanks @deepyjr! - Fix zero-balance asset trend display -
#18701
dc8833dThanks @jiyuzhuang! - Fix Q2 Tour QA issues (base CTA button, no slide flash on close) and expose q2Tour in wallet40Attributes analytics -
#18603
669d2c3Thanks @YazhuEth! - feat(broadcast): add isTestnet and isSendMax to telemetryAdds two fields to the
broadcast_successandbroadcast_failureDatadog 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 -
#18478
636a4cbThanks @henri-ly! - Add withdraw flow for Monad EVM staking -
#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. -
#18762
267fb3fThanks @LucasWerey! - Animate the global search placeholder title: the top-bar search field now cycles its placeholder through "Search crypto / stablecoins / stock / addresses" with a parallel slide-out/slide-in transition. Cycling freezes while the search overlay is open, respectsprefers-reduced-motion, and is gated behind the asset-discoverability feature flag. -
#18718
553efbbThanks @claudiiafg! - Fix portfolio empty-state stock pill navigation to asset detail by passing ledger ids in router state. -
#18717
69170e6Thanks @mcayuelas-ledger! - Hide the legacy per-account/token star button on the account screen when Wallet 4.0 asset discoverability is enabled. The legacy star wrote to a separate store (starredAccountIds) that the W4.0 portfolio favourites (starredMarketCoins) never read, so favouriting a token there never showed in the portfolio. Users now favourite assets from the asset detail page, which correctly feeds the portfolio "Starred" banner. -
#18731
9aa69dbThanks @claudiiafg! - Fix Market list sorting bleeding across category tabs on desktop: reset sort to default when switching tabs, reset pagination when sort or filters change, and keep paginated market data ordered by page when combining results. -
#18819
b1f2b7aThanks @claudiiafg! - Fix Market Change column truncation when using 1M or 1Y time range filters -
#18768
cd6200bThanks @claudiiafg! - Track market favourite toggles with the samebutton_clickedanalytics event used on asset detail -
#18805
663e374Thanks @mcayuelas-ledger! - Fix the Market list "% change" sort (top gainers/losers) being stuck on the first page: the global, unfiltered gainers/losers request no longer sendstop=100, so the list now paginates through all coins like the market-cap and stocks lists. The Market Banner top performers are unaffected (they use the separategetMarketPerformersendpoint with its owntopcap). -
#18727
e1641f6Thanks @mcayuelas-ledger! - Revamp the Market List "no coins found" empty state (asset-discoverability flow) to match the Wallet 4.0 design: a centered Spot icon with a title and description, replacing the legacy illustration and "Go Back" button. -
#18602
6e977d1Thanks @mcayuelas-ledger! - Add analytics tracking for the Market page and global asset discoverability. Tracks search open/query/asset-clicked events from the global search overlay, sort and "see all" interactions, market banner ranking changes, and a dedicated discoverability TrackPage payload. Introduces a sharedmarketPageAnalyticsutil andscreenRefshelpers for resolving current/previous tracking page names. -
#18572
93a84fbThanks @hedi-edelbloute! - feat: add new evm chain -
#18618
491715aThanks @deepyjr! - Fix the portfolio Market Banner staying stuck on an empty "favorites" filter after the last starred coin is removed; it now reverts to the trending ranking -
#18714
033c501Thanks @vcluzeau-ledger! - Fix Recover webview top gap and make header buttons clickable on macOS by removing the legacy margin workaround and shortening the AppRegionDrag strip on/recoverroutes -
#18349
de9dbe3Thanks @Moustafa-Koterba! - fix(lwd): display available balance on new send flow header -
#18520
4ace552Thanks @gre-ledger! - Move the dummy fee-estimation recipient out of@ledgerhq/cryptoassets(abandonseed.ts, now deleted) into each coin family. Every account bridge now exposes a requiredgetEstimationRecipient(account)returning a valid recipient (or throwing for an unmapped currency, like the formergetAbandonSeedAddress), and the swap layer dispatches through it instead of the central address map. -
#18482
399cc8dThanks @mitchellv-ledger! - Add fallback routing to Ledger asset data for market deeplinks in LWD -
#18853
e369e66Thanks @henri-ly! - Allow passing an explicit device model to the Speculos DMK transport. The underlying transport cannot infer the emulated device and defaults to Stax, so the e2e setups now forward the real model (e.g. nanoX) when opening the transport. -
#18821
7ba0613Thanks @RobinVncnt! - fix: backup hub tracking, feature intro scrollview and copy -
#18694
1888882Thanks @dilaouid! - feat(lwdm): remove isEvmTransaction from the new send flow -
#18654
25101e2Thanks @deepyjr! - Display a 1D variation for held assets instead of "-": when an asset's 24h portfolio value change is unavailable (e.g. freshly-acquired positions whose 24h-ago balance was zero), fall back to the asset's 1D price change computed locally from countervalues, expressed in the user's counter-value currency. This applies uniformly to crypto, stablecoins and stocks, and is handled in the shared trend hooks so generic display components stay decoupled from any asset category. A flat price now renders a real 0% (instead of "-"), and the fallback stays neutral when a rate is missing. -
#18847
37eba10Thanks @semeano! - Rename the native TON cryptocurrency to Gram -
#18788
e620b15Thanks @LucasWerey! - feat(market-banner): back the "Trending" ranking with the countervalues/v3/currencies/trendingendpointThe market banner "Trending" filter (desktop and mobile) now fetches the dedicated trending
currencies list (hydrated via/v3/markets, preserving trending order and keeping only supported
entries) instead of reusing the gainers performers query. Adds agetTrendingPerformersendpoint
anduseTrendingPerformershook in live-common. -
#18750
4a6056cThanks @RobinVncnt! - feat: lwm backup hub tracking, red dot and copy update -
#18609
48644c1Thanks @mcayuelas-ledger! - Fix the Market Banner ranking select trigger styling by replacing the MediaButton with a styled trigger and a ChevronDown symbol -
#18549
cbc874eThanks @dilaouid! - feat(llc): effects contracts architecture for new send flow -
#18825
e441ffeThanks @ishaba! - fix: re-adding a previously onboarded canton account -
#18562
509b5fbThanks @Moustafa-Koterba! - fix info spacing in operation details -
#18621
8d4e409Thanks @mcayuelas-ledger! - Asset detail and aggreation e2e suits +
Add test ids to Wallet 4.0 asset detail components (address balances, PnL cards, favorite toggle, PnL dialog) to support asset aggregation/detail E2E coverage -
#18625
ab76877Thanks @semeano! - Add a "Transfer from" source selector (Public / Private) to the Zcash send Recipient step, behind the zcashShielded feature flag
Patch Changes
- Updated dependencies [
9c07ff0,d60474c,104d174,8a8b22f,c199be5,e636885,36200f9,dc8833d,669d2c3,7fcf623,7fcf623,2ffc0e8,7280849,dd0be79,0ffa53e,7165ad2,913f4a8,01cf3a8,862198f,30cfdb1,636a4cb,48dbd53,98eb6d6,0fe1b2d,88c89b0,ad68778,2bc1693,13aeeb6,1f41eee,0d7cf69,7817aff,64b8071,246bb7d,9bf46c3,1dff6fa,b8a0765,9aa69db,5da03e4,663e374,8688ac1,93a84fb,e32e372,798081d,1f11587,9dc9a1f,e93a936,b383bd5,ebda9d8,4ace552,e369e66,1888882,674af05,25101e2,37eba10,94923e3,e620b15,ca20506,cbc874e,e441ffe,51fb5a9,ab76877]:- @ledgerhq/live-common@36.3.0
- @ledgerhq/asset-detail@0.7.0
- @ledgerhq/asset-aggregation@0.9.0
- @ledgerhq/live-countervalues@0.21.0
- @ledgerhq/live-dmk-desktop@0.19.0
- @ledgerhq/live-dmk-shared@0.27.0
- @ledgerhq/live-dmk-speculos@0.10.0
- @shared/feature-flags@0.12.0
- @features/platform-feature-flags@0.5.0
- @ledgerhq/coin-bitcoin@0.45.0
- @ledgerhq/types-live@6.113.0
- @ledgerhq/coin-evm@4.4.0
- @ledgerhq/errors@6.37.0
- @ledgerhq/coin-cardano@0.28.0
- @ledgerhq/live-env@2.40.0
- @ledgerhq/client-ids@0.11.0
- @ledgerhq/coin-cosmos@0.37.0
- @ledgerhq/live-currency-format@0.11.0
- @ledgerhq/cryptoassets@13.53.0
- @ledgerhq/wallet-pnl@0.7.0
- @ledgerhq/live-countervalues-react@0.16.0
- @ledgerhq/devices@8.16.0
- @ledgerhq/coin-canton@0.27.0
- @ledgerhq/coin-casper@2.14.0
- @ledgerhq/coin-concordium@0.14.0
- @ledgerhq/coin-filecoin@1.26.0
- @ledgerhq/ledger-wallet-framework@2.2.1
- @ledgerhq/domain-service@1.8.8
- @ledgerhq/live-wallet@0.27.4
- @ledgerhq/ledger-key-ring-protocol@0.15.2
- @ledgerhq/hw-transport@6.35.5
- @ledgerhq/hw-transport-http@6.36.5
- @ledgerhq/hw-transport-vault@1.7.5
- @ledgerhq/live-network@2.6.6
- @ledgerhq/hw-ledger-key-ring-protocol@0.10.7