Skip to content

Releases: MetaMask/core

967.0.0

07 May 17:23
8bc0a07

Choose a tag to compare

@metamask/bridge-controller 72.0.0

Added

  • BREAKING: Add support for BatchSell quotes (#8711)
    • change quoteRequest's type from QuoteRequest to QuoteRequest[]
    • allow callers to update specific quote requests within a batch by adding 2 optional parameters to updateBridgeQuoteRequest: quoteRequestIndex and quoteRequestCount
    • export isValidBatchSellQuoteRequest request validator
    • fetch multiple swap quotes through a single SSE stream and append quoteRequestIndex to link each one to its originating quoteRequest
    • implement selectBatchSellQuotes selector which returns the recommended quote for each batched quote, and their aggregated fees and received amounts
    • trace BatchSell quote fetch operations in Sentry using label Batch Sell Quotes Fetched

Changed

  • Bump @metamask/gas-fee-controller from ^26.1.1 to ^26.2.0 (#8722)
  • Bump @metamask/transaction-controller from ^65.1.0 to ^65.2.0 (#8722)

@metamask/bridge-status-controller 71.1.1

Changed

  • Bump @metamask/bridge-controller from ^71.0.0 to ^72.0.0 (#8706, #8721, #8737)
  • Bump @metamask/transaction-controller from ^65.0.0 to ^65.2.0 (#8691, #8722)
  • Bump @metamask/accounts-controller from ^37.2.0 to ^38.0.0 (#8665)
  • Bump @metamask/messenger from ^1.1.1 to ^1.2.0 (#8632)
  • Bump @metamask/keyring-controller from ^25.2.0 to ^25.5.0 (#8634, #8665, #8722)
  • Bump @metamask/network-controller from ^30.0.1 to ^30.1.0 (#8636)
  • Bump @metamask/gas-fee-controller from ^26.1.1 to ^26.2.0 (#8722)

Fixed

  • When submitIntent records bridge history keyed by orderUid, pass originalTransactionId at the top level to #addTxToHistory so getInitialHistoryItem links the history item to the synthetic TransactionController entry instead of incorrectly using orderUid (#8655)

@metamask/transaction-pay-controller 22.0.1

Changed

  • Bump @metamask/bridge-controller from ^71.1.1 to ^72.0.0 (#8737)

966.0.0

07 May 13:43
e006811

Choose a tag to compare

@metamask/transaction-pay-controller 22.0.0

Changed

  • BREAKING: Re-parse required tokens when asset state changes (#8714)
    • Adds AssetsControllerStateChangeEvent, CurrencyRateStateChange, TokenRatesControllerStateChangeEvent, and TokensControllerStateChangeEvent to AllowedEvents.
    • Consumers must grant these events when creating the controller messenger.
  • Bump @metamask/gas-fee-controller from ^26.1.1 to ^26.2.0 (#8722)
  • Bump @metamask/transaction-controller from ^65.1.0 to ^65.2.0 (#8722)

Fixed

  • Fix fiat strategy never being selected by routing fiat payment method through getStrategyOrder and allowing quote retrieval when no crypto payment token is set (#8720)

965.0.0

06 May 16:03
a83b774

Choose a tag to compare

@metamask/passkey-controller 2.0.1

Changed

  • PasskeyController verifies registration and authentication responses with requireUserVerification: true, so the WebAuthn user verification (UV) flag must be set; assertions with user presence only no longer pass verification (#8696)

Fixed

  • generateAuthenticationOptions now sets userVerification: 'required' so client WebAuthn requests align with server-side verification requirements and do not fail on authenticators that skip UV when set to 'preferred' (#8696)

964.0.0

06 May 15:06
22e494c

Choose a tag to compare

@metamask/account-tree-controller 7.3.0

Added

  • Expose missing public AccountTreeController methods through its messenger (#8716)
    • The following actions are now available:
      • AccountTreeController:init
      • AccountTreeController:reinit
    • Corresponding action types are available as well.

Changed

  • Bump @metamask/keyring-controller from ^25.4.0 to ^25.5.0 (#8722)
  • Bump @metamask/multichain-account-service from ^8.0.1 to ^9.0.0 (#8722)

@metamask/gas-fee-controller 26.2.0

Added

  • Expose missing public GasFeeController methods through its messenger (#8699)
    • The following actions are now available:
      • GasFeeController:enableNonRPCGasFeeApis
      • GasFeeController:disableNonRPCGasFeeApis
    • Corresponding action types are available as well.

Changed

  • Bump @metamask/messenger from ^1.1.0 to ^1.2.0 (#8373, #8632)
  • Add missing @metamask/messenger dependency (#8318, #8364)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)
  • Bump @metamask/base-controller from ^9.0.1 to ^9.1.0 (#8457)
  • Bump @metamask/network-controller from ^30.0.1 to ^30.1.0 (#8636)

@metamask/keyring-controller 25.5.0

Added

  • Expose missing public KeyringController methods through its messenger (#8674)
    • The following actions are now available:
      • KeyringController:changePassword,
      • KeyringController:exportAccount,
      • KeyringController:exportEncryptionKey,
      • KeyringController:getAccountKeyringType,
      • KeyringController:importAccountWithStrategy,
      • KeyringController:setLocked,
      • KeyringController:submitEncryptionKey,
      • KeyringController:submitPassword,
      • KeyringController:verifyPassword,
    • Corresponding action types are available as well.

@metamask/money-account-controller 0.3.0

Added

  • Expose missing MoneyAccountController:init action through its messenger (#8718)
    • Corresponding action type is available as well.

Changed

  • Bump @metamask/keyring-controller from ^25.4.0 to ^25.5.0 (#8722)

@metamask/multichain-account-service 9.0.0

Added

  • Expose missing MultichainAccountService:init action through its messenger (#8717)
    • Corresponding action type is available as well.
  • Filter out KeyringController locked errors from sentry reporting (#8619)

Changed

  • BREAKING: Replace KeyringController:withKeyring with KeyringController:withKeyringV2 for the EVM account provider (#8491)
  • Bump @metamask/accounts-controller from ^37.1.1 to ^38.0.0 (#8363, #8665)
  • Bump @metamask/keyring-controller from ^25.1.1 to ^25.5.0 (#8363, #8634, #8665, #8722)
  • Bump @metamask/messenger from ^1.0.0 to ^1.2.0 (#8364, #8373, #8632)
  • Bump @metamask/base-controller from ^9.0.1 to ^9.1.0 (#8457)
  • Bump @metamask/account-api from ^1.0.0 to ^1.0.4 (#8464, #8647)
  • Bump @metamask/eth-snap-keyring from ^19.0.0 to ^22.0.1 (#8464, #8584, #8647)
  • Bump @metamask/keyring-api from ^21.6.0 to ^23.1.0 (#8464, #8647)
  • Bump @metamask/keyring-internal-api from ^10.0.0 to ^11.0.1 (#8464, #8584, #8647)
  • Bump @metamask/keyring-snap-client from ^8.2.0 to ^9.0.2 (#8464, #8647)
  • Bump @metamask/keyring-utils from ^3.1.0 to ^3.2.1 (#8703)

@metamask/permission-controller 13.1.0

Added

  • Expose missing public PermissionController methods through its messenger (#8675)
    • The following actions are now available:
      • PermissionController:acceptPermissionsRequest,
      • PermissionController:rejectPermissionsRequest,
      • PermissionController:revokePermission,
      • PermissionController:updatePermissionsByCaveat,
      • PermissionController:getPermission
    • Corresponding action types are available as well.

@metamask/transaction-controller 65.2.0

Added

  • Expose missing public TransactionController methods through its messenger (#8690)
    • The following actions are now available:
      • TransactionController:updateSecurityAlertResponse
      • TransactionController:updatePreviousGasParams
      • TransactionController:updateRequiredTransactionIds
      • TransactionController:updateSelectedGasFeeToken
      • TransactionController:updateTransactionGasFees
    • Corresponding action types are available as well.

Changed

  • Bump @metamask/gas-fee-controller from ^26.1.1 to ^26.2.0 (#8722)

963.0.0

06 May 12:31
024e07f

Choose a tag to compare

@metamask/assets-controller 6.4.0

Added

  • Expose missing AssetsController:setSelectedCurrency action through its messenger (#8719)
    • Corresponding action type is available as well.

Changed

  • Bump @metamask/transaction-controller from ^65.0.0 to ^65.1.0 (#8691)
  • Bump @metamask/network-enablement-controller from ^5.0.2 to ^5.1.0 (#8665)
  • Bump @metamask/keyring-controller from ^25.3.0 to ^25.4.0 (#8665)
  • Bump @metamask/accounts-controller from ^37.2.0 to ^38.0.0 (#8665)
  • Bump @metamask/account-tree-controller from ^7.1.0 to ^7.2.0 (#8665)
  • Bump @metamask/assets-controllers from ^105.1.0 to ^106.0.0 (#8721)

@metamask/assets-controllers 106.0.0

Added

  • Add TokenListService, a shared service for fetching and caching the token list per chain (#8700)
    • Wraps @tanstack/query-core to cache results in-memory for 4 hours per chain ID, matching TokenListController's existing threshold.
    • Multiple controllers sharing the same TokenListService instance share the same cache: only one HTTP request is made per chain per 4-hour window regardless of how many callers invoke fetchTokensByChainId.
    • Exported from the package as TokenListService and buildTokenListMap.
  • Add @tanstack/query-core ^5.62.16 as a direct dependency (#8700)
  • Expose missing public AccountTrackerController methods through its messenger (#8693)
    • The following actions are now available:
      • AccountTrackerController:refresh
      • AccountTrackerController:syncBalanceWithAddresses
    • Corresponding action types are available as well.
  • Expose missing public TokenBalancesController methods through its messenger (#8693)
    • The following actions are now available:
      • TokenBalancesController:updateBalances
      • TokenBalancesController:resetState
    • Corresponding action types are available as well.

Changed

  • BREAKING: TokenDetectionController now requires a tokenListService: TokenListService constructor option (#8700)
    • Token list data is fetched directly from TokenListService instead of reading TokenListController state on each detection pass.
    • GetTokenListState has been removed from AllowedActions and TokenListStateChange has been removed from AllowedEvents on TokenDetectionControllerMessenger.
  • BREAKING: TokensController now requires a tokenListService: TokenListService constructor option (#8700)
    • TokenListStateChange has been removed from AllowedEvents on TokensControllerMessenger.
    • Token name and rwaData enrichment now happens once at controller initialization instead of reactively on every TokenListController:stateChange event.
  • Bump @metamask/transaction-controller from ^65.0.0 to ^65.1.0 (#8691)
  • Switch the default mUSD asset from upfront allTokens state seeding to detection-based discovery on Ethereum mainnet (0x1), Linea (0xe708), and Monad mainnet (0x8f) (#8688)
    • TokenDetectionController now merges mUSD into the in-memory token list cache for these chains so it is treated as a regular detection candidate, replacing the previous start()-time TokensController:addTokens call and the per-event re-seed runs.
    • TokenBalancesController schedules mUSD for import on the same chains even when the Accounts API returns a zero balance, so users without a current mUSD balance still see the token.
    • Drops Monad testnet (0x279f) from the default mUSD chain list.
  • Bump @metamask/network-enablement-controller from ^5.0.2 to ^5.1.0 (#8665)
  • Bump @metamask/keyring-controller from ^25.3.0 to ^25.4.0 (#8665)
  • Bump @metamask/accounts-controller from ^37.2.0 to ^38.0.0 (#8665)
  • Bump @metamask/account-tree-controller from ^7.1.0 to ^7.2.0 (#8665)

Removed

  • TokenDetectionController no longer restarts token detection when TokenListController publishes a stateChange event (#8700)
    • Detection is still triggered on wallet unlock, account change, network change, and preference changes; the extra restart that occurred whenever TokenListController refreshed its cache is gone.
  • Stop seeding mUSD directly into TokensController state and remove the related event subscriptions (#8688)
    • TokensController no longer subscribes to KeyringController:unlock, AccountsController:accountAdded, AccountsController:selectedEvmAccountChange, NetworkController:networkAdded, or NetworkController:stateChange for mUSD seeding purposes.
    • TokensControllerMessenger no longer requires NetworkControllerNetworkAddedEvent, AccountsControllerAccountAddedEvent, or KeyringControllerUnlockEvent as allowed events.
    • Detection-based discovery (see Changed) covers the same user-facing behavior on supported chains.

@metamask/bridge-controller 71.1.1

Changed

  • Bump @metamask/assets-controller from ^6.3.0 to ^6.4.0 (#8721)
  • Bump @metamask/assets-controllers from ^105.1.0 to ^106.0.0 (#8721)

@metamask/transaction-pay-controller 21.1.0

Added

  • Allow EIP-7702 authorizations from accounts in the Money keyring (#8687)
  • Implement fiat strategy submit flow with order polling and relay execution (#8347)

Changed

  • Bump @metamask/bridge-controller from ^71.0.0 to ^71.1.1 (#8706, #8721)
  • Bump @metamask/transaction-controller from ^65.0.0 to ^65.1.0 (#8691)
  • Bump @metamask/ramps-controller from ^13.2.0 to ^13.3.0 (#8698)
  • Bump @metamask/assets-controller from ^6.3.0 to ^6.4.0 (#8721)
  • Bump @metamask/assets-controllers from ^105.1.0 to ^106.0.0 (#8721)

962.0.0

06 May 10:26
e22b7ae

Choose a tag to compare

@metamask/gator-permissions-controller 4.1.0

Added

  • Add payee rule decoding for execution permissions, extracting allowed recipient addresses from AllowedTargetsEnforcer (native token) and AllowedCalldataEnforcer (ERC-20 token) caveats (#8668)
  • Add redeemer rule decoding for execution permissions, extracting addresses from RedeemerEnforcer caveats (#8537)
  • Add native-token-allowance and erc20-token-allowance execution permission type decoding (#8553)

Changed

  • Use decodeRedeemerTerms from @metamask/delegation-core instead of a local implementation (#8537)
  • Bump @metamask/delegation-core from ^0.2.0 to ^1.1.0 (#8537)
  • Bump @metamask/transaction-controller from ^64.2.0 to ^65.1.0 (#8482, #8585, #8613, #8691)
  • Bump @metamask/messenger from ^1.1.1 to ^1.2.0 (#8632)
  • Bump @metamask/network-controller from ^30.0.1 to ^30.1.0 (#8636)

961.0.0

06 May 09:45
4a766a9

Choose a tag to compare

@metamask/perps-controller 6.0.0

Changed

  • BREAKING: Rename AccountState.availableBalance to spendableBalance and AccountState.availableToTradeBalance to withdrawableBalance for clearer semantics across abstraction modes (#8678)
  • Mode-aware spot fold: addSpotBalanceToAccountState now folds free spot USDC into both spendableBalance and withdrawableBalance for Unified/Portfolio modes, while Standard/DEX-abstraction modes keep spot separate (#8678)
  • Add throttled WS-driven userAbstraction refresh so HL-web mode flips propagate back without requiring a restart or account switch (#8678)
  • Fix position direction display for flipped positions (#8707)

960.0.0

06 May 06:51
8f9effb

Choose a tag to compare

@metamask/bridge-controller 71.1.0

Added

  • Add optional batchSellDestStablecoins chain-level feature flag to bridge configuration (#8705)

Changed

  • Bump @metamask/transaction-controller from ^65.0.0 to ^65.1.0 (#8691)
  • Bump @metamask/multichain-network-controller from ^3.0.6 to ^3.1.0 (#8665)
  • Bump @metamask/accounts-controller from ^37.2.0 to ^38.0.0 (#8665)
  • Bump @metamask/assets-controller from ^6.2.1 to ^6.3.0 (#8661)
  • Bump @metamask/assets-controllers from ^105.0.0 to ^105.1.0 (#8661)
  • Bump @metamask/keyring-api from ^23.0.1 to ^23.1.0 (#8647)
  • Bump @metamask/messenger from ^1.1.1 to ^1.2.0 (#8632)
  • Bump @metamask/network-controller from ^30.0.1 to ^30.1.0 (#8636)

959.0.0

05 May 17:12
54e3c0e

Choose a tag to compare

@metamask/ramps-controller 13.3.0

Changed

  • Bump @metamask/messenger from ^1.1.1 to ^1.2.0 (#8632)
  • RampsService routes RampsEnvironment.Development to dev-api base URLs; regions requests in development omit the -cache hostname segment used in staging and production (#8574)

Fixed

  • Tag circuit-breaker errors in RampsController with a stable CIRCUIT_BREAKER_OPEN error key so clients can localize the fallback copy without depending on internal Cockatiel text (#8596).

958.0.0

05 May 11:26
7b779af

Choose a tag to compare

@metamask/transaction-controller 65.1.0

Added

  • Allow EIP-7702 authorizations from accounts in the Money keyring (#8687).
  • Export decodeAuthorizationSignature utility that decodes a 65-byte EIP-7702 authorization signature into RLP-canonical r, s, and yParity (#8656)
    • All eth_sendRawTransaction failures are prefixed RPC submit: for failure-surface attribution in error metrics
  • Add revert?: RevertData field to TransactionMeta exposing decoded revert reason and raw data from gas estimation, simulation, and receipt replay (#8589)

Changed

  • Bump @metamask/accounts-controller from ^37.2.0 to ^38.0.0 (#8665)
  • Bump @metamask/messenger from ^1.1.1 to ^1.2.0 (#8632)
  • Bump @metamask/network-controller from ^30.0.1 to ^30.1.0 (#8636)