Skip to content

Releases: MetaMask/core

1093.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Jul 08:55
0517284

@metamask/perps-controller 9.2.0

Added

  • Add optional description?: string to PerpsMarketData and TerminalAssetMetadata, exposing the human-readable asset description sourced from the Terminal API when available (#9334)
    • TerminalMarketService now reads the description field from Terminal API items (ignoring null/empty values) and includes it in per-symbol metadata.
    • MarketDataService.getMarketDataWithPrices merges the description into PerpsMarketData when the Terminal API backend (useTerminalApi) is enabled; markets without a Terminal description keep the field undefined.

1092.0.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 11:23
77651d9

@metamask/bridge-controller 77.3.2

Fixed

  • Fix Arc native token symbol from USDC-native to USDC (#9364)

1091.0.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 10:26
9ba82d3

@metamask/bridge-status-controller 74.0.2

Fixed

  • Only include sourceAssetId and destAssetId in 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

Choose a tag to compare

@github-actions github-actions released this 02 Jul 09:00
45a814f

@metamask/transaction-pay-controller 23.17.4

Fixed

  • Allow payment token selection without a local fiat rate for post-quote transactions (#9361)
    • updatePaymentToken threw Payment token not found when 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

Choose a tag to compare

@github-actions github-actions released this 01 Jul 21:57
99d4672

@metamask/perps-controller 9.1.0

Added

  • Add Auto Close TP/SL RoE sign toggle analytics constants to PERPS_EVENT_PROPERTY and PERPS_EVENT_VALUE so mobile and extension can import them from @metamask/perps-controller instead of local mirrors (#9322)
    • New PERPS_EVENT_PROPERTY key: ROE_SIGN (roe_sign)
    • New PERPS_EVENT_VALUE.INTERACTION_TYPE entry: TPSL_ROE_SIGN_TOGGLED (tpsl_roe_sign_toggled)
  • Add listedAt (epoch ms) to PerpsMarketData and TerminalAssetMetadata, 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 recentlyViewedMarkets persisted 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 selectRecentlyViewedMarkets selector that applies the same TTL/limit/ordering logic for Redux subscribers.
    • New PerpsControllerRecordMarketViewedAction and PerpsControllerGetRecentlyViewedMarketsAction messenger action types.
  • Consolidate the Perps analytics contract so clients import a single source of truth from @metamask/perps-controller (#9311)
    • Add five new PerpsAnalyticsEvent members: 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_PROPERTY keys: 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_VALUE entries: 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 PerpsAttributionContext type and setAttributionContext / getAttributionContext / clearAttributionContext / mergeAttributionContext on PerpsController (with matching messenger actions) for transient UTM attribution propagation
    • Extend TrackingData with entryPoint, discoverySource, perpDiscoverySource, hlFeeRate; extend TPSLTrackingData with entryPoint, discoverySource, perpDiscoverySource; add optional trackingData to CancelOrderParams
  • Add Perps Advanced Chart analytics constants to PERPS_EVENT_PROPERTY and PERPS_EVENT_VALUE so mobile can import chart instrumentation keys from @metamask/perps-controller instead of maintaining a local mirror (#9221)
    • New PERPS_EVENT_PROPERTY keys: CHART_LIBRARY, ASSET_TYPE
    • New PERPS_EVENT_VALUE.CHART_LIBRARY group: lightweight, advanced
    • New PERPS_EVENT_VALUE.ASSET_TYPE group: spot, perp
  • Add fast?: boolean to SubscribeOrderBookParams: when set to true, 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 #processOrderBookData or cumulative-total math; callers opting into fast: true receive up to 5 levels per side instead of 20.

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_fee on successful flipPosition trades from trackingData
    • Add leverage to Perp Position Close Transaction event properties
    • Add hl_fee_rate to trade and close events when present in trackingData; omit it entirely when unavailable
    • Generate a bulk_action_id UUID for closePositions / cancelOrders and attach it to each per-item event and the batch summary event
    • Propagate entry_point, discovery_source, perp_discovery_source from trackingData onto trade/close/cancel/risk events; the legacy source field on TPSLTrackingData is now deprecated
  • On subscribeToPrices calls with includeMarketData: true (focused detail/ticket screens), the price field in each PriceUpdate is now driven by the per-symbol activeAssetCtx WebSocket stream (midPx, falling back to markPx) rather than the main-DEX allMids snapshot, 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 raw allMids baseline, 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); allMids takes back over automatically once the activeAssetCtx stream goes quiet.
    • A startup guard prevents any '0' price from being emitted: if activeAssetCtx fires before allMids with no midPx/markPx, no notification is sent until a usable price arrives from either source.
    • No new WebSocket subscriptions are created; activeAssetCtx was already established for includeMarketData: true subscriptions.
  • Bump @nktkas/hyperliquid from ^0.32.2 to ^0.33.1: adds support for the fast field on l2Book subscriptions (#9160)

1088.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 17:24
7d5e4cc

@metamask/accounts-controller 39.0.4

Changed

  • Bump @metamask/keyring-api from ^23.1.0 to ^23.3.0 (#9249)
  • Bump @metamask/keyring-sdk from ^2.1.1 to ^2.2.0 (#9249)
  • Bump @metamask/keyring-utils from ^3.2.1 to ^3.3.1 (#9249)
  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)

@metamask/assets-controller 10.0.1

Changed

  • Bump @metamask/transaction-controller from ^68.2.0 to ^68.2.2 (#9337, #9349)
  • Bump @metamask/accounts-controller from ^39.0.3 to ^39.0.4 (#9349)
  • Bump @metamask/assets-controllers from ^109.2.2 to ^109.3.0 (#9349)
  • Bump @metamask/core-backend from ^6.4.0 to ^6.5.0 (#9349)
  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)
  • Bump @metamask/network-enablement-controller from ^5.4.0 to ^5.4.1 (#9349)
  • Bump @metamask/polling-controller from ^16.0.7 to ^16.0.8 (#9349)

@metamask/assets-controllers 109.3.0

Added

  • Snap account-asset enrichment via getAccountAssetInfo; balance rows and Asset.extra carry chain-specific fields; export isStellarClassicTrustlineInactiveForDisplay for Stellar trustline UX (#8828)

Changed

  • Bump @metamask/keyring-api from ^23.1.0 to ^23.3.0 (#9249)
  • Bump @metamask/transaction-controller from ^68.1.1 to ^68.2.2 (#9253, #9337, #9349)
  • Bump @metamask/multichain-account-service from ^11.0.0 to ^11.1.0 (#9264)
  • Bump @metamask/core-backend from ^6.3.3 to ^6.5.0 (#9312, #9349)
  • Bump @metamask/accounts-controller from ^39.0.3 to ^39.0.4 (#9349)
  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)
  • Bump @metamask/network-enablement-controller from ^5.4.0 to ^5.4.1 (#9349)
  • Bump @metamask/polling-controller from ^16.0.7 to ^16.0.8 (#9349)

@metamask/bridge-controller 77.3.1

Changed

  • Bump @metamask/transaction-controller from ^68.2.0 to ^68.2.2 (#9337, #9349)
  • Bump @metamask/accounts-controller from ^39.0.3 to ^39.0.4 (#9349)
  • Bump @metamask/assets-controller from ^10.0.0 to ^10.0.1 (#9349)
  • Bump @metamask/assets-controllers from ^109.2.2 to ^109.3.0 (#9349)
  • Bump @metamask/gas-fee-controller from ^26.2.3 to ^26.2.4 (#9349)
  • Bump @metamask/multichain-network-controller from ^3.2.0 to ^3.2.1 (#9349)
  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)
  • Bump @metamask/polling-controller from ^16.0.7 to ^16.0.8 (#9349)

@metamask/bridge-status-controller 74.0.1

Changed

  • Bump @metamask/bridge-controller from ^77.1.0 to ^77.3.1 (#9318, #9326, #9349)
  • Bump @metamask/transaction-controller from ^68.2.0 to ^68.2.2 (#9337, #9349)
  • Bump @metamask/accounts-controller from ^39.0.3 to ^39.0.4 (#9349)
  • Bump @metamask/gas-fee-controller from ^26.2.3 to ^26.2.4 (#9349)
  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)
  • Bump @metamask/polling-controller from ^16.0.7 to ^16.0.8 (#9349)

@metamask/core-backend 6.5.0

Added

  • Add AccountsApiClient support for the Accounts API /v6/multiaccount/balances endpoint via fetchV6MultiAccountBalances / getV6MultiAccountBalancesQueryOptions, returning token balances plus optional DeFi positions and spot prices (new types V6BalancesResponse, V6AccountBalancesEntry, V6BalanceItem, V6BalanceMetadata, V6TokenMetadata, V6VsCurrency) (#9302)

Changed

  • Bump @metamask/accounts-controller from ^39.0.3 to ^39.0.4 (#9349)

@metamask/earn-controller 12.2.2

Changed

  • Bump @metamask/account-tree-controller from ^7.5.2 to ^7.5.3 (#9231)
  • Bump @metamask/keyring-api from ^23.1.0 to ^23.3.0 (#9249)
  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)

@metamask/ens-controller 19.1.5

Changed

  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)

@metamask/gas-fee-controller 26.2.4

Changed

  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)
  • Bump @metamask/polling-controller from ^16.0.7 to ^16.0.8 (#9349)

@metamask/gator-permissions-controller 4.2.2

Changed

  • Bump @metamask/transaction-controller from ^68.1.1 to ^68.2.2 (#9253, #9337, #9349)
  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)

@metamask/money-account-balance-service 2.1.2

Changed

  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)

@metamask/money-account-upgrade-controller 2.2.1

Changed

  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)

@metamask/multichain-api-middleware 4.0.0

Added

  • Add MULTICHAIN_API.md, a reference for the Multichain API: wallet_createSession and the other session methods, supported methods per namespace, error codes, and divergences from the current CAIP-25 spec (#9258)

Changed

  • BREAKING: The wallet_getSession and wallet_createSession handlers now require a getCapabilities hook ((params: { address: string }) => Promise<Record<Hex, Record<string, Json>>>) (#9294)
    • WalletGetSessionHooks and WalletCreateSessionHooks now include this hook, which must be provided when wiring up the handlers.
  • The wallet_getSession and wallet_createSession handlers now derive the returned sessionProperties via getSessionProperties, hydrating the persisted session properties with an eip155Capabilities record that maps each permitted EVM account address to its per-chain capabilities resolved from the getCapabilities hook (#9294)
    • wallet_getSession now always includes a sessionProperties field in its result (an empty object when there is no active session).
  • Bump @metamask/accounts-controller from ^39.0.2 to ^39.0.4 (#9231, #9349)
  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)

@metamask/multichain-network-controller 3.2.1

Changed

  • Bump @metamask/accounts-controller from ^39.0.3 to ^39.0.4 (#9349)
  • Bump @metamask/network-controller from ^33.0.0 to ^34.0.0 (#9349)

@metamask/network-controller 34.0.0

Changed

  • BREAKING: Drive RPC failover from the single corePlatformRpcFailoverMode remote 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), and forced (Infura endpoints that have failover URLs route all traffic to those URLs, bypassing Infura entirely). Custom endpoints are unaffected, and the value defaults to disabled when the flag is absent or unrecognized.
    • NetworkController no longer reads the walletFrameworkRpcFailoverEnabled flag; the enabled mode replaces it. Update your remote feature flag configuration to set corePlatformRpcFailoverMode.

Removed

  • BREAKING: Remove the NetworkController.enableRpcFailover and NetworkController.disableRpcFailover methods, their NetworkController:enableRpcFailover / `NetworkController:disab...
Read more

1087.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 16:58
29840ad

@metamask/authenticated-user-storage 3.0.0

Added

  • Add PriceAlertPreference type, required priceAlerts field on NotificationPreferences, and DEFAULT_PRICE_ALERT_PREFERENCES constant (#9316)

Changed

  • BREAKING: Make agenticCli required on NotificationPreferences (previously optional on the type) (#9316)
  • Remove client-side backfill of agenticCli and priceAlerts in getNotificationPreferences; the API merges defaults on GET (#9316)

@metamask/money-account-upgrade-controller 2.2.0

Changed

  • Bump @metamask/authenticated-user-storage from ^2.0.0 to ^3.0.0 (#9220, #9348)

@metamask/notification-services-controller 24.3.0

Added

  • Add DEFAULT_PRICE_ALERT_PREFERENCES and initialize priceAlerts when building fresh notification preferences via NotificationServicesController (#9316)
    • Re-export DEFAULT_PRICE_ALERT_PREFERENCES from @metamask/authenticated-user-storage.

Changed

  • Bump @metamask/authenticated-user-storage from ^2.1.0 to ^3.0.0 (#9348)

1086.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 13:25
35ef882

@metamask/transaction-controller 68.2.1

Changed

  • Bump @metamask/core-backend from ^6.3.3 to ^6.4.0 (#9312)

Fixed

  • Resimulate the latest transaction data instead of stale data captured when resimulation started, fixing flickering simulation results after a transaction is updated (#9287)

1085.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 09:37
57118d3

@metamask/bridge-controller 77.3.0

Added

  • Export fetchBridgeQuoteStream and appendFeesToQuotes from the package entry point (#9313)

1084.0.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 17:59
90137d6

@metamask/bridge-controller 77.2.0

Added

  • Add DiscountType and expose quote.feeData.metabridge.discountType in quote validation (#9305)

Changed

  • Bump @metamask/assets-controller from ^9.1.0 to ^10.0.0 (#9312)