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. If you publish it to npm, other developers can import and call the extension to add that functionality to their own Dynamic client; you can also keep it internal to your own codebase.
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

Publish

Package and publish your extension to npm.

Custom Functions

Add standalone functions that use DynamicClient services.

Wallet Provider

Integrate a custom wallet through supported standards or a WalletProvider.

Services

Use storage, deep links, and registry priority from DynamicCore.

Glossary

Last modified on August 5, 2026