Releases: MetaMask/core
Releases · MetaMask/core
Release list
1093.0.0
@metamask/perps-controller 9.2.0
Added
- Add optional
description?: stringtoPerpsMarketDataandTerminalAssetMetadata, exposing the human-readable asset description sourced from the Terminal API when available (#9334)TerminalMarketServicenow reads thedescriptionfield from Terminal API items (ignoringnull/empty values) and includes it in per-symbol metadata.MarketDataService.getMarketDataWithPricesmerges the description intoPerpsMarketDatawhen the Terminal API backend (useTerminalApi) is enabled; markets without a Terminal description keep the fieldundefined.
1092.0.0
@metamask/bridge-controller 77.3.2
Fixed
- Fix Arc native token symbol from
USDC-nativetoUSDC(#9364)
1091.0.0
@metamask/bridge-status-controller 74.0.2
Fixed
- Only include
sourceAssetIdanddestAssetIdin the snap request options for Stellar trades (#9366)- Previously these options were passed for all non-EVM trades, which broke Bitcoin bridging/swapping because the Bitcoin snap strictly validates the request and rejects unexpected fields.
1090.0.0
@metamask/transaction-pay-controller 23.17.4
Fixed
- Allow payment token selection without a local fiat rate for post-quote transactions (#9361)
updatePaymentTokenthrewPayment token not foundwhen the selected token had no market price or native-currency rate in wallet state, which blocked selecting a withdraw destination token on a chain the wallet does not actively track. For post-quote (withdraw) flows the token now resolves with zeroed fiat rates instead; standard (deposit) flows keep the strict behavior.
1089.0.0
@metamask/perps-controller 9.1.0
Added
- Add Auto Close TP/SL RoE sign toggle analytics constants to
PERPS_EVENT_PROPERTYandPERPS_EVENT_VALUEso mobile and extension can import them from@metamask/perps-controllerinstead of local mirrors (#9322)- New
PERPS_EVENT_PROPERTYkey:ROE_SIGN(roe_sign) - New
PERPS_EVENT_VALUE.INTERACTION_TYPEentry:TPSL_ROE_SIGN_TOGGLED(tpsl_roe_sign_toggled)
- New
- Add
listedAt(epoch ms) toPerpsMarketDataandTerminalAssetMetadata, sourced from the Terminal API and normalized from either a numeric epoch value or an ISO 8601 string. Clients can use this field to surface recently added markets (e.g. markets listed within the last 30 days). (#9308) - Add recently viewed markets tracking to
PerpsController: (#9308)- New
recentlyViewedMarketspersisted state (per-network:testnet/mainnet), containing{ symbol, viewedAt }entries ordered newest-first and capped at 10. - New
recordMarketViewed(symbol)method — call when the user opens a market. Deduplicates and prepends the entry; no remote sync. - New
getRecentlyViewedMarkets()method — returns up to 10 symbol strings for the current network, filtered to entries within the last 24 hours, ordered newest-first. Returns[]when none qualify. - New
selectRecentlyViewedMarketsselector that applies the same TTL/limit/ordering logic for Redux subscribers. - New
PerpsControllerRecordMarketViewedActionandPerpsControllerGetRecentlyViewedMarketsActionmessenger action types.
- New
- Consolidate the Perps analytics contract so clients import a single source of truth from
@metamask/perps-controller(#9311)- Add five new
PerpsAnalyticsEventmembers:TransactionConsidered(Perp Transaction Considered),TradeQuoteReceived(Perp Trade Quote Received),SearchQuery(Perp Search Query),SearchResultTapped(Perp Search Result Tapped),SearchAbandoned(Perp Search Abandoned) - Add new
PERPS_EVENT_PROPERTYkeys:entry_point,discovery_source,perp_discovery_source,utm_source,utm_medium,utm_campaign,utm_content,utm_term,watchlisted,hl_fee_rate,bulk_action_id,environment_type,order_context,order_size_percent,limit_price_input_type,limit_price_input_preset,order_has_tp,order_has_sl,quote_latency_ms,error_reason,saved_order,default_payment_token,default_size_amount,default_leverage,default_auto_close,order_execution_latency_ms,screen_context,from_token,from_chain,to_token,to_chain,search_query,results_count,result_rank,mode,current_token,sort_field,sort_direction,filter_category,time_on_screen_ms - Add new
PERPS_EVENT_VALUEentries:INTERACTION_TYPE.{SORT_APPLIED, FILTER_APPLIED, SEARCH_RESULT_TAPPED, SEARCH_CHIP_TAPPED, SEARCH_SIGNAL_TILE_TAPPED, PAYMENT_TOKEN_SELECTOR_DISMISSED},ACTION.ABANDON_ORDER,BUTTON_CLICKED.{PLACE_ORDER, CLOSE, REDUCE_EXPOSURE},SCREEN_TYPE.{SEARCH_RESULTS_SHOWN, SEARCH_NO_RESULTS} - Add
PerpsAttributionContexttype andsetAttributionContext/getAttributionContext/clearAttributionContext/mergeAttributionContextonPerpsController(with matching messenger actions) for transient UTM attribution propagation - Extend
TrackingDatawithentryPoint,discoverySource,perpDiscoverySource,hlFeeRate; extendTPSLTrackingDatawithentryPoint,discoverySource,perpDiscoverySource; add optionaltrackingDatatoCancelOrderParams
- Add five new
- Add Perps Advanced Chart analytics constants to
PERPS_EVENT_PROPERTYandPERPS_EVENT_VALUEso mobile can import chart instrumentation keys from@metamask/perps-controllerinstead of maintaining a local mirror (#9221)- New
PERPS_EVENT_PROPERTYkeys:CHART_LIBRARY,ASSET_TYPE - New
PERPS_EVENT_VALUE.CHART_LIBRARYgroup:lightweight,advanced - New
PERPS_EVENT_VALUE.ASSET_TYPEgroup:spot,perp
- New
- Add
fast?: booleantoSubscribeOrderBookParams: when set totrue, the order book subscription uses Hyperliquid's fast l2Book mode (5 levels @ ~0.5 s cadence) instead of the default (20 levels @ ~2 s) (#9160)- No change to
#processOrderBookDataor cumulative-total math; callers opting intofast: truereceive up to 5 levels per side instead of 20.
- No change to
Changed
- Consolidate the Perps transaction analytics pipeline in
TradingService(#9311)- Emit a
status: 'submitted'event before the provider round-trip for trade (placeOrder), close (closePosition), cancel (cancelOrder) and risk-management (updatePositionTPSL) operations - Populate
metamask_feeon successfulflipPositiontrades fromtrackingData - Add
leveragetoPerp Position Close Transactionevent properties - Add
hl_fee_rateto trade and close events when present intrackingData; omit it entirely when unavailable - Generate a
bulk_action_idUUID forclosePositions/cancelOrdersand attach it to each per-item event and the batch summary event - Propagate
entry_point,discovery_source,perp_discovery_sourcefromtrackingDataonto trade/close/cancel/risk events; the legacysourcefield onTPSLTrackingDatais now deprecated
- Emit a
- On
subscribeToPricescalls withincludeMarketData: true(focused detail/ticket screens), thepricefield in eachPriceUpdateis now driven by the per-symbolactiveAssetCtxWebSocket stream (midPx, falling back tomarkPx) rather than the main-DEXallMidssnapshot, which Hyperliquid throttles to a ~5 s push cadence (#9160)- Price source selection is per-subscriber: focused (
includeMarketData: true) callbacks receive the fast-stream price; list/overview (includeMarketData: false) callbacks always receive the rawallMidsbaseline, even when both subscriber types share the same symbol. - The fast-stream price is preferred only while it is fresh (within a 10 s staleness window);
allMidstakes back over automatically once theactiveAssetCtxstream goes quiet. - A startup guard prevents any
'0'price from being emitted: ifactiveAssetCtxfires beforeallMidswith nomidPx/markPx, no notification is sent until a usable price arrives from either source. - No new WebSocket subscriptions are created;
activeAssetCtxwas already established forincludeMarketData: truesubscriptions.
- Price source selection is per-subscriber: focused (
- Bump
@nktkas/hyperliquidfrom^0.32.2to^0.33.1: adds support for thefastfield onl2Booksubscriptions (#9160)
1088.0.0
@metamask/accounts-controller 39.0.4
Changed
- Bump
@metamask/keyring-apifrom^23.1.0to^23.3.0(#9249) - Bump
@metamask/keyring-sdkfrom^2.1.1to^2.2.0(#9249) - Bump
@metamask/keyring-utilsfrom^3.2.1to^3.3.1(#9249) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349)
@metamask/assets-controller 10.0.1
Changed
- Bump
@metamask/transaction-controllerfrom^68.2.0to^68.2.2(#9337, #9349) - Bump
@metamask/accounts-controllerfrom^39.0.3to^39.0.4(#9349) - Bump
@metamask/assets-controllersfrom^109.2.2to^109.3.0(#9349) - Bump
@metamask/core-backendfrom^6.4.0to^6.5.0(#9349) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349) - Bump
@metamask/network-enablement-controllerfrom^5.4.0to^5.4.1(#9349) - Bump
@metamask/polling-controllerfrom^16.0.7to^16.0.8(#9349)
@metamask/assets-controllers 109.3.0
Added
- Snap account-asset enrichment via
getAccountAssetInfo; balance rows andAsset.extracarry chain-specific fields; exportisStellarClassicTrustlineInactiveForDisplayfor Stellar trustline UX (#8828)
Changed
- Bump
@metamask/keyring-apifrom^23.1.0to^23.3.0(#9249) - Bump
@metamask/transaction-controllerfrom^68.1.1to^68.2.2(#9253, #9337, #9349) - Bump
@metamask/multichain-account-servicefrom^11.0.0to^11.1.0(#9264) - Bump
@metamask/core-backendfrom^6.3.3to^6.5.0(#9312, #9349) - Bump
@metamask/accounts-controllerfrom^39.0.3to^39.0.4(#9349) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349) - Bump
@metamask/network-enablement-controllerfrom^5.4.0to^5.4.1(#9349) - Bump
@metamask/polling-controllerfrom^16.0.7to^16.0.8(#9349)
@metamask/bridge-controller 77.3.1
Changed
- Bump
@metamask/transaction-controllerfrom^68.2.0to^68.2.2(#9337, #9349) - Bump
@metamask/accounts-controllerfrom^39.0.3to^39.0.4(#9349) - Bump
@metamask/assets-controllerfrom^10.0.0to^10.0.1(#9349) - Bump
@metamask/assets-controllersfrom^109.2.2to^109.3.0(#9349) - Bump
@metamask/gas-fee-controllerfrom^26.2.3to^26.2.4(#9349) - Bump
@metamask/multichain-network-controllerfrom^3.2.0to^3.2.1(#9349) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349) - Bump
@metamask/polling-controllerfrom^16.0.7to^16.0.8(#9349)
@metamask/bridge-status-controller 74.0.1
Changed
- Bump
@metamask/bridge-controllerfrom^77.1.0to^77.3.1(#9318, #9326, #9349) - Bump
@metamask/transaction-controllerfrom^68.2.0to^68.2.2(#9337, #9349) - Bump
@metamask/accounts-controllerfrom^39.0.3to^39.0.4(#9349) - Bump
@metamask/gas-fee-controllerfrom^26.2.3to^26.2.4(#9349) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349) - Bump
@metamask/polling-controllerfrom^16.0.7to^16.0.8(#9349)
@metamask/core-backend 6.5.0
Added
- Add
AccountsApiClientsupport for the Accounts API/v6/multiaccount/balancesendpoint viafetchV6MultiAccountBalances/getV6MultiAccountBalancesQueryOptions, returning token balances plus optional DeFi positions and spot prices (new typesV6BalancesResponse,V6AccountBalancesEntry,V6BalanceItem,V6BalanceMetadata,V6TokenMetadata,V6VsCurrency) (#9302)
Changed
- Bump
@metamask/accounts-controllerfrom^39.0.3to^39.0.4(#9349)
@metamask/earn-controller 12.2.2
Changed
- Bump
@metamask/account-tree-controllerfrom^7.5.2to^7.5.3(#9231) - Bump
@metamask/keyring-apifrom^23.1.0to^23.3.0(#9249) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349)
@metamask/ens-controller 19.1.5
Changed
- Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349)
@metamask/gas-fee-controller 26.2.4
Changed
- Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349) - Bump
@metamask/polling-controllerfrom^16.0.7to^16.0.8(#9349)
@metamask/gator-permissions-controller 4.2.2
Changed
- Bump
@metamask/transaction-controllerfrom^68.1.1to^68.2.2(#9253, #9337, #9349) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349)
@metamask/money-account-balance-service 2.1.2
Changed
- Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349)
@metamask/money-account-upgrade-controller 2.2.1
Changed
- Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349)
@metamask/multichain-api-middleware 4.0.0
Added
- Add
MULTICHAIN_API.md, a reference for the Multichain API:wallet_createSessionand the other session methods, supported methods per namespace, error codes, and divergences from the current CAIP-25 spec (#9258)
Changed
- BREAKING: The
wallet_getSessionandwallet_createSessionhandlers now require agetCapabilitieshook ((params: { address: string }) => Promise<Record<Hex, Record<string, Json>>>) (#9294)WalletGetSessionHooksandWalletCreateSessionHooksnow include this hook, which must be provided when wiring up the handlers.
- The
wallet_getSessionandwallet_createSessionhandlers now derive the returnedsessionPropertiesviagetSessionProperties, hydrating the persisted session properties with aneip155Capabilitiesrecord that maps each permitted EVM account address to its per-chain capabilities resolved from thegetCapabilitieshook (#9294)wallet_getSessionnow always includes asessionPropertiesfield in its result (an empty object when there is no active session).
- Bump
@metamask/accounts-controllerfrom^39.0.2to^39.0.4(#9231, #9349) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349)
@metamask/multichain-network-controller 3.2.1
Changed
- Bump
@metamask/accounts-controllerfrom^39.0.3to^39.0.4(#9349) - Bump
@metamask/network-controllerfrom^33.0.0to^34.0.0(#9349)
@metamask/network-controller 34.0.0
Changed
- BREAKING: Drive RPC failover from the single
corePlatformRpcFailoverModeremote feature flag (#9175)- The flag is a string with three values:
disabled(failover off),enabled(divert to failover URLs when the primary endpoint is unavailable), andforced(Infura endpoints that have failover URLs route all traffic to those URLs, bypassing Infura entirely). Custom endpoints are unaffected, and the value defaults todisabledwhen the flag is absent or unrecognized. NetworkControllerno longer reads thewalletFrameworkRpcFailoverEnabledflag; theenabledmode replaces it. Update your remote feature flag configuration to setcorePlatformRpcFailoverMode.
- The flag is a string with three values:
Removed
- BREAKING: Remove the
NetworkController.enableRpcFailoverandNetworkController.disableRpcFailovermethods, theirNetworkController:enableRpcFailover/ `NetworkController:disab...
1087.0.0
@metamask/authenticated-user-storage 3.0.0
Added
- Add
PriceAlertPreferencetype, requiredpriceAlertsfield onNotificationPreferences, andDEFAULT_PRICE_ALERT_PREFERENCESconstant (#9316)
Changed
- BREAKING: Make
agenticClirequired onNotificationPreferences(previously optional on the type) (#9316) - Remove client-side backfill of
agenticCliandpriceAlertsingetNotificationPreferences; the API merges defaults on GET (#9316)
@metamask/money-account-upgrade-controller 2.2.0
Changed
@metamask/notification-services-controller 24.3.0
Added
- Add
DEFAULT_PRICE_ALERT_PREFERENCESand initializepriceAlertswhen building fresh notification preferences viaNotificationServicesController(#9316)- Re-export
DEFAULT_PRICE_ALERT_PREFERENCESfrom@metamask/authenticated-user-storage.
- Re-export
Changed
- Bump
@metamask/authenticated-user-storagefrom^2.1.0to^3.0.0(#9348)
1086.0.0
1085.0.0
@metamask/bridge-controller 77.3.0
Added
- Export
fetchBridgeQuoteStreamandappendFeesToQuotesfrom the package entry point (#9313)