Skip to main content
An extension is a function that adds functionality to a DynamicClient. Use it to integrate a wallet that Dynamic does not officially support, or to add new features that the Dynamic team has not implemented. Once published to npm, other developers can import and call the extension to add that functionality to their own Dynamic client.
The core extension APIs (WalletProvider, Storage, registerExtension, etc.) may change between major versions of the Dynamic SDK. Pin your extension to a specific major version and review the release notes before upgrading.

Extension skeleton

Every extension follows the same pattern: check whether it is already registered with hasExtension, call registerExtension, then add the providers or services the extension contributes.
  • extensionKey is a unique string for your extension.
  • hasExtension makes the call idempotent so multiple imports do not double-register.
  • client defaults to getDefaultClient(). Only pass a client explicitly if your app uses multiple Dynamic clients.

Extension interfaces

Wallet Provider

Connect a custom wallet by implementing the WalletProvider interface.

Custom Functions

Add standalone functions that use DynamicClient services.

Storage

Persist extension state with regular or secure Storage.

Publish

Package and publish your extension to npm.
Last modified on August 3, 2026