Skip to content

Releases: MetaMask/core

1029.0.0

10 Jun 10:00
138b89d

Choose a tag to compare

@metamask/bridge-controller 75.1.0

Added

  • Add UNKNOWN to FeatureId enum (#9071)

1028.0.0

09 Jun 19:07
90658f7

Choose a tag to compare

@metamask/bridge-controller 75.0.0

Added

  • Add QUICK_BUY_FOLLOW_TRADING, QUICK_BUY_TOKEN_DETAILS, BATCH_SELL and UNIFIED_SWAP_BRIDGE to FeatureId enum (#8964)
  • Update metrics schema with batch_id property (#8964)
  • Add ARC network support (#9007)
    • Add ARC into constants ALLOWED_BRIDGE_CHAIN_IDS, SWAPS_TOKEN_OBJECT and NETWORK_TO_NAME_MAP

Changed

  • BREAKING: require all events to have the feature_id property (#8964)
  • BREAKING: require FeatureId argument when calling BridgeController:fetchQuotes (#8964)
  • Rename FeatureIds to match segment property conventions (#8964)
    • quickBuy to quick_buy_follow_trading and quick_buy_token_details
    • dappSwap to dapp_swap
  • Bump @metamask/accounts-controller from ^39.0.0 to ^39.0.1 (#9058)
  • Bump @metamask/assets-controller from ^8.3.2 to ^8.3.3 (#9058)
  • Bump @metamask/assets-controllers from ^108.5.0 to ^108.6.0 (#9058)
  • Bump @metamask/controller-utils from ^12.1.0 to ^12.1.1 (#9058)
  • Bump @metamask/transaction-controller from ^67.0.0 to ^67.1.0 (#9066)

1027.0.0

09 Jun 14:06
dcf8a42

Choose a tag to compare

@metamask/account-tree-controller 7.5.2

Changed

  • Bump @metamask/accounts-controller from ^39.0.0 to ^39.0.1 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)
  • Bump @metamask/multichain-account-service from ^10.0.2 to ^10.0.3 (#9058)

@metamask/accounts-controller 39.0.1

Changed

  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/approval-controller 9.0.2

Changed

  • 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)

@metamask/assets-controller 8.3.3

Changed

  • Bump @metamask/network-enablement-controller from ^5.2.0 to ^5.3.0 (#9003)
  • Bump @metamask/transaction-controller from ^66.0.1 to ^67.0.0 (#9021)
  • Bump @metamask/account-tree-controller from ^7.5.1 to ^7.5.2 (#9058)
  • Bump @metamask/accounts-controller from ^39.0.0 to ^39.0.1 (#9058)
  • Bump @metamask/assets-controllers from ^108.5.0 to ^108.6.0 (#9058)
  • Bump @metamask/controller-utils from ^12.1.0 to ^12.1.1 (#9058)
  • Bump @metamask/core-backend from ^6.3.2 to ^6.3.3 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/assets-controllers 108.6.0

Added

  • Add isDeprecated option to TokenRatesController constructor (#9033)
    • When isDeprecated() returns true, no network requests are sent and marketData is reset to {} at construction and at every entry point (updateExchangeRates, _executePoll, TokensController:stateChange, and NetworkController:stateChange), so no stale rates remain in state.
    • The function is re-evaluated on each entry point so it can be toggled at runtime without reconstructing the controller.
  • Add isDeprecated option to TokenBalancesController constructor (#9033)
    • When isDeprecated() returns true, no network requests are sent and tokenBalances is reset to {} at construction and at every entry point (updateBalances, _executePoll, TokensController:stateChange, NetworkController:stateChange, KeyringController:accountRemoved, AccountsController:selectedEvmAccountChange, and the AccountActivityService events), so no stale balances remain in state.
    • The function is re-evaluated on each entry point so it can be toggled at runtime without reconstructing the controller.
  • Add isDeprecated option to AccountTrackerController constructor (#9033)
    • When isDeprecated() returns true, no network requests are sent and accountsByChainId is reset to {} at construction and at every entry point (refresh, refreshAddresses, _executePoll, syncBalanceWithAddresses, updateNativeBalances, and updateStakedBalances), so no stale balances remain in state.
    • The function is re-evaluated on each entry point so it can be toggled at runtime without reconstructing the controller.

Changed

  • Bump @metamask/network-enablement-controller from ^5.2.0 to ^5.3.0 (#9003)
  • Bump @metamask/transaction-controller from ^66.0.1 to ^67.0.0 (#9021)
  • Bump @metamask/account-tree-controller from ^7.5.1 to ^7.5.2 (#9058)
  • Bump @metamask/accounts-controller from ^39.0.0 to ^39.0.1 (#9058)
  • Bump @metamask/approval-controller from ^9.0.1 to ^9.0.2 (#9058)
  • Bump @metamask/controller-utils from ^12.1.0 to ^12.1.1 (#9058)
  • Bump @metamask/core-backend from ^6.3.2 to ^6.3.3 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)
  • Bump @metamask/multichain-account-service from ^10.0.2 to ^10.0.3 (#9058)
  • Bump @metamask/storage-service from ^1.0.1 to ^1.0.2 (#9058)

@metamask/bridge-status-controller 72.0.3

Changed

  • Bump @metamask/transaction-controller from ^66.0.1 to ^67.0.0 (#9021)
  • Bump @metamask/bridge-controller from ^73.2.1 to ^74.0.0 (#9045)
  • Bump @metamask/accounts-controller from ^39.0.0 to ^39.0.1 (#9058)
  • Bump @metamask/controller-utils from ^12.1.0 to ^12.1.1 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/claims-controller 0.5.3

Changed

  • Bump @metamask/controller-utils from ^12.1.0 to ^12.1.1 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/config-registry-controller 0.4.1

Changed

  • Bump @metamask/remote-feature-flag-controller from ^4.2.1 to ^4.2.2 (#8986)
  • Bump @metamask/controller-utils from ^12.1.0 to ^12.1.1 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/controller-utils 12.1.1

Changed

  • Update NetworkNickname to match latest client overrides (#9005)

@metamask/core-backend 6.3.3

Changed

  • Bump @metamask/accounts-controller from ^39.0.0 to ^39.0.1 (#9058)
  • Bump @metamask/controller-utils from ^12.1.0 to ^12.1.1 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/delegation-controller 3.0.2

Changed

  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/keyring-controller 27.0.0

Changed

  • BREAKING: exportSeedPhrase and exportAccount now take Credentials ({ password } | { encryptionKey, encryptionSalt? }) instead of a bare password string (#8996)

Fixed

  • Automatically remove and destroy non-primary keyrings whose last account is removed during a withKeyring or withKeyringV2 callback (#8951)
    • Previously, draining a keyring of all its accounts via these APIs left an empty keyring entry in state.keyrings and persisted it in the vault.
    • Pre-existing empty keyrings (e.g. those created intentionally via addNewKeyring without subsequent account creation) are still preserved, matching the behavior of removeAccount.
    • The primary keyring is never auto-removed, even if drained; this preserves the existing removeAccount invariant against losing the primary keyring.

@metamask/money-account-controller 0.3.3

Changed

  • Bump @metamask/accounts-controller from ^39.0.0 to ^39.0.1 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/money-account-upgrade-controller 2.0.4

Changed

  • Bump @metamask/delegation-controller from ^3.0.1 to ^3.0.2 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/multichain-account-service 10.0.3

Changed

  • Bump @metamask/accounts-controller from ^39.0.0 to ^39.0.1 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)
  • Bump @metamask/snap-account-service from ^0.3.0 to ^0.3.1 (#9058)

@metamask/notification-services-controller 24.1.3

Changed

  • Bump @metamask/controller-utils from ^12.1.0 to ^12.1.1 (#9058)
  • Bump @metamask/keyring-controller from ^26.0.0 to ^27.0.0 (#9058)

@metamask/profile-metrics-controller 3.2.0

Added

  • Add proof of ownership API wiring pre-requisites (#8974)
    • Add ProfileMetricsService:fetchNonces messenger action wrapping POST /api/v2/nonce/batch.
    • Add optional proof field on accounts submitted via ProfileMetricsService:submitMetrics so that the auth API can use it to mark accounts as verified: true.

Changed

Read more

1026.0.0

08 Jun 17:48
ce9d65b

Choose a tag to compare

@metamask/bridge-controller 74.0.0

Added

  • BREAKING: Add required stxEnabled parameter to updateBatchSellTrades, fetchBatchSellTrades, and formatBatchSellTradesRequest. The flag is sent to the obtainGaslessBatch API so the backend can estimate gas costs more precisely when Smart Transactions are enabled. (#9036)

Changed

  • Bump @metamask/transaction-controller from ^66.0.1 to ^67.0.0 (#9021)

1025.0.0

08 Jun 16:42
2370e45

Choose a tag to compare

@metamask/perps-controller 8.0.0

Added

  • Centralise market category classification so consumers share one model instead of re-deriving it per client (#9009)
    • Export getMarketTypeFilter (resolves a market to its UI category filter with singular values aligned to MarketCategory) and isHip3Market. getMarketTypeFilter and matchesCategory treat a marketSource DEX id as a HIP-3 signal consistently, so partial (route-param) markets classify the same way in both.
    • Export the pure matchesCategory and applyMarketFilters helpers (moved from MarketDataService).

Changed

  • BREAKING: Align MarketTypeFilter and MARKET_CATEGORIES values with MarketCategory singular values (#9009)
    • Replace stocks with stock, indices with index, etfs with etf, and commodities with commodity.
  • Reclassify xyz:CBRS (Cerebras) from stock to pre-ipo and add xyz:IPOP (Quantinuum) as pre-ipo in HIP3_ASSET_MARKET_TYPES, so all three Pre-IPO Perpetual markets on trade.xyz (CBRS, SPCX, IPOP) display under the Pre-IPO category (#9038)

@metamask/transaction-pay-controller 23.3.0

Changed

  • Fix fiat moneyAccountDeposit failing after on-ramp settlement by adding getAmountData callback for calldata re-encoding, correcting wallet address, quote amount, slippage validation, and switching to a three-phase relay flow with fee-as-buffer strategy; simple deposits (Perps, Predict) skip to a single EXACT_INPUT relay quote for cheaper fees (#8987)

1024.0.0

08 Jun 14:36
e757a36

Choose a tag to compare

@metamask/seedless-onboarding-controller 10.0.1

Added

  • Expose runMigrations as a messenger action (SeedlessOnboardingController:runMigrations) (#9031)

1023.0.0

08 Jun 03:50
cf43bd7

Choose a tag to compare

@metamask/analytics-controller 1.1.1

Fixed

  • Clear persisted analytics event queue entries after the delivery callback runs, including when the callback reports an error. (#8934)

1022.0.0

05 Jun 15:59
6b80d59

Choose a tag to compare

@metamask/transaction-controller 67.0.0

Changed

  • BREAKING: Remove deprecated TransactionController constructor options and unused hooks, and replace them with direct messenger calls (#8983)
    • Removed options: disableHistory, disableSendFlowHistory, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, pendingTransactions, securityProviderRequest, sign, transactionHistoryLimit
    • Removed hooks: afterSign, afterSimulate, getAdditionalSignArguments
    • Moved hook: isTimeoutEnabled is now a root constructor option instead of a hook
    • Removed types: AfterSimulateHook, PendingTransactionOptions, SecurityProviderRequest; AfterAddHook parameter skipSimulation removed
    • Added required AllowedActions: GasFeeController:fetchGasFeeEstimates, KeyringController:signTransaction, NetworkController:getEIP1559Compatibility, NetworkController:getNetworkClientRegistry, NetworkController:getState
    • Removed resubmit logic from PendingTransactionTracker

@metamask/transaction-pay-controller 23.2.0

Added

  • Adding processing for postQuote transactions with paymentOverride defined (#8967)
  • Add @metamask/keyring-controller ^26.0.0 as a dependency (#8972)
    • The package was already imported at runtime by src/strategy/relay/hyperliquid-withdraw.ts but wasn't declared in package.json; this PR fixes the omission.

Changed

  • Fiat quote submission now treats the provider code (e.g. transak-native) as the canonical form when resolving the provider from a ramps quote, while continuing to accept the legacy path form (e.g. /providers/transak-native) for backwards compatibility (#9004)
  • Live token balance queries now respect the confirmations_pay_extended.excludeChainIdsFromInfura feature flag, skipping the Infura endpoint preference for excluded chains (#8992)
  • Bump @metamask/assets-controllers from ^108.3.0 to ^108.5.0 (#8981, #8999)
  • Bump @metamask/assets-controller from ^8.0.2 to ^8.3.2 (#8981, #8985, #8999)
  • Bump @metamask/remote-feature-flag-controller from ^4.2.1 to ^4.2.2 (#8986)
  • Bump @metamask/ramps-controller from ^14.1.0 to ^14.1.1 (#8989)
  • Bump @metamask/bridge-status-controller from ^72.0.0 to ^72.0.2 (#8990, #8999)
  • Bump @metamask/bridge-controller from ^73.2.0 to ^73.2.1 (#8999)
  • Bump @metamask/transaction-controller from ^66.0.0 to ^67.0.0 (#8999, #9021, #9027)

1021.0.0

04 Jun 11:31
bcca9af

Choose a tag to compare

@metamask/network-enablement-controller 5.3.0

Added

  • Added Arc (0x13b2) to POPULAR_NETWORKS (#8997)

Changed

  • Bump @metamask/transaction-controller from ^65.4.0 to ^66.0.1 (#8848, #8999)
  • Bump @metamask/multichain-network-controller from ^3.1.2 to ^3.1.3 (#8999)

1020.0.0

04 Jun 10:38
0f08676

Choose a tag to compare

@metamask/account-tree-controller 7.5.1

Changed

  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)
  • Bump @metamask/multichain-account-service from ^10.0.1 to ^10.0.2 (#8999)

@metamask/accounts-controller 39.0.0

Changed

  • BREAKING: Re-publish SnapAccountService:account{AssetList,Balances,Transactions}Updated events as AccountsController:account{AssetList,Balances,Transactions}Updated events (#8978)
    • Now requires SnapAccountService:account{AssetList,Balances,Transactions}Updated events to be registered on the messenger.
    • No longer requires SnapKeyring:account{AssetList,Balances,Transactions}Updated events to be registered on the messenger.

@metamask/assets-controller 8.3.2

Changed

  • Bump @metamask/account-tree-controller from ^7.5.0 to ^7.5.1 (#8999)
  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)
  • Bump @metamask/assets-controllers from ^108.4.0 to ^108.5.0 (#8999)
  • Bump @metamask/core-backend from ^6.3.1 to ^6.3.2 (#8999)
  • Bump @metamask/transaction-controller from ^66.0.0 to ^66.0.1 (#8999)

@metamask/assets-controllers 108.5.0

Added

  • Add isDeprecated option to TokenListController constructor, a function that returns whether the controller should be disabled (#8945)
    • When isDeprecated() returns true, every fetching entry point (initialize(), start(), restart(), _executePoll(), and fetchTokenList()) resets tokensChainsCache to {}, cancels any pending debounced persist (so a stale entry can't write old data after the in-memory reset), and overwrites every persisted tokensChainsCache:* entry in StorageService with { data: {}, timestamp: 0 }. No HTTP calls are issued to the token API.
    • The function is re-evaluated on each entry point so it can be toggled at runtime without reconstructing the controller — including from inside any deprecated setInterval already running from a prior start().

Changed

  • Bump @metamask/account-tree-controller from ^7.5.0 to ^7.5.1 (#8999)
  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)
  • Bump @metamask/core-backend from ^6.3.1 to ^6.3.2 (#8999)
  • Bump @metamask/multichain-account-service from ^10.0.1 to ^10.0.2 (#8999)
  • Bump @metamask/transaction-controller from ^66.0.0 to ^66.0.1 (#8999)

@metamask/bridge-controller 73.2.1

Changed

  • Bump @metamask/assets-controllers from ^108.2.0 to ^108.5.0 (#8941, #8981, #8999)
  • Bump @metamask/assets-controller from ^8.1.0 to ^8.3.2 (#8943, #8981, #8985, #8999)
  • Bump @metamask/remote-feature-flag-controller from ^4.2.1 to ^4.2.2 (#8986)
  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)
  • Bump @metamask/multichain-network-controller from ^3.1.2 to ^3.1.3 (#8999)
  • Bump @metamask/transaction-controller from ^66.0.0 to ^66.0.1 (#8999)

@metamask/bridge-status-controller 72.0.2

Changed

  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)
  • Bump @metamask/bridge-controller from ^73.2.0 to ^73.2.1 (#8999)
  • Bump @metamask/transaction-controller from ^66.0.0 to ^66.0.1 (#8999)

@metamask/core-backend 6.3.2

Changed

  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)

@metamask/money-account-controller 0.3.2

Changed

  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)

@metamask/multichain-account-service 10.0.2

Changed

  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)
  • Bump @metamask/snap-account-service from ^0.2.1 to ^0.3.0 (#8999)

@metamask/multichain-api-middleware 3.1.3

Changed

  • Bump @metamask/accounts-controller from ^38.1.1 to ^39.0.0 (#8912, #8999)

@metamask/multichain-network-controller 3.1.3

Changed

  • Bump @metamask/accounts-controller from ^38.1.1 to ^39.0.0 (#8912, #8999)

@metamask/multichain-transactions-controller 7.1.1

Changed

  • Bump @metamask/accounts-controller from ^38.0.0 to ^39.0.0 (#8755, #8774, #8912, #8999)
  • Bump @metamask/polling-controller from ^16.0.4 to ^16.0.6 (#8755, #8834)

@metamask/profile-metrics-controller 3.1.6

Changed

  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)
  • Bump @metamask/transaction-controller from ^66.0.0 to ^66.0.1 (#8999)

@metamask/signature-controller 39.2.4

Changed

  • Bump @metamask/accounts-controller from ^38.1.2 to ^39.0.0 (#8999)

@metamask/snap-account-service 0.3.0

Added

  • Add SnapAccountService:account{AssetList,Balances,Transactions}Updated events (#8916)

Changed

  • Faster :getLegacySnapKeyring (#8865)
    • We now check if the keyring exists with :withKeyringUnsafe and returns it right away.
    • If the keyring does not exist yet, we do create it with :withController (next calls will then be faster thanks to :withKeyringUnsafe pre-check).
  • Bump @metamask/account-tree-controller from ^7.5.0 to ^7.5.1 (#8999)

Fixed

  • Re-publish account-data update events from :handleKeyringSnapMessage without requiring the legacy Snap keyring.
  • Prevent double-lock in :handleKeyringSnapMessage for some events/methods (#8860)
    • The service messenger now requires the KeyringController:withKeyringUnsafe action.
    • We now check if the keyring is available before delegating those messages.
    • We still auto-create the keyring in some specific calls (e.g notify:accountCreated).

Removed

  • Removed init in favor of synchronous initialization when constructing the service (#8877)

@metamask/transaction-controller 66.0.1

Changed

  • Bump @metamask/accounts-controller from ^38.1.1 to ^39.0.0 (#8912, #8999)
  • Bump @metamask/core-backend from ^6.3.0 to ^6.3.2 (#8912, #8999)
  • Bump @metamask/remote-feature-flag-controller from ^4.2.1 to ^4.2.2 (#8986)

Fixed

  • Include Mantle operator fee in the displayed L1 gas estimate when simulated gasUsed is unavailable, by falling back to the transaction's gas limit (#8837)
    • Adds a protected getOperatorFeeGas hook on OracleLayer1GasFeeFlow that subclasses can override to supply a fallback value. The default behaviour is unchanged (returns transactionMeta.gasUsed).
    • MantleLayer1GasFeeFlow overrides the hook with gasUsed ?? txParams.gas ?? txParams.gasLimit, so the operator-fee oracle is called with the gas limit when gasUsed is missing. Gas limit is an upper bound on actual gas used, so the operator fee is over-estimated rather than under-reported.
  • Fix ExtraTransactionsPublishHook not passing isInternal: true when calling addTransactionBatch, causing the duplicate-batch-ID guard to incorrectly throw DuplicateBundleId (error 5720) for nested ERC-20 gas-fee-token transfers that share a batchId with their parent batch (#8884)