4.11.0
Minor Changes
-
#19030
9af0e8aThanks @mitchellv-ledger! - Fix hasEnabledOsNotifications being intermittently tracked as false after the user enabled OS notifications -
#19029
a832b69Thanks @mateuszpalosz-ext! - selfTransfer button for Aleo (without any logic) -
#19180
343208dThanks @Valentin-Ledger! - Update borrow entry point copy and icon in Portfolio, and move the borrow section into the Wallet Assets group on mobile -
#18987
98ee95cThanks @Valentin-Ledger! - AddborrowFeatureanalytics property derived from theptxBorrowLiveAppfeature flag, included in identify traits and track events on both desktop and mobile. -
#19079
b713054Thanks @Valentin-Ledger! - Forward device safe-area insets (top/bottom/left/right) as query params to the Borrow live app webview so the embedded app can offset notches and the home indicator, and add a safe-area-aware bottom padding to the Borrow card on the Portfolio screen when the operations list owns the screen footer. -
#19101
4b615c2Thanks @dilaouid! - fix(lwdm): fix countervalue magnitude in the new send flow -
#19015
a2621e2Thanks @RobinVncnt! - feat: lwm ledger sync feature flag clean up -
#19087
b98cce3Thanks @YazhuEth! - Use the node's min relay fee as the minimum for manual Bitcoin-family fees in the send flow (BTC falls back to 1 sat/vB). A fee below it is now rejected in the form instead of at broadcast. -
#19142
2abe834Thanks @claudiiafg! - Add Lumen portfolio chart to mobile Analytics when PnL is enabled, with balance header and range-aware variation (first receive baseline for all-time). -
#18910
b73e553Thanks @deepyjr! - Set the Wallet 4.0 portfolio balance amount display to small for long balances. -
#18854
f1f4094Thanks @jiyuzhuang! - Fix analytics consent privacy policy footer link wrapping with inline Trans markup -
#19627
8e3b521Thanks @live-github-bot! - Merge release branch into hotfix support branch, resolving version and changelog conflicts -
#18917
3b9ad8eThanks @YazhuEth! - celo: deprecate the "Ledger by Figment" validator. It is no longer shown or selectable in the vote flow and is never the default — the validator list is now ranked by TVL with none selected by default. Existing delegations remain fully manageable (unvote / unlock / withdraw). -
#18856
c0c3a63Thanks @dilaouid! - chore(lwdm): remove all evm mention in the new send flow -
#19231
70a706eThanks @gre-ledger! - Remove unused USE_LEARN_STAGING_URL env var -
#18887
8b6614eThanks @lysyi3m! - Remove theconcordiumVerifyAddressfeature flag and its "address verification unavailable" fallback. On-device address verification is now the unconditional path for all Concordium accounts. -
#19324
5c5064fThanks @mcayuelas-ledger! - Resolve crypto counter-values by Ledger id instead of ticker, and migrate existing users' persisted crypto counterValue (BTC/ETH) to ids. Fiats keep ticker-based resolution. -
#19256
7a3c4a5Thanks @mateuszpalosz-ext! - private sync for mobile Aleo part 1 -
#19037
e1dfe0dThanks @mdomanski-ext-ledger! - feat: mobile operation details parser for aleo -
#19062
5ccd2a9Thanks @abdurrahman-ledger! - Extract E2E test-support code out of@ledgerhq/live-commonMoved the E2E enums, models, family helpers and speculos/device utilities that lived under
@ledgerhq/live-common/e2e/*into a new dedicated, private package@ledgerhq/live-e2e-shared
(located undere2e/, alongside the Desktop and Mobile E2E suites). This keeps test-only code
out oflive-common, which is in maintenance mode.@ledgerhq/live-common: removed the internal./e2eexport.@shared/feature-flags: now exportsgetAllFeatureFlags(previously in the live-common e2e
module), so production debug tooling no longer depends on test code.ledger-live-desktop: thedevicesreducer now derives the Speculos device model from a small
local map instead of importing from the e2e module.- Desktop/Mobile apps and E2E suites now import from
@ledgerhq/live-e2e-shared.
-
#19184
6400154Thanks @francois-guerin-ledger! - Promote the EVM edit-transaction (speed-up / cancel) helpers to the bridge contract.AccountBridgeExtensionsis now generic over the transaction type and exposes the app-facing edit-transaction methods (getEditTransactionPatch,getEditTransactionStatus,getFormattedFeeFields,hasMinimumFundsToCancel,hasMinimumFundsToSpeedUp,isStrategyDisabled,isTransactionConfirmed). The implementations move out of@ledgerhq/coin-evmintoledger-live-common(families/evm), and every app/LLC call site now reaches them throughgetAccountBridge(account)instead of importing@ledgerhq/coin-evm/editTransaction/*. The contract uses only base types so other families (e.g. Bitcoin RBF) can implement the same surface later. -
#18795
fae5dd7Thanks @dilaouid! - feat(lwm): remove step signature -
#18630
e6566ffThanks @Moustafa-Koterba! - [LWM] feat(mobile): add tracking part 1 -
#18934
edebe91Thanks @dilaouid! - feat(lwdm): restore recent address store for lwdm -
#19220
996c76bThanks @ysitbon! - Make the@ledgerhq/cryptoassetsfiat registry injectable (setFiatCurrenciesStore) and inject the@domain/entity-currency-fiatregistry 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. -
#19220
2ac4833Thanks @ysitbon! - Add supported-fiats RTK slice to @domain/entity-currency-fiat; wire currencyFiatApi onQueryStarted to dispatch it; register currencyFiatApi in desktop and mobile stores with cvsApiExtra extraArgument composition. -
#19141
2caa65cThanks @jiyuzhuang! - Fix content card displayedPosition analytics by stripping Braze string values in sanitizeExtras and finalizing numeric indices at the tracking gateway (mobile trackContentCardEvent, desktop trackContentCard) instead of at each call site. -
#18034
b5e3155Thanks @philipptpunkt! - Fix the Swap history "Previous" button playing the forward (push) transition instead of the back (pop) one in Wallet 4.0. The history sub-screen is pushed on top of Main, so we now pop the parent navigator instead of resetting it, restoring the correct left-to-right back animation. -
#18786
8d7f2b3Thanks @jiyuzhuang! - Fix top_wallet content card canvas_name and canvas_step_name tracking -
#18484
ed4e13fThanks @jiyuzhuang! - Fix top_wallet content card tracking location (page/location) for contentcard click & dismiss events -
#18996
3f92956Thanks @deepyjr! - Add Mobile transaction history dust filtering controls behind a feature flag. -
#19272
e2d74f7Thanks @francois-guerin-ledger! - chore(coin-evm): raise an error if gas price is less than the network minimum -
#19036
addef52Thanks @mcayuelas-ledger! - remove marketbanner param from wallet4.0 FF -
#19063
eab9b13Thanks @dilaouid! - chore(llc): refactor useFeePresetFiatValues to use in both LWDM -
#18931
c20552bThanks @LucasWerey! - Global Search now surfaces testnets when developer mode is enabled, mirroring the Receive flow's DADA query logic (includeTestNetworks+ staging environment). Fixes LIVE-33199. -
#17924
b5562caThanks @iqbalibrahim-ledger! - [LIVE-30528] Unnest FlatList in SelectableAccountsList to fix account rows disappearing on the "Select the accounts you want to add" screen after RN 0.81 / React 19 upgrade. -
#18953
81373c1Thanks @RobinVncnt! - opt-in notification feature flag clean up -
#19088
6d8f705Thanks @vtaranushenko-ext-ledger! - Add view key warning screen to Aleo add-account flow on mobile -
#18837
cdcbce9Thanks @mitchellv-ledger! - Migrate DesyncOverlay to mvvm in lwm -
#18981
ac5a7faThanks @koda-apps! - Fix Large Movers supply values showing duplicated ticker and missing space between value and ticker. -
#19072
cca8dc3Thanks @LucasWerey! - Remove the WalletTabNavigator: with the Market tab gone, the wallet tab was a navigator wrapping a single Portfolio screen. The Portfolio screen is now rendered directly under theScreenName.Portfolioroute via the newPortfolioRootScreenwrapper (which keeps the portfolio chrome — header, gradient, balance sync, scroll manager), and the route is reclassified from aNavigatorNameto the existingScreenName.Portfolioscreen. Also removes the deadNavigatorName.Marketreferences left under the wallet tab (param list, deeplink linking config, transfer drawer analytics), routes the baremarketdeeplink fallbacks throughhandleMarketBannerDeeplink, and renames thenavigateToPortfolioWalletTabhelper tonavigateToPortfolio. -
#18965
cc01b77Thanks @ishaba! - perf(sui): populate staking extras at sync, drop per-drawer transaction(digest:) re-fetch -
#19007
f495213Thanks @ysitbon! - Inject the domain-backed crypto-currency registry (@domain/entity-currency-crypto) at app bootstrap viasetCryptoCurrenciesStore, making the domain registry the runtime source of truth for currency data. The bundled data in@ledgerhq/cryptoassetsstays as the fallback. -
#18568
6ddd641Thanks @gre-ledger! - feat(lkrp): per-application close on Wallet Sync deactivationDeactivating Wallet Sync now closes only the current application's stream instead of destroying the whole trustchain root, so other applications sharing the same root (e.g. wallet-cli
ring) keep working. If the application being closed is the last open one, the whole trustchain is still destroyed (previous behaviour).CommandStreamResolvernow observesCloseStream(ResolvedCommandStream.isClosed()).StreamTree.getApplicationStreams()/hasAnotherOpenApplication()enumerate application streams to detect the last open application.- New
TrustchainSDK.destroyApplication()primitive, software-key signed (no hardware device): closes only the current application's stream, or destroys the whole trustchain when it is the last open application ({ trustchainDestroyed }). restoreTrustchainthrowsTrustchainEjectedwhen the application stream is closed, andgetOrCreateTrustchainreopens on the next index after a close.- LLD/LLM
useDestroyTrustchainhooks now calldestroyApplication. - web-tools trustchain playground exposes a
sdk.destroyApplicationaction to exercise the per-application close.
-
#19181
d23bb3eThanks @LucasWerey! - Bump Lumen design-system dependencies to the 6/26/2026 release -
#18960
79e28d5Thanks @LucasWerey! - Only show the Robinhood disclaimer banner on the Wallet 4.0 asset detail screen when the user holds a positive balance for the asset, matching the desktop behaviour and the LIVE-32756 spec (LIVE-32758). -
#17458
8a9a49bThanks @philipptpunkt! - Add the mobile swap transaction status drawer with provider details, status tracking, and explorer links. -
#18864
a4f9955Thanks @philipptpunkt! - Add mobile swap transaction status drawer infrastructure. -
#19023
3f71b7aThanks @francois-guerin-ledger! - Monad staking: pin the Ledger validator ("Ledger by P2P.org") to the top of the validator list so it is selected by default when delegating -
#18633
e9b1707Thanks @dilaouid! - feat(lwdm): move the Celo "Pay fees in" selector from the Amount step to the Custom fees step using a generic, family-agnostic fee asset descriptor -
#17564
babad68Thanks @dilaouid! - tests(e2e): add detox for evm native staking (sei_evm) and mock smoke underapps/ledger-live-mobile/e2eand Speculos delegate flow undere2e/mobile -
#19187
0e30cdcThanks @sarneijim! - Persist onboardingDate in the shared post-onboarding store to power the post-onboarding upsell cooldown. It is preserved when reopening or hiding the wallet entry point for the same device, refreshed when a different device is onboarded, and backfilled to today once for legacy users on first launch. -
#18891
b10ca6aThanks @RobinVncnt! - flexibleContentCards feature flag cleanup -
#19246
bfcf591Thanks @dilaouid! - fix(lwm): fix wording signature lwm -
#18906
df96477Thanks @OlivierFreyssinet! - AddgetProductNameto@ledgerhq/devicesreturning the plain, canonical device product name (e.g. "Ledger Flex"), and deprecate the app-levelgetProductNameutils that strip the "Ledger" prefix. -
#18858
583dd79Thanks @francois-guerin-ledger! - Remove address suggestions from the new send flow recipient screen, while keeping the first-seen-address warning -
#18904
a84a1caThanks @deepyjr! - Fix slow mobile transition from Discover catalog to Wallet. -
#19102
f559623Thanks @sarneijim! - Fix duplicatecontentcard_impressionevents: keepInViewContextvisibility memory keyed by the stable target ref so impressions no longer re-fire when a content card re-subscribes (e.g. carousel rebuilding its items) while still in view -
#19000
5d4cc7aThanks @YazhuEth! - Translate the "To:" prefix label in the new Send flow recipient input -
#19009
1f25437Thanks @claudiiafg! - Track Funds received analytics when a new receive operation is synced on desktop and mobile. -
#18962
cf3aad1Thanks @jiyuzhuang! - Remove llmRebornABtest feature flag and legacy NoLedgerYetModal onboarding path -
#18855
df6ca42Thanks @sarneijim! - Remove thellmRebornLPfeature flag (always enabled with variant A) and inline the enabled behavior -
#19008
c572468Thanks @LucasWerey! - Remove themarketBannerfeature flag gating on mobile so the standalone Market experience and the portfolio market banner are always enabled. Also removes the now-unusedwalletTabNavigatorLastVisitedTabsetting that only the tab-based layout relied on. -
#18932
628f21fThanks @LucasWerey! - Add an informational disclaimer banner on the Wallet 4.0 asset detail screen for assets supported exclusively on a Robinhood chain (e.g. tokenized stocks on robinhood_testnet). The banner is gated by thellRobinhoodDisclaimerfeature flag, which is simplified to a plain boolean flag (its unusedurlparam is removed). -
#18778
b9ffdc9Thanks @qperrot! - Fix: add a check for minimum staking amount on solana -
#18928
b2e12ceThanks @qperrot! - fix(sei): determine Sei EVM account association via on-chain RPCisSeiAccountUnassociatednow resolves whether a Sei EVM (0x) address is linked
on-chain to its Cosmos (sei1) address by querying the chain's address precompile
(getSeiAddr) instead of inferring it from the local operation history. The
function is now async and no longer takes anoperationsargument; the delegation
flow screens (desktop & mobile) resolve the warning asynchronously. -
#17606
e82ab44Thanks @iqbalibrahim-ledger! - chore(lwm): remove deprecated SafeAreaView -
#18884
b534149Thanks @KVNLS! - Update MMKV to V4 and activate NitroModules -
#17924
360cea4Thanks @iqbalibrahim-ledger! - Upgrade React Native to 0.81.6, Expo SDK 54 for LWM; React 19.1.4 for LWM and LWD -
#19293
41b8ed7Thanks @YazhuEth! - Fix BTC fee rate unit label from "sat/bytes" to "sat/vByte" -
#19176
16f7a29Thanks @ysitbon! - Register a single crypto-assets token cache per app store, backed by the new domain token api and its persistence, and inject the legacy getCryptoAssetsStore singleton over it. This guarantees one runtime source of token data: the UI and coin-modules share the same cache. -
#18803
00cee6fThanks @deepyjr! - Fix PnL card title wrapping on mobile -
#19034
696a1eeThanks @VicAlbr! - chore(e2e): use ETH instead of SOL/XRP/XLM/SUI for smoke tests where possible (BTC kept) -
#18085
63b9b10Thanks @VicAlbr! - Add non-mandatory mobile smoke tests to PR CI pipeline -
#18966
924bb83Thanks @dilaouid! - feat(lwm): recipient step bottomsheet recent information -
#18829
b3ffa2fThanks @gre-ledger! - Sunset theCryptoCurrency.terminatedfield: remove it from the type/schema, delete the 5 currencies it marked (clubcoin, hcash, poswallet, stakenet, stratis), drop the now-unusedwithTerminatedparameter fromlistCryptoCurrencies, and clean up the dead code orphaned by those deletions. -
#18955
376915cThanks @Moustafa-Koterba! - feat(mobile): add tracking on new send flow part 2 -
#19165
f530884Thanks @mateuszpalosz-ext! - Added support for mobile balance component with transparent and shielded variants -
#19044
ed6c3ddThanks @OlivierFreyssinet! - Restore Android permission retry behavior after the React Native permission fix -
#19257
a5afb77Thanks @kentoforik! - Add testIDs to SwapTransactionStatus drawer components for e2e coverage -
#19289
da6eb76Thanks @vtaranushenko-ext-ledger! - Add Aleo view key approve screen and extend custom add-account flow API with onImportAccounts, onScanDeviceAccountsBack, and per-family CTA label support -
#19112
8169225Thanks @dilaouid! - chore(lwdm): refacto gas and memo in the new send flow -
#19178
3da6b44Thanks @LucasWerey! - Remove the balanceRefreshRework param of the wallet 4.0 feature flag everywhere; the reworked balance refresh is now always used on mobile -
#18905
cd52815Thanks @dilaouid! - fix(lwm): fix cosmos android layout -
#19224
29ac004Thanks @claudiiafg! - Extract shared Analytics chart utils into @ledgerhq/wallet-analytics -
#19302
f9411d1Thanks @LucasWerey! - Remove thegraphReworkparam of the Wallet 4.0 feature flag on both platforms. The param is no longer consumed on desktop (LIVE-33502) nor mobile, so it is dropped entirely: from thelwmWallet40/lwdWallet40schemas, the sharedFeature_Wallet40_Paramstype, the analytics helper, theshouldDisplayGraphReworkgetter inuseWalletFeaturesConfig, and both platforms' debug dev-tool lists.On mobile the Wallet 4.0 balance hero is now always rendered: the legacy portfolio graph card is dropped from the portfolio header and read-only screens (the
GraphCard/GraphCardContainer/PortfolioGraphCardcomponents stay, still used by the Analytics screen), and the graphRework gating is removed from every mobile call site (Portfolio screen/VM,Delta, settings reducer, WalletAssets VM). -
#19203
6eea36bThanks @LucasWerey! - Remove the mainNavigation param of the wallet 4.0 feature flag; the wallet 4.0 main navigation is now always used on mobile and the legacy tab-bar/top-bar code paths are removed -
#19261
35d4af9Thanks @LucasWerey! - Wallet 4.0 Q1 cleanup on mobile:- Remove the
quickActionCtasparam of thelwmWallet40feature flag. The quick-action CTAs are now always enabled; theshouldDisplayQuickActionCtasgetter and the legacyPortfolioQuickActionsBarare removed. - Remove the legacy (pre-4.0) Portfolio screen.
PortfolioRootScreennow always renders the MVVMPortfolio/ReadOnlyPortfolio, and the dead legacy screen files are deleted.
- Remove the
-
#19068
0e302a5Thanks @dilaouid! - chore(llc): share useNetworkFee hooks through lwd and lwm in common -
#18874
e0b2f53Thanks @YazhuEth! - Block XRP send and show an error when the recipient requires a destination tag and none is provided (bumps @ledgerhq/coin-xrp to 7.23.5)
Patch Changes
- Updated dependencies [
b837f65,bb1bbc3,6df2017,a7734c2,a2621e2,e18fe2d,b98cce3,19aa0b4,70a706e,8b6614e,f9caf32,3cb6159,c5763f6,3b35b5e,38728f9,d91f849,86ca231,714411f,1e17c12,ca07aac,5ccd2a9,6400154,9f8ab96,e6566ff,7914bd1,996c76b,2ac4833,4f541c2,e2d74f7,973118a,addef52,81373c1,7fe5f11,34bccb5,966d6a1,b1d2ae6,7c39ea3,d686e93,e97314e,f495213,f495213,0225804,c8b4ee7,6ddd641,e820e40,007f27e,ba433a1,c22afcb,0e30cdc,b10ca6a,fa25271,df96477,c4ee26d,edacd7c,cf3aad1,df6ca42,e3c0327,628f21f,b2e12ce,360cea4,b3ffa2f,376915c,b9f3ba5,ed6c3dd,5aada6f,69b201e,3da6b44,607b032,29ac004,9c42adf,f9411d1,6eea36b,35d4af9,363ac4d,aea723c,1c1e25d]:- @domain/api-currency-fiat@0.2.0
- @domain/entity-currency-fiat@0.2.0
- @domain/api-currency-token@0.2.0
- @ledgerhq/cryptoassets@13.54.0
- @ledgerhq/coin-evm@4.5.0
- @ledgerhq/types-live@6.114.0
- @shared/feature-flags@0.13.0
- @ledgerhq/coin-bitcoin@0.46.0
- @ledgerhq/live-env@2.41.0
- @ledgerhq/coin-cosmos@0.38.0
- @ledgerhq/live-dmk-shared@0.28.0
- @domain/entity-currency-crypto@0.5.0
- @features/platform-feature-flags@0.6.0
- @ledgerhq/coin-multiversx@0.19.0
- @ledgerhq/coin-concordium@0.15.0
- @ledgerhq/coin-filecoin@1.27.0
- @ledgerhq/coin-stacks@0.23.0
- @ledgerhq/coin-canton@0.28.0
- @ledgerhq/coin-casper@2.15.0
- @ledgerhq/ledger-wallet-framework@2.3.0
- @features/platform-currencies@0.2.0
- @ledgerhq/live-currency-format@0.12.0
- @ledgerhq/types-cryptoassets@7.39.0
- @ledgerhq/live-dmk-mobile@0.28.0
- @ledgerhq/hw-ledger-key-ring-protocol@0.11.0
- @ledgerhq/ledger-key-ring-protocol@0.16.0
- @ledgerhq/live-countervalues@0.22.0
- @ledgerhq/devices@8.17.0
- @ledgerhq/native-ui@0.64.0
- @ledgerhq/wallet-analytics@0.2.0
- @ledgerhq/live-wallet@0.28.0
- @ledgerhq/wallet-pnl@0.7.1
- @ledgerhq/domain-service@1.8.9
- @ledgerhq/live-countervalues-react@0.16.1
- @ledgerhq/client-ids@0.11.1
- @ledgerhq/live-dmk-speculos@0.10.1
- @ledgerhq/live-network@2.6.7
- @ledgerhq/hw-transport@6.35.6
- @ledgerhq/device-intent@4.0.1
- @ledgerhq/hw-transport-http@6.36.6