Skip to content

Releases: MetaMask/core

904.0.0

08 Apr 11:45
e8c8d5b

Choose a tag to compare

@metamask/assets-controller 5.0.0

Changed

  • BREAKING: TokenDetector now fetches the token list directly from the Tokens API (/v3/chains/{chain}/assets) via a new TokensApiClient instead of reading from TokenListController:getState (#8385)
    • TokenDetectorMessenger type has been removed; TokenDetector constructor now takes a TokensApiClient instance as its second argument
    • RpcDataSource no longer requires TokenListController:getStateGetTokenListState has been removed from RpcDataSourceAllowedActions and AssetsControllerAllowedActions
    • Unknown ERC-20 metadata is no longer looked up from the token list as a fallback in RpcDataSource; TokenDataSource handles enrichment downstream
  • Split getAssets fetch pipeline into a fast awaited path and a parallel fire-and-forget background path to reduce perceived latency on unlock and onboarding (#8383)
    • Fast pipeline: AccountsApi + StakedBalance → Detection → Token + Price (awaited, committed to state immediately)
    • Background pipeline: Snap + RPC run in parallel → Detection → Token + Price when basic functionality is enabled; when disabled (RPC-only mode), Token + Price are omitted (fire-and-forget merge)
    • handleAssetsUpdate skips token/price enrichment and strips metadata / price from the effective request when basic functionality is disabled (RPC-only mode)
    • setSelectedCurrency no longer triggers a price refresh via getAssets when basic functionality is disabled
  • PriceDataSource now batches spot-price API requests in chunks of 50 using reduceInBatchesSerially to avoid DynamoDB batch-limit errors (#8383)
  • TokenDataSource now batches token metadata API requests in chunks of 50 using reduceInBatchesSerially to avoid DynamoDB batch-limit errors (#8383)
  • PriceDataSource filters out all synthetic slip44:NUMBER-* staking-position asset IDs before calling the Price API (#8383)
  • TokenDataSource filters EVM ERC-20 tokens by occurrences >= 3 and treats missing occurrences as 0 (#8383)
  • Bump @metamask/keyring-controller from ^25.1.1 to ^25.2.0 (#8363)
  • Bump @metamask/messenger from ^1.0.0 to ^1.1.1 (#8364, #8373)

@metamask/transaction-pay-controller 19.1.0

Added

  • Support for perps deposit for Across (#8334)

Changed

  • Bump @metamask/assets-controller from ^4.0.0 to ^5.0.0 (#8406)

Fixed

  • Fix perps withdraw to Arbitrum USDC showing inflated transaction fee by bypassing same-token filter when isHyperliquidSource is set (#8387)

903.0.0

03 Apr 21:38
4c736e1

Choose a tag to compare

@metamask/messenger-cli 0.1.0

Added

  • Initial release, extracted from @metamask/messenger (#8378)
    • CLI tool for generating TypeScript action type files for controllers and services that define MESSENGER_EXPOSED_METHODS.
    • Available as a CLI binary (messenger-action-types).

902.0.0

03 Apr 20:19
5bb5d33

Choose a tag to compare

@metamask/ramps-controller 13.0.0

Changed

  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)
  • Bump @metamask/messenger from ^1.0.0 to ^1.1.1 (#8364, #8373)
  • BREAKING: Removed controller-side data fetching (fireAndForget) from setSelectedToken, setSelectedProvider, and setUserRegion; ramp data fetching is now fully driven by the client (#8354)
    • Client migration: trigger getTokens, getProviders, and getPaymentMethods from the client layer (for example, React Query hooks/effects) when region/provider/token changes.
    • setSelectedProvider/setSelectedToken/setUserRegion now focus on selection/state updates and no longer implicitly fetch dependent resources.
  • setSelectedProvider and setSelectedPaymentMethod accept a full object in addition to an ID string; no longer throw when data is not loaded (#8354)

Fixed

  • init no longer overrides a persisted userRegion with the geolocation endpoint response (#8354)

@metamask/transaction-pay-controller 19.0.3

Changed

  • Bump @metamask/ramps-controller from ^12.1.0 to ^13.0.0 (#8380)
  • Bump @metamask/messenger from ^1.0.0 to ^1.1.1 (#8364, #8373)

901.0.0

03 Apr 07:00
45f1e51

Choose a tag to compare

@metamask/messenger 1.1.1

Fixed

  • Drop peer dependency on eslint to prevent audit failures on consumers using ESLint 8.x (#8371)

900.0.0

02 Apr 16:51
63a855e

Choose a tag to compare

@metamask/compliance-controller 2.0.0

Changed

  • BREAKING: Remove proactive bulk-fetch pattern from ComplianceController and ComplianceService (#8365)
    • ComplianceControllerState no longer includes blockedWallets or blockedWalletsLastFetched. Consumers storing persisted state must drop these fields on migration.
    • The init() and updateBlockedWallets() controller methods have been removed. Consumers should remove any calls to these methods.
    • The blockedWalletsRefreshInterval constructor option has been removed.
    • The updateBlockedWallets() service method and its GET /v1/blocked-wallets endpoint integration have been removed.
    • ComplianceControllerInitAction, ComplianceControllerUpdateBlockedWalletsAction, and ComplianceServiceUpdateBlockedWalletsAction types have been removed from the public API.
    • The BlockedWalletsInfo type has been removed from the public API.
    • checkWalletCompliance and checkWalletsCompliance now fall back to the per-address walletComplianceStatusMap cache when the API is unavailable, re-throwing only if no cached result exists for a requested address.
    • selectIsWalletBlocked now reads solely from walletComplianceStatusMap rather than also checking a cached full blocklist.
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)
  • Bump @metamask/messenger from ^1.0.0 to ^1.1.0 (#8364)

899.0.0

02 Apr 13:35
150a6ff

Choose a tag to compare

@metamask/social-controllers 0.1.0

Added

  • Initial release (#8321, #8335, #8337)
    • Add SocialService data service wrapping social-api endpoints with superstruct response validation
      • Add methods fetchLeaderboard, fetchTraderProfile, fetchOpenPositions, fetchClosedPositions, fetchFollowers, fetchFollowing, follow, unfollow
    • Add SocialController extending BaseController with messenger actions for state management
      • updateLeaderboard — fetches leaderboard and persists entries to state
      • followTrader — follows traders and updates following addresses in state
      • unfollowTrader — unfollows traders and removes addresses from state
      • updateFollowing — fetches following list and replaces addresses in state

898.0.0

02 Apr 11:30
bcae3ea

Choose a tag to compare

@metamask/money-account-controller 0.1.0

Added

  • Add MoneyAccountController (#8361)

897.0.0

01 Apr 20:27
92d33e2

Choose a tag to compare

@metamask/messenger 1.1.0

Added

  • Add generate-action-types CLI tool (#8264)
    • Generates TypeScript action type files for controllers and services that define MESSENGER_EXPOSED_METHODS.
    • Available as a CLI binary (messenger-generate-action-types).
      • typescript and eslint are peer dependencies.

896.0.0

01 Apr 17:05
011fcad

Choose a tag to compare

@metamask/accounts-controller 37.2.0

Added

  • Now supports KeyringTypes.money in keyringTypeToName (#8362)
    • Even though this controller does not support Money accounts, this helper might be used with this new keyring type (added for completeness).

Changed

  • Filter out Money accounts when replicating KeyringController state (#8362)
    • Those accounts are treated differently with their own "account-like" controller.
  • Bump @metamask/keyring-controller from ^25.1.1 to ^25.2.0 (#8363)

@metamask/keyring-controller 25.2.0

Added

  • Added filter selector variant to withKeyring (#8348)
    • KeyringSelector now accepts { filter: ({ keyring, metadata }) => boolean }, which selects the first keyring for which the predicate returns true.
  • Add isKeyringNotFoundError (#8351)
    • This function can be used when trying to access a non-existing keyring using withKeyring.
  • Added withKeyringUnsafe action (#8358)
    • This new variant of withKeyring allows to fetch a keyring instance the same way.
    • Mutations are not allowed and won't be replicated in the vault.
    • Can be used to read immutable data safely.
  • Add KeyringTypes.money enum value (#8360)

895.0.0

01 Apr 14:09
3a2fe8e

Choose a tag to compare

@metamask/assets-controller 4.0.0

Changed

  • BREAKING: TokenDataSource constructor now takes (messenger, options) instead of (options); messenger must be the same AssetsControllerMessenger used by AssetsController so token metadata enrichment can call PhishingController:bulkScanTokens (#8329)
    • Clients must now provide PhishingController:bulkScanTokens permission when constructing the controller messenger
  • TokenDataSource removes tokens flagged malicious by Blockaid (via PhishingController:bulkScanTokens) before merging metadata, instead of filtering non-native tokens by a minimum occurrence count (#8329)
  • Bump @metamask/assets-controllers from ^103.1.0 to ^103.1.1 (#8359)
  • Bump @metamask/network-enablement-controller from ^5.0.1 to ^5.0.2 (#8359)
  • Bump @metamask/phishing-controller from ^17.1.0 to ^17.1.1 (#8359)
  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)

@metamask/assets-controllers 103.1.1

Changed

  • Bump @metamask/network-enablement-controller from ^5.0.1 to ^5.0.2 (#8359)
  • Bump @metamask/phishing-controller from ^17.1.0 to ^17.1.1 (#8359)
  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)

@metamask/bridge-controller 70.0.1

Changed

  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)
  • Bump @metamask/assets-controller from ^3.2.1 to ^4.0.0 (#8355, #8359)
  • Bump @metamask/assets-controllers from ^103.0.0 to ^103.1.1 (#8355, #8359)

@metamask/bridge-status-controller 70.0.5

Changed

  • Bump @metamask/bridge-controller from ^70.0.0 to ^70.0.1 (#8359)
  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Add missing @metamask/messenger dependency (#8318)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)

@metamask/eip-5792-middleware 3.0.3

Changed

  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)

@metamask/gator-permissions-controller 3.0.1

Changed

  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)

@metamask/network-enablement-controller 5.0.2

Changed

  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)

@metamask/phishing-controller 17.1.1

Changed

  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)

@metamask/profile-metrics-controller 3.1.3

Changed

  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Bump @metamask/accounts-controller from ^37.1.0 to ^37.1.1 (#8325)
  • Bump @metamask/profile-sync-controller from ^28.0.1 to ^28.0.2 (#8325)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)

@metamask/shield-controller 5.1.1

Changed

  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Bump @metamask/signature-controller from ^39.1.1 to ^39.1.2 (#8325)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)

@metamask/subscription-controller 6.1.2

Changed

  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Bump @metamask/profile-sync-controller from ^28.0.1 to ^28.0.2 (#8325)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)

@metamask/transaction-controller 64.0.0

Changed

  • Add extra parameters in types and change addTransaction behavior (#8052)
    • Add optional excludeNativeTokenForFee in TransactionMeta type.
    • Add optional excludeNativeTokenForFee in TransactionBatchRequest type.
    • Add optional excludeNativeTokenForFee to AddTransactionOptions type.
    • Changed isGasFeeTokenIgnoredIfBalance to be false if excludeNativeTokenForFee is passed in addTransaction.
  • Bump @metamask/accounts-controller from ^37.1.0 to ^37.1.1 (#8325)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)

Removed

  • BREAKING: Remove @metamask/eth-query dependency and all EthQuery usage in favour of messenger-based provider utilities (#8273)
    • Remove determineTransactionType from exported functions.

@metamask/transaction-pay-controller 19.0.2

Changed

  • Bump @metamask/bridge-controller from ^70.0.0 to ^70.0.1 (#8359)
  • Bump @metamask/bridge-status-controller from ^70.0.4 to ^70.0.5 (#8359)
  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)
  • Bump @metamask/assets-controller from ^3.2.1 to ^4.0.0 (#8355, #8359)
  • Bump @metamask/assets-controllers from ^103.0.0 to ^103.1.1 (#8355, #8359)

@metamask/user-operation-controller 41.2.0

Changed

  • Hardcode user operation transaction type to contractInteraction instead of calling determineTransactionType (#8273)
  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)