npm / @metamask/snaps-sdk
@metamask/snaps-sdk
What changed in @metamask/snaps-sdk 128 to 168, from its official release notes, upgrade guides and advisories. Also covers @metamask/preinstalled-example-snap, @metamask/snaps-controllers, @metamask/snaps-execution-environments, @metamask/snaps-rpc-methods, @metamask/snaps-utils, @metamask/test-snaps. Sources checked 2026-10-19.
29 breaking2 security7 new APIs and options1 performance3 behavior and defaults17 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@metamask/snaps-sdk 1681 changes
Fixes and other changes 1
Logging of unhandled errors is improved.
@metamask/snaps-sdk 1671 changes
Fixes and other changes 1
Ensures dates are properly validated after a duration offset.
@metamask/snaps-sdk 1651 changes
New APIs and options 1
SnapController, MultichainRoutingService, and ExecutionService accept an optional originMetadata parameter for specifying additional metadata about a request's origin.
@metamask/snaps-sdk 1603 changes
Breaking changes 2
SnapController now tracks Snap lifecycle analytics events and requires the listed analytics action and lifecycle events in its messenger.
The SnapController constructor now requires a clientConfig parameter for tracking analytics for OTA Snap updates.
New APIs and options 1
Adds the requestPeriodicUpdate method to SnapRegistryController.
@metamask/snaps-sdk 1562 changes
Breaking changes 2
Omit installing Snaps from the results of getAllSnaps.
Omit installing Snaps from the results of getRunnableSnaps.
@metamask/snaps-sdk 1551 changes
Fixes and other changes 1
MultichainRoutingService no longer relies on account metadata.
@metamask/snaps-sdk 1541 changes
Fixes and other changes 1
Increased the iframe unload timeout.
@metamask/snaps-sdk 1521 changes
Fixes and other changes 1
Skip refetching the registry in handleRegistryUpdate.
@metamask/snaps-sdk 1511 changes
Fixes and other changes 1
The KeyringOrigin caveat is now explicitly optional.
@metamask/snaps-sdk 1501 changes
Behavior and default changes 1
Always consumes the latest registry; SnapController now listens for SnapRegistryController:registryUpdated.
@metamask/snaps-sdk 14814 changes
Breaking changes 14
Removed in favour of ExecutionService; migrate implementations and references to the new abstract class.
Action types were renamed from DoSomething to ControllerNameDoSomethingAction; update references to the renamed actions.
Event types were renamed from OnSomething to ControllerOnSomethingEvent; update event references. SnapStateChange was replaced by SnapControllerStateChangeEvent.
Replaced the ExecutionService interface with an abstract class; it takes the place of AbstractExecutionService.
Renamed MultichainRouter to MultichainRoutingService, and its action types were updated accordingly.
Now requires SnapController:getRunnableSnaps instead of SnapController:getAllSnaps.
The decrementActiveReferences action and method were removed.
Returns null rather than undefined when a Snap is not found; callers should handle the new missing-Snap result.
Removed as a public method from SnapController.
Removed as a public method from SnapController.
The incrementActiveReferences action and method were removed.
Several methods were renamed to match their action names, including get to getSnap, has to hasSnap, and install to installSnaps; update callers accordingly.
Now requires SnapController:getRunnableSnaps instead of SnapController:getAllSnaps.
Renamed JsonSnapsRegistry to SnapRegistryController, including the controller name and action types.
@metamask/snaps-sdk 1471 changes
Fixes and other changes 1
An error handler is now always attached to the RPC stream.
@metamask/snaps-sdk 1461 changes
Breaking changes 1
The method is allowed only after the interface has been displayed.
@metamask/snaps-sdk 1441 changes
Fixes and other changes 1
Recovers if preinstalled Snaps source code is missing.
@metamask/snaps-sdk 1432 changes
Fixes and other changes 2
Increases the maximum listener limit for rpcStream.
Reinitializes SnapController after state is cleared, so it can continue operating with fresh state.
@metamask/snaps-sdk 1425 changes
Breaking changes 3
The constructor no longer accepts the closeAllConnections argument.
Executor parameters are passed as an object, changing how callers provide them.
Unconnected accounts can no longer be used through MultichainRouter.
New APIs and options 1
Source code is stored using StorageService, changing how developers provide storage for source code.
Fixes and other changes 1
SnapController state is updated when SnapsRegistry changes.
@metamask/snaps-sdk 1412 changes
Breaking changes 1
Requests to this method are blocked.
Security 1
Requests are inspected before being sent.
@metamask/snaps-sdk 1382 changes
Fixes and other changes 2
Unload the iframe before removing it.
Ensure the stream multiplex is destroyed.
@metamask/snaps-sdk 1373 changes
New APIs and options 2
Adds support for external images.
Adds an isReady state property.
Behavior and default changes 1
Skips updating the registry when the signature has not changed.
@metamask/snaps-sdk 1361 changes
Security 1
Detect and recover missing permissions for preinstalled Snaps.
@metamask/snaps-sdk 1352 changes
Performance 1
Registry verification is faster.
Behavior and default changes 1
The default ping timeout has been increased.
@metamask/snaps-sdk 1342 changes
New APIs and options 1
Adds support for the DateTimePicker component, allowing Snap developers to use it in interactive interfaces.
Fixes and other changes 1
Registry fetching now uses no-cache.
@metamask/snaps-sdk 1332 changes
Breaking changes 2
JsonSnapsRegistry requires the clientConfig constructor argument to support specified clientVersions in the registry.
SnapController requires the ensureOnboardingComplete constructor argument to ensure the user has onboarded before usage.
@metamask/snaps-sdk 1321 changes
Fixes and other changes 1
The feature flag is overridden when automatic updates are used.
@metamask/snaps-sdk 1314 changes
Breaking changes 1
Removes the logic for granting CAIP-25 permissions.
New APIs and options 1
Adds NPM proxy support.
Fixes and other changes 2
Keeps dynamic permissions when a Snap is updated.
Prevents initial connections from being revoked as unused when a Snap is updated.
@metamask/snaps-sdk 1292 changes
Breaking changes 2
The metadata property
anonymouswas renamed toincludeInDebugSnapshot.Controllers and services now accept Messenger from @metamask/messenger instead of RestrictedMessenger from @metamask/base-controller.
@metamask/snaps-sdk 1281 changes
Breaking changes 1
Throws when a Snap is not installed.