Skip to content

Releases: MetaMask/core

828.0.0

20 Feb 12:22
b51aa64

Choose a tag to compare

@metamask/transaction-controller 62.18.0

Added

  • Add predictRelayDeposit and perpsRelayDeposit to TransactionType enum (#7947)

@metamask/transaction-pay-controller 16.0.0

Added

  • BREAKING: Add live on-chain balance validation for pay transactions (#7935)
    • Refresh payment token balance via chain before each quote update.
    • Validate source token balance via chain before submitting Relay deposits.
    • Requires NetworkController:getNetworkClientById messenger action permission in TransactionController publish hook.

Changed

  • Bump @metamask/transaction-controller from ^62.17.1 to ^62.18.0 (#8005)
  • Replace relayDeposit transaction type with predictRelayDeposit or perpsRelayDeposit based on the parent transaction type (#7947)
  • Bump @metamask/assets-controllers from ^100.0.1 to ^100.0.2 (#8004)

827.0.0

20 Feb 10:29
214a712

Choose a tag to compare

@metamask/assets-controllers 100.0.2

Changed

  • Blockaid token filtering in MultichainAssetsController now only removes tokens flagged as Malicious (#8003)
    • Spam, Warning, and Benign tokens are no longer filtered out

@metamask/compliance-controller 1.0.0

Added

  • Initial release (#7945)
    • Add ComplianceController for managing OFAC compliance state for wallet addresses.
    • Add ComplianceService for fetching compliance data from the Compliance API.

Changed

  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

826.0.0

20 Feb 03:09
5cc9b10

Choose a tag to compare

@metamask/ramps-controller 9.0.0

Added

  • Add getOrder and getOrderFromCallback methods to RampsService and RampsController for V2 unified order polling, along with new RampsOrder, RampsOrderFiatCurrency, RampsOrderCryptoCurrency, RampsOrderPaymentMethod, and RampsOrderStatus types (#7934)

Changed

  • BREAKING: Use concrete types in RampsOrder instead of string | Object unions for provider, cryptoCurrency, fiatCurrency, paymentMethod, and network fields (#8000)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

825.0.0

19 Feb 20:03
72f2ce6

Choose a tag to compare

@metamask/accounts-controller 36.0.1

Changed

  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)

@metamask/assets-controller 2.0.2

Changed

  • Bump @metamask/assets-controllers from ^100.0.0 to ^100.0.1 (#7996)
  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/network-enablement-controller from ^4.1.1 to ^4.1.2 (#7996)
  • Bump @metamask/polling-controller from ^16.0.2 to ^16.0.3 (#7996)
  • Bump @metamask/transaction-controller from ^62.17.0 to ^62.17.1 (#7996)

@metamask/assets-controllers 100.0.1

Changed

  • Bump @metamask/accounts-controller from ^36.0.0 to ^36.0.1 (#7996)
  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/network-enablement-controller from ^4.1.1 to ^4.1.2 (#7996)
  • Bump @metamask/polling-controller from ^16.0.2 to ^16.0.3 (#7996)
  • Bump @metamask/transaction-controller from ^62.17.0 to ^62.17.1 (#7996)

@metamask/bridge-controller 67.1.1

Changed

  • Bump @metamask/accounts-controller from ^36.0.0 to ^36.0.1 (#7996)
  • Bump @metamask/assets-controllers from ^100.0.0 to ^100.0.1 (#7996)
  • Bump @metamask/gas-fee-controller from ^26.0.2 to ^26.0.3 (#7996)
  • Bump @metamask/multichain-network-controller from ^3.0.3 to ^3.0.4 (#7996)
  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/polling-controller from ^16.0.2 to ^16.0.3 (#7996)
  • Bump @metamask/transaction-controller from ^62.17.0 to ^62.17.1 (#7996)

@metamask/bridge-status-controller 67.0.1

Changed

  • Bump @metamask/accounts-controller from ^36.0.0 to ^36.0.1 (#7996)
  • Bump @metamask/gas-fee-controller from ^26.0.2 to ^26.0.3 (#7996)
  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/polling-controller from ^16.0.2 to ^16.0.3 (#7996)
  • Bump @metamask/transaction-controller from ^62.17.0 to ^62.17.1 (#7996)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)
  • Bump @metamask/bridge-controller from ^67.0.0 to ^67.1.1 (#7995, #7996)

@metamask/earn-controller 11.1.1

Changed

  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/keyring-api from ^21.0.0 to ^21.5.0 (#7857)
  • Bump @metamask/account-tree-controller from ^4.0.0 to ^4.1.1 (#7869), (#7897)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/ens-controller 19.0.3

Changed

  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/gas-fee-controller 26.0.3

Changed

  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/polling-controller from ^16.0.2 to ^16.0.3 (#7996)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/multichain-api-middleware 1.2.7

Changed

  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/json-rpc-engine from ^10.2.1 to ^10.2.2 (#7856)
  • Bump @metamask/multichain-transactions-controller from 7.0.0 to 7.0.1 (#7897)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/multichain-network-controller 3.0.4

Changed

  • Bump @metamask/accounts-controller from ^36.0.0 to ^36.0.1 (#7996)
  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/network-controller 30.0.0

Added

  • Add rpcMethodName to NetworkController:rpcEndpointDegraded and NetworkController:rpcEndpointChainDegraded event payloads (#7954)
    • This field contains the JSON-RPC method name (e.g. eth_blockNumber) that was being processed when the event fired, enabling identification of which methods produce the most slow requests or retry exhaustions.
  • Add type and retryReason to NetworkController:rpcEndpointDegraded and NetworkController:rpcEndpointChainDegraded event payloads (#7988)
    • type (DegradedEventType) is 'slow_success' when the request succeeded but was slow, or 'retries_exhausted' when retries ran out.
    • retryReason (RetryReason, only present when type is 'retries_exhausted') classifies the error that was retried (e.g. 'non_successful_http_status', 'timed_out', 'connection_failed').

Changed

  • BREAKING: The RpcServiceRequestable type's onDegraded listener now receives rpcMethodName: string in its data parameter (#7954)
    • Implementors of this interface will need to accept the new field in their onDegraded callback signature.
  • Bump @metamask/eth-json-rpc-middleware from ^23.0.0 to ^23.1.0 (#7810)
  • Bump @metamask/json-rpc-engine from ^10.2.1 to ^10.2.2 (#7856)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/network-enablement-controller 4.1.2

Changed

  • Bump @metamask/multichain-network-controller from ^3.0.3 to ^3.0.4 (#7996)
  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/transaction-controller from ^62.17.0 to ^62.17.1 (#7996)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/polling-controller 16.0.3

Changed

  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/sample-controllers 4.0.3

Changed

  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/selected-network-controller 26.0.3

Changed

  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/json-rpc-engine from ^10.2.1 to ^10.2.2 (#7856)

@metamask/signature-controller 39.0.4

Changed

  • Bump @metamask/accounts-controller from ^36.0.0 to ^36.0.1 (#7996)
  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/transaction-controller 62.17.1

Changed

  • Bump @metamask/accounts-controller from ^36.0.0 to ^36.0.1 (#7996)
  • Bump @metamask/gas-fee-controller from ^26.0.2 to ^26.0.3 (#7996)
  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/core-backend from 5.0.0 to ^6.0.0 (#7993)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/transaction-pay-controller 15.1.2

Changed

  • Bump @metamask/assets-controllers from ^100.0.0 to ^100.0.1 (#7996)
  • Bump `@metamask/...
Read more

824.0.0

19 Feb 19:03
08ce5e5

Choose a tag to compare

@metamask/assets-controller 2.0.1

Changed

  • Refactor data source tests to use shared MockAssetControllerMessenger fixture (#7958)
    • Export STAKING_INTERFACE from the staked balance fetcher for use with the staking contract ABI.
    • StakedBalanceDataSource teardown now uses the messenger's clearEventSubscriptions; custom messenger implementations must support it for correct cleanup.
  • Bump @metamask/network-enablement-controller from ^4.1.0 to ^4.1.1 (#7984)
  • Bump @metamask/core-backend from ^5.1.1 to ^6.0.0 (#7993)
  • Bump @metamask/assets-controllers from ^99.4.0 to ^100.0.0 (#7995)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/assets-controllers 100.0.0

Added

  • BREAKING: MultichainAssetsControllerMessenger now requires the PhishingController:bulkScanTokens action to be allowed (#7923)
    • Consumers constructing the messenger must include this action in the allowed actions list
  • Add Blockaid token security scanning to MultichainAssetsController to filter out spam, malicious, and warning tokens during automatic asset detection (#7923)
    • Tokens with assetNamespace of "token" (e.g. SPL tokens) are scanned via the PhishingController:bulkScanTokens messenger action
    • Only tokens with a Benign result are kept; native assets (e.g. slip44) are not scanned
    • The filter fails open: if the scan is unreachable or returns an error, all tokens are kept
    • Filtering applies to account-added and asset-list-updated events; addAssets (curated list) is not filtered
    • Token addresses are batched into groups of 100 to stay within the bulkScanTokens per-request limit

Changed

  • Bump @metamask/phishing-controller from ^16.2.0 to ^16.3.0 (#7979)
  • Bump @metamask/network-enablement-controller from ^4.1.0 to ^4.1.1 (#7984)
  • Bump @metamask/core-backend from ^5.0.0 to ^6.0.0 (#7993)
  • Change MegaETH mainnet occurences filtering for getTokensURL (#7994)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/bridge-controller 67.1.0

Added

  • Added optional input_amount_preset property to the InputChanged event in RequiredEventContextFromClient (#7987)

Changed

  • Bump @metamask/assets-controllers from ^99.4.0 to ^100.0.0 (#7995)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)

@metamask/controller-utils 11.19.0

Added

  • Add megaeth-mainnet to BUILT_IN_NETWORKS (#7994)

@metamask/transaction-pay-controller 15.1.1

Changed

  • Bump @metamask/assets-controllers from ^99.4.0 to ^100.0.0 (#7995)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)
  • Bump @metamask/bridge-controller from ^67.0.0 to ^67.1.0 (#7995)

823.0.0

19 Feb 14:39
def7474

Choose a tag to compare

@metamask/core-backend 6.0.0

Added

  • Add ApiPlatformClientService to expose ApiPlatformClient via the messenger without a controller (#7928)
    • Consumers call messenger.call('ApiPlatformClientService:getApiPlatformClient') to obtain the shared client for accounts, prices, token, and tokens APIs
  • Export TanStack Query options for all API endpoints via get*QueryOptions helpers (#7928)
    • Each fetch method (e.g. fetchV5MultiAccountBalances) has a corresponding get*QueryOptions (e.g. getV5MultiAccountBalancesQueryOptions) returning the same options object used internally
    • Enables reuse with useQuery, useInfiniteQuery, useSuspenseQuery, and other TanStack Query APIs
  • Extend FetchOptions to allow TanStack Query options (e.g. select, initialPageParam, retry, initialData) to be passed through to get*QueryOptions and merged into the returned query options
    • Export getQueryOptionsOverrides helper for stripping queryKey/queryFn from options when merging
    • All API clients (accounts, prices, token, tokens) merge user overrides first, then apply staleTime/gcTime defaults so cache timing is consistent and extra options (e.g. select) are preserved

Changed

  • BREAKING: Merge fetchV2BalancesWithOptions into fetchV2Balances (#7928)
    • fetchV2Balances(address, queryOptions?, options?) now accepts the full query options: networks, filterSupportedTokens, includeTokenAddresses, includeStakedAssets
    • getV2BalancesQueryOptions accepts the same full query options for use with TanStack Query
    • fetchV2BalancesWithOptions and getV2BalancesWithOptionsQueryOptions have been removed; use fetchV2Balances and getV2BalancesQueryOptions with the desired options instead
  • BREAKING: Align v4 multi-account transactions with API (#7928)
    • First parameter renamed from accountIds to accountAddresses in fetchV4MultiAccountTransactions and getV4MultiAccountTransactionsQueryOptions
    • Query options now include: startTimestamp, endTimestamp, limit, after, before, maxLogsPerTx, lang in addition to networks, cursor, sortDirection, includeLogs, includeTxMetadata
    • includeValueTransfers has been removed from the options (not in API spec)
  • Accounts, prices, and tokens clients: fetch* and get*QueryOptions now short-circuit on empty required inputs (e.g. empty address, empty account IDs or asset lists) and return empty results without calling the API (#7928)

822.0.0

18 Feb 18:14
3b688f6

Choose a tag to compare

@metamask/network-enablement-controller 4.1.1

Changed

  • Bump @metamask/keyring-api from ^21.0.0 to ^21.5.0 (#7857)
  • Bump @metamask/transaction-controller from ^62.9.2 to ^62.17.0 (#7737, #7760, #7775, #7802, #7832, #7854, #7872), (#7897)
  • Bump @metamask/multichain-network-controller from 3.0.2 to 3.0.3 (#7897)

Fixed

  • Override SLIP-44 for HyperEVM (chain ID 999) to 2457 so native asset identifier is eip155:999/slip44:2457 instead of the incorrect value from chainid.network (chain collision with Wanchain) (#7975)

821.0.0

18 Feb 17:19
c4cf733

Choose a tag to compare

@metamask/ai-controllers 0.1.0

Added

  • Initial release (#7693)
  • Add AiDigestController for fetching and caching AI-generated asset digests (#7746)
  • Add Market Insights support to AiDigestController with fetchMarketInsights action (#7930)
  • Add searchDigest method to AiDigestService for calling the GET endpoint (currently mocked) (#7930)

Changed

  • Validate searchDigest API responses and throw when the payload does not match the expected MarketInsightsReport shape.
  • Normalize searchDigest responses from either direct report payloads or digest envelope payloads.

Removed

  • Remove legacy digest APIs and digest cache from AiDigestController and AiDigestService; only market insights APIs remain.
    • Removes fetchDigest, clearDigest, and clearAllDigests actions from the controller action surface.
    • Removes DigestData/DigestEntry types and the digests state branch.

820.0.0

18 Feb 14:55
0176346

Choose a tag to compare

@metamask/phishing-controller 16.3.0

Added

  • Add support for Solana (solana) as a chain identifier in bulkScanTokens (#7923)
    • Non-EVM chain names (e.g. 'solana') can now be passed as chainId in addition to hex EVM chain IDs
    • Token address casing is preserved for non-EVM chains (EVM addresses continue to be lowercased)
  • Export TokenScanResultType as a runtime value (previously type-only) (#7923)
  • Export BulkTokenScanResponse type (#7923)

Changed

  • Bump @metamask/transaction-controller from 62.16.0 to 62.17.0 (#7897)

819.0.0

18 Feb 13:23
872c1e7

Choose a tag to compare

@metamask/client-controller 1.0.0

Added

  • Initial release of @metamask/client-controller (#7808)
    • ClientController for managing client (UI) open/closed state
    • ClientController:setUiOpen messenger action for platform code to call
    • ClientController:stateChange event for controllers to subscribe to lifecycle changes
    • isUiOpen state property (not persisted - always starts as false)
    • clientControllerSelectors.selectIsUiOpen selector for derived state access
    • Full TypeScript support with exported types