github LedgerHQ/ledger-live live-mobile@4.8.0

18 hours ago

4.8.0

Minor Changes

  • #18144 efa2686 Thanks @deepyjr! - Add altcoin season index market card on mobile

  • #17999 ffdc9ea Thanks @LucasWerey! - Adapt the Asset Detail balance graph skeleton to match the Figma design, preventing the screen from jumping when market data finishes loading.

  • #17978 b4f9fa8 Thanks @LucasWerey! - Asset Detail: make the available balance card fully pressable to open its tooltip, instead of only the small info icon.

  • #18026 cf0239d Thanks @mcayuelas-ledger! - Improve asset detail graph scrubbing: show the scrubbed date and price in the market header while dragging, hide the floating tooltip, and keep the chart subtree stable for smoother gestures

  • #18087 2c51ffb Thanks @deepyjr! - Show an infinite symbol (∞) instead of a dash for the Asset Detail max supply when a coin is uncapped but has market data

  • #18173 6095ec9 Thanks @claudiiafg! - Fix Asset Detail mobile timeframe options to expose only 1D, 1W, 1M, 1Y, and ALL.

  • #18130 774fef1 Thanks @deepyjr! - Show empty (zero-balance) accounts in the Asset Detail accounts/addresses section

  • #17784 4170470 Thanks @Valentin-Ledger! - Add go-to-swap action to the Borrow live app custom.navigate wallet API handler so the embedded webview can deep-link users into the Swap flow with prefilled currency, token, account, amount and affiliate parameters. Unify the desktop handler naming with mobile (custom.borrow.navigatecustom.navigate), share the handler implementation across apps via a new @ledgerhq/live-common/wallet-api/Borrow/navigate module, and drop the redundant desktop PageHeader now that navigation is driven from the webview.

  • #18097 9353c7d Thanks @deepyjr! - Fix Buy close navigation from Asset Detail

  • #18027 c606898 Thanks @tonykhaov! - Add notification drawer prompt target contracts

  • #17907 9901502 Thanks @deepyjr! - Add assetDiscoverability param to lwmWallet40 and expose shouldDisplayAssetDiscoverability in usePortfolioViewModel and MainAppLayout

  • #18086 538f011 Thanks @deepyjr! - Improve mobile asset detail balance sizing.

  • #18075 422c258 Thanks @claudiiafg! - Update Mood Index fear/greed scale labels (Fear+, Fear, Neutral, Greed, Greed+) with CMC disclaimer in the desktop dialog, and refine Asset Detail price performance copy.

  • #17940 2f90a10 Thanks @dilaouid! - fix(lwm): apply bottom safe area on Cardano delegation flows

  • #18239 cb3d141 Thanks @LucasWerey! - Align asset chart point granularity per date range with the product spec (LIVE-31777). Adds a shared per-range resampler in live-common and wires it into both apps: desktop targets finer intervals (e.g. 1D 5min, 1M 2h, All 7d) while mobile uses coarser ones (e.g. 1D 10min, 1M 6h, All 1mo) for render performance. The resampler only coarsens, so ranges where the API serves coarser data than requested (desktop 6M) gracefully fall back to the available resolution.

  • #18113 ef3789f Thanks @mitchellv-ledger! - Update snap points for tour drawers

  • #18000 bb1ce17 Thanks @OlivierFreyssinet! - Add Connect App phase (Layer B) Device UX V2 analytics: a Connect App - * page event per EnsureAppReady state (with a 250ms dwell gate on loading) and button_clicked with canonical values, all carrying sourceFlow, source, deviceUxV2 and modelId.

  • #18012 d149f27 Thanks @mdomanski-ext-ledger! - feat: add hedera_testnet

  • #17813 8d78462 Thanks @qperrot! - Fix: warn user that delegation will fail if their Sei account has not yet been linked on-chain (no prior outbound transaction)

  • #17944 9c6c20d Thanks @brit-ledger! - added missing reference to MoonPay Trade explorer link on LWM

  • #18162 94bd9a9 Thanks @OlivierFreyssinet! - Add missing Device Intent Executor button tracking events.

  • #18233 5a82c90 Thanks @OlivierFreyssinet! - Add Device Intent Executor bottom sheet header overrides on mobile.

  • #17901 fd81ba0 Thanks @lysyi3m! - Implements the Celo fee currency selection plugin across mobile and desktop. Users can now select a fee currency (CELO or supported tokens) to pay transaction fees. Updates include UI integration, gas estimation adjustments, and descriptor enhancements for Celo transactions.

  • #18090 14c87ea Thanks @amaslakov! - Earning-choice modal on Tezos LWM: tap "Stake" now routes via the shared getTezosEarnFlow helper to NoFunds / EarnRewards (delegate or stake) / DelegationStarted / DelegationSummary depending on funds, delegation state and the llmTezosStaking flag. Helper hoisted to live-common.

  • #18174 7584ec2 Thanks @ysitbon! - Pass the current app language to the feature-flags middleware (getAppLanguage selector in configureStore) so it can apply language filtering during resolution, making language-gated remote flags (languages_whitelisted / languages_blacklisted) resolve correctly.

  • #18152 c49b7a5 Thanks @LucasWerey! - Fix Asset Detail graph showing all-time high/low values that differed from the market stats table. On the "All" range, the graph's min/max markers are now anchored to the market all-time high/low, so both surfaces stay consistent.

  • #18175 c32dafe Thanks @claudiiafg! - Fix asset detail market price hover date formatting by range to match spec without changing chart axis formatting.

  • #17952 2694121 Thanks @LucasWerey! - Fix incorrect analytics on the Asset Detail screen to match the tracking plan: the address button now reports Account, the favourite/hide toggles report favourite/hide_asset, the market-stat info bubble fires a button_clicked (market_stat_definition) event with tracking added on the available-balance bubble, and the Transactions header reports Transactions.

  • #17947 1df71ed Thanks @LucasWerey! - Fix earn banner card to be fully interactive instead of icon-only

  • #18109 ef35323 Thanks @claudiiafg! - Exclude hidden-from-portfolio assets from the global wallet balance and portfolio graph on desktop and mobile

  • #17956 4f55522 Thanks @LucasWerey! - Fix transaction-history analytics: the top-bar transaction-history icon now emits a button_clicked event with button: "operation_list", and the Page OperationList screen event now reports the missing has_pending_operations property. For consistency, all top-bar entries (My Ledger, My Wallet, Discover, Notifications, Settings, transaction history) now emit button_clicked instead of menuentry_clicked.

  • #18217 7661060 Thanks @mitchellv-ledger! - Migrate TwoStepSyncOnboardingCompanion to mvvm in lwm

  • #18198 48e2aa9 Thanks @dilaouid! - feat(lwm): bottomsheet steps for the new send flow

  • #18096 ebb0d91 Thanks @deepyjr! - Fix Asset Detail market stat tooltip definitions on Android

  • #18197 7d0a074 Thanks @deepyjr! - Add W4 Market asset search with one-character API filtering

  • #17926 d30362b Thanks @tonykhaov! - Add prompt layout support for generic awareness modals

  • #18046 473d990 Thanks @OlivierFreyssinet! - Add generic Device UX V2 error page tracking and surface disconnected device data from the device intent executor.

  • #18236 3417f25 Thanks @deepyjr! - Add mobile market category deeplink handling

  • #18281 9b92503 Thanks @dilaouid! - feat(lwm): send flow layout lwm display account name and avalaible balance

  • #17872 9f2ffed Thanks @mitchellv-ledger! - migrate lwm SeedCompanionStep to mvvm

  • #17973 cb1adf8 Thanks @gre-ledger! - Fix duplicate transaction broadcast in the send flow. The broadcast was triggered from a render prop, so any re-render of the device action result state re-submitted the same signed transaction (e.g. Hedera DUPLICATE_TRANSACTION). The broadcast now fires only once per device-action result.

  • #17937 1d43b92 Thanks @dilaouid! - fix(lwm): apply bottom safe area on Cosmos delegation flow

  • #18138 89a4da3 Thanks @jiyuzhuang! - Add prompt logic for tx alerts

  • #18077 7c145a8 Thanks @dilaouid! - feat(lwm): align evm validator selection and e2e stability

  • #17779 43f1f63 Thanks @dilaouid! - feat(lwm): update to lumen-ui-rnative 0.1.37 and fix breaking changes

  • #17931 230581f Thanks @mcayuelas-ledger! - Replace the Asset Detail BalanceGraph SVG placeholder with a real Lumen LineChart. Adds a 1D / 1W / 1M / 1Y range selector whose change drives the chart line color (success / error / muted), and extracts a reusable LineChart component (chart plot + segmented control) under mvvm/components/.

  • #18247 411d82d Thanks @sarneijim! - Fix Android crash on revamped analytics opt-in Lottie animation completion

  • #18142 c004237 Thanks @deepyjr! - Add expanded mood index market card on mobile

  • #18188 9164970 Thanks @LucasWerey! - Bump Lumen design-system packages: lumen-design-core 0.1.16, lumen-ui-react 0.1.37, lumen-ui-rnative 0.1.38, lumen-ui-react-visualization 0.1.16, lumen-ui-rnative-visualization 0.1.15, and crypto-icons 2.0.4.

    Migrations required by the breaking changes in the range:

    • Menu (Radix UI → Base UI, react 0.1.36): migrated MenuTrigger asChildrender={...} and MenuItem onSelectonClick (Base UI fires onClick, not onSelect) in the AssetDetail options/chart menus and the Send network-fees / fee-asset selectors.
    • NavBar (react 0.1.36): renamed NavBarCoinCapsule's icon prop to leadingContent on the desktop asset header.
    • DotIndicator (rnative/react): size scale was renamed and rescaled. Remapped consumers to preserve the rendered size (xslg, default→xl) on the desktop unread indicators and mobile top-bar unread indicator.
    • Select removal (rnative 0.1.38): removed the now-deleted GlobalSelectBottomSheet from the mobile providers (no Select consumers remained).
  • #18204 d649cf3 Thanks @RobinVncnt! - Add lwmBackupHub / lwdBackupHub Engagement feature flags (default disabled) for the Recover Backup Hub initiative, and reserve CODEOWNERS ownership of the upcoming BackupHub MVVM folders.

  • #18145 06ba394 Thanks @deepyjr! - Open the Modular Drawer from the Asset Detail "Add account" button so multi-network assets (e.g. USDT, ETH) show a network-selection step, while single-network assets (e.g. BTC) go straight to the device flow

  • #18023 7a523df Thanks @LucasWerey! - Update Asset detail and Mood index copy: refresh market stats labels and add the CoinGecko disclaimer, rename the addresses list to "Accounts", update the PnL detail drawer wording, refresh the Mood index scale labels (Fear+/Fear/Neutral/Greed/Greed+) and add the CoinMarketCap disclaimer, with minor spacing fixes.

  • #18167 83dcf4a Thanks @LucasWerey! - Add a chart options menu on the asset detail price chart letting users hide/show transaction (activity) markers. A new settings icon next to the range selector opens a menu (desktop) / bottom sheet (mobile) with a "Hide activity on price chart" toggle. The preference is persisted in the market store and applied across assets; when enabled, transaction markers are omitted from the chart while the all-time high/low markers remain.

  • #18051 d5afcba Thanks @ysitbon! - Fix Firebase remote config keys for FeatureIds whose snake_case ↔ camelCase round-trip is lossy via lodash (llmAccountListUI, llmRebornLP, web3hub, ptxSwapReceiveTRC20WithoutTrx). fetchRemoteFlags now uses a forward feature_${snakeCase(id)} → FeatureId lookup built from FeatureIdSchema.options, so these flags resolve to their Firebase values instead of silently falling back to defaults.

  • #17988 b83808b Thanks @mcayuelas-ledger! - Enhance the shared mobile LineChart with high/low value point markers, a touch scrubber showing a formatted date/price tooltip, and configurable area fill (showArea) and X/Y axes (showXAxis/showYAxis plus passthrough xAxis/yAxis config), and apply them to the AssetDetail balance chart.

  • #18250 c984d17 Thanks @deepyjr! - Add CVS-backed Stocks category to the mobile Market screen.

  • #17827 d039a1a Thanks @ysitbon! - Migrate all in-app feature-flag hook imports to @features/platform-feature-flags (Redux-backed) and decouple from @ledgerhq/live-common/featureFlags/* + @ledgerhq/types-live for feature-flag types/constants.

  • #18038 65d6fa2 Thanks @LucasWerey! - Update the Analytics page Profit and loss section: replace the cost basis card with a realised return card (Unrealised + Realised), add a tappable "Profit and loss" subheader that opens the detail drawer, and refresh the detail drawer copy.

  • #18137 a46db93 Thanks @ysitbon! - Repoint the live-common FeatureFlags Context bridge to read feature-flag values from the Redux slice (@shared/feature-flags), gate app boot on the remoteFlagsReady selector, and remove the now-redundant app-side Firebase RTK Query fetch layer (useFirebaseRemoteConfig, firebaseRemoteConfigApi). The LiveConfig provider install moves to firebase/remoteConfig.ts so config_* keys stay populated. No user-facing behaviour change.

  • #18231 764cc18 Thanks @LucasWerey! - Enable magnetic points on the asset line chart so the touch cursor snaps to the nearest data point

  • #18146 8528176 Thanks @deepyjr! - Add total market cap market insight card on mobile

  • #18210 98928b5 Thanks @deepyjr! - Add the Wallet 4.0 Market category switcher with favorites support.

  • #18211 3fce7f6 Thanks @deepyjr! - Add the Wallet 4.0 Market filter bottom sheet.

  • #18147 dd0faa9 Thanks @deepyjr! - Add isolated market insight card error placeholders on mobile

  • #18186 ff7a673 Thanks @LucasWerey! - Add the v4 marketListConfig RTK slice (sorting, timeframe, network, category) shared by the Market screen and the modular asset drawer. Persisted as a user preference (never reset). Gated by the asset discoverability feature flag.

  • #18182 2d12107 Thanks @LucasWerey! - Add the v4 Market screen assets list (Block 3): a reusable AssetListItem market variant, loading skeletons, an error banner, an end-of-list pagination spinner and a bottom fade gradient. Gated by the asset discoverability feature flag.

  • #18258 3624b3d Thanks @francois-guerin-ledger! - Support Monad native staking claim rewards: add the per-chain claimReward operation (keyed by the numeric validator id) and thread the validator id from the delegation through the claim flow on mobile and desktop. Always source validatorId from the delegation so claiming no longer fails with "monad staking requires valId" when the matched validator from the loaded list lacks an id.

  • #18205 21227bb Thanks @dilaouid! - fix(lwm): fix mobile code check CI change mock test

  • #18257 fe3bfb8 Thanks @OlivierFreyssinet! - Bump Lumen UI packages: @ledgerhq/lumen-ui-react to 0.1.38, @ledgerhq/lumen-ui-react-visualization to 0.1.17, @ledgerhq/lumen-ui-rnative to 0.1.39, and @ledgerhq/lumen-ui-rnative-visualization to 0.1.16.

  • #18062 56e3314 Thanks @jiyuzhuang! - Add migration script

  • #17979 9c62b0c Thanks @mcayuelas-ledger! - Plug real price-history data into the mobile Asset Detail balance graph. The chart now renders the actual range-driven price curve fetched from the market chart endpoint instead of placeholder data, and refetches/redraws when switching range (1D/1W/1M/1Y).

  • #18098 9b82f1c Thanks @LucasWerey! - Add PnL drawer page tracking and button spam guard

  • #17987 6bd2223 Thanks @RobinVncnt! - feat: lwm counterfeit warning

  • #18068 fb56998 Thanks @francois-guerin-ledger! - Support Monad native staking delegation: add the per-chain delegate operation (keyed by the numeric validator id) and thread the validator id from the delegate flow through to the transaction

  • #18084 842726f Thanks @mcayuelas-ledger! - Add transaction markers, 6m/all timeframes, point tooltips and series downsampling to the asset-detail balance graph

  • #18039 4cf7c6b Thanks @deepyjr! - Add empty Market screen shell shown behind the asset discoverability feature flag, with a navigator switch between MarketScreen and MarketList

  • #18163 ddfb84c Thanks @vcluzeau-ledger! - Make Recover URI templating actually replace protectId, drop unused protectServicesDesktop / protectServicesMobile params, and replace compatibleDevices with a hardcoded Nano S exclusion in isRecoverDisplayed.

    useReplacedURI previously only rewrote the placeholders protect-simu, protect-local-dev and protect-staging, so any URI hard-coded with protect-prod (e.g. the values shipped to PROD via Firebase Remote Config) was never re-templated when protectId changed. Switching the active Recover environment therefore required a manual find-and-replace across every URI in the feature flag. The regex now matches any protect-<env> segment, which is a no-op when protectId already equals that segment and a true substitution otherwise.

    compatibleDevices is replaced by a hardcoded check in isRecoverDisplayed — Nano S is the only device that does not support Recover and the rule is not expected to change. Dropping the array from the schema keeps the FF lean and removes the need to update Remote Config when a new device is supported.

    Also remove keys that have no consumer in either app — isNew, ledgerliveStorageState, onboardingCompleted.alreadySubscribedURI, and the entire onboardingRestore block on desktop; ledgerliveStorageState, restoreInfoDrawer.manualStepsURI, managerStatesData.NEW.learnMoreURI and managerStatesData.NEW.alreadySubscribedURI on mobile. usePostOnboardingURI is narrowed to Feature_ProtectServicesMobile since it is only called from the mobile app. Unknown keys still in Firebase are silently stripped by Zod, so this is forward-compatible with existing Remote Config payloads.

  • #18100 5d663fc Thanks @mcayuelas-ledger! - Refresh stale DADA-sourced asset prices by enabling polling: discovery/default rows in the desktop Assets section and the market price on the Asset Detail page (desktop & mobile) now refetch periodically instead of showing a one-time snapshot

  • #18025 19dbe4c Thanks @gre-ledger! - chore: upgrade the Rsbuild/Rspack build stack to v2

    Bump @rsbuild/core to 2.x, @rspack/core/@rspack/cli/@rspack/dev-server/@rspack/plugin-react-refresh to 2.x, @rslib/core to 0.22, @rsdoctor/rspack-plugin to 2.0.0-alpha.0, related plugins, and storybook-react-rsbuild to 3.3.4 (with the Storybook 10.x catalog bumped to 10.4). @swc/helpers is aligned to 0.5.23 so the _wrap_reg_exp runtime helper emitted by @swc/core resolves under Rspack v2's stricter exports enforcement (mobile bundle). Desktop rspack config updated for the v2 ReactRefreshRspackPlugin named export and a @sentry/types v6 resolution alias required by Rspack v2's stricter ESM linking. Rsdoctor loader analysis is disabled on mobile (its loader interceptor is not yet Rspack-v2 compatible); bundle analysis is unaffected.

  • #18178 53ed593 Thanks @sergiubreban! - fix: bottom sheet drawer when closing before animation end

  • #18218 8333f85 Thanks @YazhuEth! - Fix SEI_EVM validator total stake decimals: scale usei (6 decimals) to the native 18-decimal unit so displayed amounts are correct. Also fix the mobile EVM validator row to show the total staked amount instead of a hardcoded "0.00 % APR".

  • #17946 b2e3154 Thanks @OlivierFreyssinet! - Add Connect Device Layer B analytics events on mobile and expose the selected device on connection-error UI states.

  • #18018 80e1f82 Thanks @sergiubreban! - fix: QueuedDrawerBottomSheet when closing via X button

  • #18265 8f9160c Thanks @LucasWerey! - Market Stat definition padding

  • #18195 d32b48b Thanks @jiyuzhuang! - Add content card completeness verification

  • #18248 57c6a77 Thanks @KVNLS! - LWM: Add Ledger Sync entrypoint in accounts v4 page

  • #18136 6d58638 Thanks @RobinVncnt! - feat: lwm-lwd counterfeit warning tracking

  • #18185 ac6a48f Thanks @tonykhaov! - Fix generic awareness modal auto-open on focused mobile screens

  • #18047 115763d Thanks @jiyuzhuang! - Filter out content cards sync errors

  • #18260 b2a31f9 Thanks @mitchellv-ledger! - Update lotties and copy in lwd and lwm product tours

  • #18229 bbc72fe Thanks @francois-guerin-ledger! - fix(coin-evm): fetch missing validator names

  • #18024 79933a7 Thanks @philipptpunkt! - LIVE-30737: Fix Swap opening on the legacy (pre-Wallet 4.0) navigation stack from several entry points. When the Wallet 4.0 main navigation is enabled, the SwapNavigator is a tab inside the Main navigator (with the top header and bottom tab bar); navigating to the base-level SwapNavigator instead lands on the legacy stack with no header and no tab bar. A shared navigateToSwapTab helper now centralises the Wallet 4.0-aware routing, and the No-funds drawer and the staking "not enough balance" swap CTA route through it (previously they always opened the legacy stack).

  • #17773 4ea3354 Thanks @liviuciulinaru! - Clean up legacy Swap code paths now that the Wallet 4.0 swap experience is the
    default. The Wallet 4.0 feature-config gating (useWalletFeaturesConfig /
    shouldDisplayWallet40MainNav) has been dropped from the swap surfaces, keeping
    only the v4 path:

    • Mobile: every Swap entry point (the ledgerlive://swap deeplink, no-funds
      drawers, staking error CTAs, …) now routes through Main → Swap → SwapTab,
      and the swap live-app handlers (pending operation, custom error, loading,
      history) always navigate via the SwapSubScreens navigator. The legacy
      top-level Swap navigator routing and its reset action have been removed.
    • Mobile: SwapTab always renders SwapLiveAppWallet40 (the legacy
      SwapLiveApp screen branch is gone) and its header stays hidden, since the
      Wallet 4.0 MainNavigator tab owns the chrome.
    • Desktop: the Swap2 page always renders with the Wallet 4.0 PageHeader
      layout, and SwapWebViewEmbedded no longer takes an isWallet40 prop (it
      always uses the v4 bordered container).
    • Mobile + Desktop: the lwm40enabled / lwd40enabled webview inputs sent to
      the swap live-app are now hardcoded to "true" instead of being derived from
      the wallet-features config.
    • Removed dead swap code left over from the v4 migration: the SwapLiveApp
      screen, the legacy WebView.tsx, the useSwapHeaderNavigation /
      useSwapNavigationHelper hooks, the ScreenName.SwapLiveApp enum entry, and
      the SwapLiveAppNavigationParams type.
  • #18079 1774bd6 Thanks @deepyjr! - Filter the Asset Detail "Send crypto" flow by the asset's networks: the "Account to debit" screen now lists only accounts holding the asset across all of its networks (e.g. both USDT accounts on Ethereum and Algorand), reusing the multi-network ledgerIds resolved for the Receive flow, instead of showing the full unfiltered account list.

  • #17932 5842a85 Thanks @Valentin-Ledger! - Add earnUpselling and earnSimulator as Wallet 4.0 feature flag params, expose them in the Wallet 4.0 analytics attributes, and surface them in the desktop and mobile developer settings toggles.

  • #17864 0e8a93b Thanks @amaslakov! - Add a Tezos balance breakdown footer to the account screen (mirrors desktop): shows Available and Delegated balances, plus Staked, Pending withdrawable, and Withdrawable amounts when Tezos staking (llmTezosStaking) is enabled, each with an info tooltip.

  • #18189 865913b Thanks @amaslakov! - Add the Tezos staking flow to Ledger Live Mobile (LIVE-31185). Users can stake XTZ from a delegated account; undelegated accounts are chained delegate→stake. Includes crypto/fiat amount entry, device signing, and success/error screens.

  • #17672 14fbee8 Thanks @LucasWerey! - Wire mobile asset entry points (Market list, Market banner, Portfolio asset rows, Crypto/Stablecoin lists, Analytics distribution cards) to the new MVVM AssetDetail screen when shouldDisplayAggregatedAssets is true; fall back to the legacy MarketDetail / Accounts > Asset routes otherwise. Add a shared resolveAssetMarketInputs helper in @ledgerhq/asset-aggregation to derive marketApiId / knownLedgerIds / knownMarketId consistently across desktop and mobile, fixing the BNB-style ledger-id ≠ market-id mismatch that caused empty market data on the asset detail screen.

  • #17710 2e42f3a Thanks @YazhuEth! - Wire EVM claim rewards flow on mobile, emit fees-exceed-rewards bridge warning, and map claimReward staking operations to the REWARD type (optimistic and confirmed) so claimed rewards show as incoming in the operation history. Bump @ledgerhq/coin-module-framework to 3.2.0 so 'claimReward' is part of the framework's StakingOperation union.

  • #17868 18f7c47 Thanks @deepyjr! - Expose resolved multi-network ledgerIds from useAssetMarketData so consumers (mobile Asset Detail → Receive flow) get the full CoinGecko list instead of the single id marketCurrencyData.ledgerIds collapses to when the DADA market entry wins.

    Add useReceiveNetworkLedgerIds, which resolves a token's complete network list from DADA so the Receive flow can offer every network (including ones not held yet). CoinGecko's ledgerIds is unreliable for tokens — it can collapse to a single network or expose only a partial subset (e.g. WETH surfaces just Ethereum + Neon while DADA knows 11 networks) — so we always query DADA and only keep its list when it is strictly more complete than the CoinGecko fallback.

  • #18006 27a6979 Thanks @amaslakov! - Fix Tezos transaction validation to gate on the spendable (liquid) balance instead of the total balance. Delegate, undelegate, send, stake, unstake, and finalize now correctly block when staked or unstaked-frozen funds leave too little liquid XTZ to cover fees, instead of passing client-side and failing at broadcast. Also consolidate useTezosStakingInfo's available balance onto the single source of truth (account.spendableBalance). On desktop, the staking flow's validator step now blocks before signing the initial delegation when the spendable balance can't cover the delegation fee, instead of letting it broadcast and fail. The displayed spendable/delegated balance now derives the unstaked-frozen total from the account-level field (the same source as the validation gate), so a failed unstake_requests fetch no longer transiently overstates spendable. The staking flow's "Use Max" / maximum-spendable amount now also excludes unstaked-frozen funds (not stakeable until finalized), matching the validation gate — previously it overstated the stakeable amount and produced an unsendable value.

    Also on desktop: show the staking and unstaking panels before the delegation panel; show the staked principal instead of the fee for stake, unstake, and finalize operations in the operations list and details drawer; and reword the stake insufficient-funds error to reference the balance instead of delegation.

