Back to Freedom.Tech Back
All Ledger Live Desktop releasesAll versions
Release Thu, Jul 23, 2026 6 min read

Ledger Live Desktop 4.12.0

Original release notes

4.12.0

Minor Changes

  • #19396 25fd71b Thanks @amaslakov! - Hide the "Compound" claim-rewards option for Cosmos-family chains that use epoching (wrapped) staking messages, such as Babylon. Compound restaking is not supported on those chains yet - its embedded delegate is not epoching-wrapped - so only "Cash in" (claim rewards) is offered, preventing the "claimRewardCompound is not supported" error.
  • #19501 9824fc8 Thanks @amaslakov! - Fix the Cosmos-family "Undelegating" tooltip in the desktop account summary footer, which hardcoded a 21-day timelock for every chain. It now uses each chain's actual unbonding period (e.g. ~2 days for Babylon, 14 for Osmosis, 30 for dYdX), matching the value already shown in the delegation section.

Also make the Cosmos chain factory alias the crypto_org_croeseid testnet to crypto_org, so it resolves chain params instead of throwing (previously only the osmosis alias was handled).

  • #19628 8df21c9 Thanks @qperrot! - Fix coin control not showing selected coins after entering an amount, and refine the coin control screen layout (subheader sizing, header spacing, and scrollbar gutter)
  • #19667 40a231e Thanks @tonykhaov! - Add Segment analytics for the large-screen upsell modal (LIVE-33163): flow dismiss/CTA lifecycle ports and desktop trackPage/track wiring.
  • #19577 a96b7c8 Thanks @gre-ledger! - Fix Reset App to fully reboot Electron so user identities are regenerated on next launch
  • #19217 e26e68e Thanks @qperrot! - families/bitcoin/bridgeExtensions.ts now implements the full edit-transaction contract: getEditTransactionPatch, getEditTransactionStatus, getFormattedFeeFields, hasMinimumFundsToCancel, hasMinimumFundsToSpeedUp, isStrategyDisabled, isTransactionConfirmed.

The Bitcoin edit-transaction helpers (RBF replace/cancel, fee formatting, strategy validation) live under ledger-live-common/src/families/bitcoin/editTransaction/, with unit tests. Desktop & mobile Bitcoin edit flows (Body.tsx, StepFees, StepMethod, MethodSelection, EditTransactionSummary) reach these helpers through getAccountBridge(account) instead of importing them directly.

hasMinimumFundsToCancel / hasMinimumFundsToSpeedUp now return Promise<boolean>. Bitcoin's minimum-funds checks are inherently async (RBF fee lookup) and all call sites already await them; EVM's implementations were updated accordingly.

Bitcoin's isStrategyDisabled uses a slightly different shape than the generic contract, adapted via a thin wrapper (same pattern as EVM): it maps the contract's feeData to Bitcoin's feesStrategy, and its transaction param was widened to accept the real (nullable) feePerByte with a guard. isTransactionConfirmed follows the { account, hash } contract signature directly.

  • #19614 8998c72 Thanks @jeportie! - Expose the swap transaction-details provider link URL via test/accessibility attributes so E2E can conditionally verify the provider link only when a provider URL exists (QAA-721)
  • #19582 97f30e4 Thanks @gre-ledger! - Drop settings.supportedCounterValues - now derived at runtime from @domain/entity-currency-fiat
  • #19565 293720f Thanks @deepyjr! - Add the Contacts page shell with an empty list to the Desktop Contacts page.
  • #19388 c7d0489 Thanks @mcayuelas-ledger! - Add ledgerlive://paytab deeplink that navigates to the Pay Tab screen when the lwdPayTab feature flag is enabled, falling back to the default handler otherwise.
  • #19445 57e7569 Thanks @ypolishchuk-ledger! - Add stable data-testid attributes to the operation details drawer amount and identifier labels to make E2E selectors robust against duplicate on-page text.
  • #19342 1ee03bd Thanks @qperrot! - Fix EVM native staking delegation row not always showing the validator name on the account page. The moniker is now resolved from the reactive validators hook (the same source as the Delegate modal) instead of account.stakingResources.validators, which was only populated by a successful, non-empty account sync and could leave the raw validator address showing until the next sync.
  • #19220 996c76b Thanks @ysitbon! - Make the @ledgerhq/cryptoassets fiat registry injectable (setFiatCurrenciesStore) and inject the @domain/entity-currency-fiat registry at each app's bootstrap, so the domain registry is the single runtime source of truth for fiat currency data. The bundled fiat list stays as the fallback and is kept in sync by the existing parity test.
  • #19331 71884d7 Thanks @ysitbon! - Activate the RTK Query supported-fiats flow and retire the legacy CVS polling path: boot-time query populates the Redux slice; settings and countervalue selectors read from the slice synchronously.
  • #19536 f854c29 Thanks @amaslakov! - Warn and explain when Tezos staking is blocked by an unfinalizable unstake to another validator: translate the raw fee-estimation error into a clear message, and show an inline warning on the change-validator summary while a pending unstake is still unfinalizable
  • #19642 465ebec Thanks @tonykhaov! - Wire the large-screen upsell modal frequency state into desktop (LIVE-33160 / LIVE-33161): register the reducer and hydrate/persist it via storage. Composition hook and UI land in a later slice.
  • #19228 3fc5836 Thanks @lysyi3m! - Fix Tezos account.getPublicKey (Wallet API): resolve the account public key from xpub instead of seedIdentifier, which is derived from a different path (44'/1729'/0') and returned the same wrong address for every Tezos account. When xpub does not contain a valid base58 Tezos public key (edpk/sppk/p2pk), the request is rejected with a dedicated AccountPublicKeyUnavailable error and Ledger Live surfaces it natively (error modal on desktop, bottom modal on mobile), prompting the user to re-add the account instead of failing silently. The per-family resolver map is retained for chains that need bespoke retrieval. Also stop seeding xpub with the address on Tezos QR import.
  • #19370 cd43e66 Thanks @pawell24! - Rename "Ledger by Chorus One" to "Ledger by Bitwise" following Bitwise's acquisition of Chorus One
  • #19594 569d68a Thanks @claudiiafg! - Fix Analytics chart header to show Total balance label, md trend sizing, scrub-driven balance and date updates, and hide the chart scrubber tooltip.
  • #19551 16edbea Thanks @claudiiafg! - Add My Wallet Contact entry and gated empty Contacts page shell backed by domain contacts state.
  • #19277 77c8a26 Thanks @ishaba! - Celo Custom-fees "Pay fees in" options now show a currency icon and held balance for native CELO and each allowlisted fee token, on desktop and mobile. The generic FeeAssetOption contract gains two optional fields (currency, balance); the UI formats the raw balance with the user's locale. Coins that don't set them render exactly as before.