> ## Documentation Index
> Fetch the complete documentation index at: https://www.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Wallet Provider

> Integrate a custom wallet with the Dynamic JavaScript SDK through a WalletProvider.

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](/docs/javascript/reference/creating-extensions/wallet-provider/supported-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.

<CardGroup cols={2}>
  <Card title="Supported wallet standards" icon="check" href="/docs/javascript/reference/creating-extensions/wallet-provider/supported-standards">
    If your wallet supports EIP-6963, Solana Wallet Standard, Sui Wallet Standard, or WalletConnect, no custom extension is needed.
  </Card>

  <Card title="Build a WalletProvider" icon="wallet" href="/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider">
    Implement the `WalletProvider` interface to connect your wallet and sign messages through the SDK.
  </Card>

  <Card title="Add swap capabilities" icon="arrow-right-arrow-left" href="/docs/javascript/reference/creating-extensions/wallet-provider/add-swap-capabilities">
    Implement `executeSwapTransaction` so the SDK can use your wallet for Fireblocks Flow and Swaps.
  </Card>

  <Card title="Build a payment deep link" icon="qrcode" href="/docs/javascript/reference/creating-extensions/wallet-provider/build-payment-deep-link">
    Build a deep link or QR code that hands a Fireblocks Flow deposit off to your mobile wallet app.
  </Card>
</CardGroup>

## 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`](/docs/javascript/reference/client/submit-flow-transaction) ([Flow overview](/docs/overview/fireblocks-flow)) — and Swaps — [`executeSwapTransaction`](/docs/javascript/reference/client/execute-swap-transaction).
* **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.

## Related services

* [Open deep links](/docs/javascript/reference/creating-extensions/services/open-deep-links) — open cross-platform deep links from an extension.
* [Wallet provider priority](/docs/javascript/reference/creating-extensions/services/wallet-provider-priority) — control how the registry resolves duplicate providers.