Patch Changes

  • Updated dependencies [c606898, 4695b68, 9901502, 0af4c92, 0ebf28c, fe67b0a, d149f27, 2437b0d, 8d78462, 1b89031, b14d5cc, 2977361, 36f16ea, 7eb1ec7, 7584ec2, 473d990, 4e8ba32, f1334e7, d649cf3, d081ef1, 3624b3d, 16694d5, 95c31f8, 2670997, d19f9de, fb56998, ddfb84c, 8269fe2, 3e71e65, 8333f85, b2e3154, 6f84bbf, ec38133, cf90292, 8c0f5f2, cc4dd4d, bbc72fe, 8c9596d, 5842a85, 2e42f3a]:
    • @ledgerhq/types-live@6.111.0
    • @shared/feature-flags@0.10.0
    • @ledgerhq/wallet-pnl@0.5.0
    • @ledgerhq/coin-bitcoin@0.44.0
    • @ledgerhq/cryptoassets@13.51.0
    • @ledgerhq/coin-filecoin@1.25.0
    • @ledgerhq/ledger-wallet-framework@2.1.0
    • @ledgerhq/live-countervalues-react@0.15.0
    • @ledgerhq/live-countervalues@0.19.0
    • @ledgerhq/coin-evm@4.2.0
    • @ledgerhq/device-intent@3.2.0
    • @ledgerhq/live-env@2.38.0
    • @ledgerhq/live-config@3.8.0
    • @features/platform-feature-flags@0.3.0
    • @ledgerhq/coin-cosmos@0.35.0
    • @ledgerhq/live-dmk-shared@0.26.0
    • @ledgerhq/ledger-key-ring-protocol@0.15.0
    • @ledgerhq/live-dmk-mobile@0.25.0
    • @ledgerhq/coin-concordium@0.13.0
    • @ledgerhq/errors@6.36.0
    • @ledgerhq/coin-canton@0.26.1
    • @ledgerhq/coin-casper@2.13.6
    • @ledgerhq/coin-multiversx@0.17.3
    • @ledgerhq/coin-stacks@0.21.6
    • @ledgerhq/domain-service@1.8.6
    • @ledgerhq/live-wallet@0.27.2
    • @ledgerhq/live-currency-format@0.9.2
    • @ledgerhq/client-ids@0.10.2
    • @ledgerhq/hw-ledger-key-ring-protocol@0.10.5
    • @ledgerhq/live-dmk-speculos@0.9.1
    • @ledgerhq/live-network@2.6.4
    • @ledgerhq/devices@8.15.1
    • @ledgerhq/hw-transport@6.35.4
    • @ledgerhq/hw-transport-http@6.36.4

Don't miss a new ledger-live release

NewReleases is sending notifications on new releases.