unstale

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

@unstale/cli on npm

@metamask/snaps-sdk 1681 changes

Fixes and other changes 1

@metamask/snaps-sdk 1671 changes

Fixes and other changes 1

  • Ensures dates are properly validated after a duration offset.

    167.0.0release notes

@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.

    165.0.0release notes

@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.

    160.0.0release notes

  • The SnapController constructor now requires a clientConfig parameter for tracking analytics for OTA Snap updates.

    160.0.0release notes

New APIs and options 1

  • Adds the requestPeriodicUpdate method to SnapRegistryController.

    160.0.0release notes

@metamask/snaps-sdk 1562 changes

Breaking changes 2

  • Omit installing Snaps from the results of getAllSnaps.

    156.0.0release notes

  • Omit installing Snaps from the results of getRunnableSnaps.

    156.0.0release notes

@metamask/snaps-sdk 1551 changes

Fixes and other changes 1

  • MultichainRoutingService no longer relies on account metadata.

    155.0.0release notes

@metamask/snaps-sdk 1541 changes

Fixes and other changes 1

@metamask/snaps-sdk 1521 changes

Fixes and other changes 1

  • Skip refetching the registry in handleRegistryUpdate.

    152.0.0release notes

@metamask/snaps-sdk 1511 changes

Fixes and other changes 1

  • The KeyringOrigin caveat is now explicitly optional.

    151.0.0release notes

@metamask/snaps-sdk 1501 changes

Behavior and default changes 1

  • Always consumes the latest registry; SnapController now listens for SnapRegistryController:registryUpdated.

    150.0.0release notes

@metamask/snaps-sdk 14814 changes

Breaking changes 14

  • Removed in favour of ExecutionService; migrate implementations and references to the new abstract class.

    148.0.0release notes

  • Action types were renamed from DoSomething to ControllerNameDoSomethingAction; update references to the renamed actions.

    148.0.0release notes

  • Event types were renamed from OnSomething to ControllerOnSomethingEvent; update event references. SnapStateChange was replaced by SnapControllerStateChangeEvent.

    148.0.0release notes

  • Replaced the ExecutionService interface with an abstract class; it takes the place of AbstractExecutionService.

    148.0.0release notes

  • Renamed MultichainRouter to MultichainRoutingService, and its action types were updated accordingly.

    148.0.0release notes

  • Now requires SnapController:getRunnableSnaps instead of SnapController:getAllSnaps.

    148.0.0release notes

  • The decrementActiveReferences action and method were removed.

    148.0.0release notes

  • Returns null rather than undefined when a Snap is not found; callers should handle the new missing-Snap result.

    148.0.0release notes

  • Removed as a public method from SnapController.

    148.0.0release notes

  • Removed as a public method from SnapController.

    148.0.0release notes

  • The incrementActiveReferences action and method were removed.

    148.0.0release notes

  • Several methods were renamed to match their action names, including get to getSnap, has to hasSnap, and install to installSnaps; update callers accordingly.

    148.0.0release notes

  • Now requires SnapController:getRunnableSnaps instead of SnapController:getAllSnaps.

    148.0.0release notes

  • Renamed JsonSnapsRegistry to SnapRegistryController, including the controller name and action types.

    148.0.0release notes

@metamask/snaps-sdk 1471 changes

Fixes and other changes 1

  • An error handler is now always attached to the RPC stream.

    147.0.0release notes

@metamask/snaps-sdk 1461 changes

Breaking changes 1

  • The method is allowed only after the interface has been displayed.

    146.0.0release notes

@metamask/snaps-sdk 1441 changes

Fixes and other changes 1

  • Recovers if preinstalled Snaps source code is missing.

    144.0.0release notes

@metamask/snaps-sdk 1432 changes

Fixes and other changes 2

  • Increases the maximum listener limit for rpcStream.

    143.0.0release notes

  • Reinitializes SnapController after state is cleared, so it can continue operating with fresh state.

    143.0.0release notes

@metamask/snaps-sdk 1425 changes

Breaking changes 3

  • The constructor no longer accepts the closeAllConnections argument.

    142.0.0release notes

  • Executor parameters are passed as an object, changing how callers provide them.

    142.0.0release notes

  • Unconnected accounts can no longer be used through MultichainRouter.

    142.0.0release notes

New APIs and options 1

  • Source code is stored using StorageService, changing how developers provide storage for source code.

    142.0.0release notes

Fixes and other changes 1

  • SnapController state is updated when SnapsRegistry changes.

    142.0.0release notes

@metamask/snaps-sdk 1412 changes

Breaking changes 1

Security 1

@metamask/snaps-sdk 1382 changes

Fixes and other changes 2

@metamask/snaps-sdk 1373 changes

New APIs and options 2

Behavior and default changes 1

  • Skips updating the registry when the signature has not changed.

    137.0.0release notes

@metamask/snaps-sdk 1361 changes

Security 1

  • Detect and recover missing permissions for preinstalled Snaps.

    136.0.0release notes

@metamask/snaps-sdk 1352 changes

Performance 1

Behavior and default changes 1

@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.

    134.0.0release notes

Fixes and other changes 1

@metamask/snaps-sdk 1332 changes

Breaking changes 2

  • JsonSnapsRegistry requires the clientConfig constructor argument to support specified clientVersions in the registry.

    133.0.0release notes

  • SnapController requires the ensureOnboardingComplete constructor argument to ensure the user has onboarded before usage.

    133.0.0release notes

@metamask/snaps-sdk 1321 changes

Fixes and other changes 1

  • The feature flag is overridden when automatic updates are used.

    132.0.0release notes

@metamask/snaps-sdk 1314 changes

Breaking changes 1

  • Removes the logic for granting CAIP-25 permissions.

    131.0.0release notes

New APIs and options 1

Fixes and other changes 2

  • Keeps dynamic permissions when a Snap is updated.

    131.0.0release notes

  • Prevents initial connections from being revoked as unused when a Snap is updated.

    131.0.0release notes

@metamask/snaps-sdk 1292 changes

Breaking changes 2

  • The metadata property anonymous was renamed to includeInDebugSnapshot.

    129.0.0release notes

  • Controllers and services now accept Messenger from @metamask/messenger instead of RestrictedMessenger from @metamask/base-controller.

    129.0.0release notes

@metamask/snaps-sdk 1281 changes

Breaking changes 1