Skip to main content
A WalletProvider is the Dynamic JavaScript SDK interface for a wallet. Use it when you control a wallet — such as a browser extension, mobile app, or hardware wallet — and you want the SDK to discover, connect, and route signing to it. If your wallet already follows a supported standard (EIP-6963, Solana Wallet Standard, Sui Wallet Standard, or WalletConnect), it already works with Dynamic and you do not need a custom WalletProvider. See Supported wallet standards first.

Who this is for

This section is primarily for teams that own a wallet and want to integrate it with the Dynamic SDK, but it can also be helpful if you just want to add support for a wallet that is not supported by Dynamic SDK by default.

Integration levels

You can integrate a wallet at several levels. Start with the lowest level that meets your needs and move up only when you need more control.

Supported wallet standards

If your wallet supports EIP-6963, Solana Wallet Standard, Sui Wallet Standard, or WalletConnect, no custom extension is needed.

Build a WalletProvider

Implement the WalletProvider interface to connect your wallet and sign messages through the SDK.

Add swap capabilities

Implement executeSwapTransaction so the SDK can use your wallet for Fireblocks Flow and Swaps.

Build a payment deep link

Build a deep link or QR code that hands a Fireblocks Flow deposit off to your mobile wallet app.

Which level should you choose?

  • Supported standard — fastest path; the SDK discovers the wallet automatically.
  • Build a WalletProvider — needed when the wallet does not follow a standard and you want the SDK to drive connection and signing.
  • Add swap capabilities — required on top of a WalletProvider if you want the wallet to be able to execute swap transactions. Required by Flow — submitFlowTransaction (Flow overview) — and Swaps — executeSwapTransaction.
  • Build a payment deep link — alternative to swap capabilities for mobile wallet apps that want to keep the send UX inside the wallet instead of signing through the SDK.
Last modified on August 5, 2026