Implement and register a custom WalletProvider with the Dynamic JavaScript SDK.
A WalletProvider connects a wallet to the SDK. It is for companies that control a wallet app or browser extension and want Dynamic’s SDK to route signing to it. At minimum it must implement chain, key, groupKey, metadata, walletProviderType, getActiveNetworkId, and getConnectedAddresses.
Extensions register wallet providers through the WalletProviderRegistry. Set a priority that reflects how the wallet is integrated. Higher-priority registrations win when the same key is registered more than once.
import { getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, WalletProviderPriority,} from "@dynamic-labs-sdk/client/core";import type { DynamicClient } from "@dynamic-labs-sdk/client";// The provider from above.import { myWalletProvider } from "./myWalletProvider";const MY_WALLET_EXTENSION_KEY = "myWallet";export const addMyWalletExtension = ( client: DynamicClient = getDefaultClient()): void => { if (hasExtension({ extensionKey: MY_WALLET_EXTENSION_KEY }, client)) { return; } registerExtension({ extensionKey: MY_WALLET_EXTENSION_KEY }, client); getWalletProviderRegistry(client).register({ priority: WalletProviderPriority.WALLET_SDK, walletProvider: myWalletProvider, });};
WalletProviderPriority.WALLET_SDK is the highest priority. Use it when you control the wallet’s own SDK. See Wallet provider priority for the full priority levels and registry replacement behavior.
The registry stores one provider per key. If a provider with the same key is registered again, the higher-priority registration wins. Keep key stable by using formatWalletProviderKey.
A WalletProvider is chain-specific. If your wallet supports more than one chain, create one provider per chain and register all of them from the same extension.For example, a wallet that supports EVM and Solana would have two providers:
import { WalletProviderEnum } from "@dynamic-labs/sdk-api-core";import type { WalletProvider } from "@dynamic-labs-sdk/client/core";import { getWalletProviderRegistry, formatWalletProviderKey, WalletProviderPriority } from "@dynamic-labs-sdk/client/core";// The provider from above, holding the fields both chains share.import { myWalletProvider } from "./myWalletProvider";const MY_WALLET_DISPLAY_NAME = "My Wallet";const evmProvider: WalletProvider = { ...myWalletProvider, chain: "EVM", key: formatWalletProviderKey({ chain: "EVM", displayName: MY_WALLET_DISPLAY_NAME, walletProviderType: WalletProviderEnum.BrowserExtension, }),};const solanaProvider: WalletProvider = { ...myWalletProvider, chain: "SOL", key: formatWalletProviderKey({ chain: "SOL", displayName: MY_WALLET_DISPLAY_NAME, walletProviderType: WalletProviderEnum.BrowserExtension, }),};getWalletProviderRegistry(client).register({ priority: WalletProviderPriority.WALLET_SDK, walletProvider: evmProvider,});getWalletProviderRegistry(client).register({ priority: WalletProviderPriority.WALLET_SDK, walletProvider: solanaProvider,});
The custom wallet provider is only available to the SDK after your extension has registered it. In the app that consumes the extension, create a DynamicClient, add the extension, and then connect.
import { createDynamicClient, connectAndVerifyWithWalletProvider,} from "@dynamic-labs-sdk/client";import { addMyWalletExtension } from "my-wallet-extension";const client = createDynamicClient({ environmentId: "YOUR_ENVIRONMENT_ID",});// Register the wallet provider with this client.addMyWalletExtension(client);const walletAccount = await connectAndVerifyWithWalletProvider( { walletProviderKey: MY_WALLET_KEY }, client);console.log("Connected and verified:", walletAccount.address);
Use connectWithWalletProvider instead of connectAndVerifyWithWalletProvider if you only want to connect without verifying ownership. You can also discover the provider with getAvailableWalletProvidersData once the extension is registered.
Last modified on September 21, 2026
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Dynamic","colors":{"primary":"#4779FF","light":"#A0BFFF","dark":"#69A5FF"},"logo":{"light":"https://mintcdn.com/dynamic-docs-testing/CXYm3HK725eun9ev/logo/dynamic-fireblocks-icon-light.svg?fit=max\u0026auto=format\u0026n=CXYm3HK725eun9ev\u0026q=85\u0026s=c050cd8c41715aa71119f91c19221cb3","dark":"https://mintcdn.com/dynamic-docs-testing/CXYm3HK725eun9ev/logo/dynamic-fireblocks-icon-dark.svg?fit=max\u0026auto=format\u0026n=CXYm3HK725eun9ev\u0026q=85\u0026s=434fa110e5847b7a23adc1abd636719e"},"favicon":"https://mintcdn.com/dynamic-docs-testing/C-CltRmvvkSqoMFQ/assets/favicon.png?fit=max\u0026auto=format\u0026n=C-CltRmvvkSqoMFQ\u0026q=85\u0026s=2bbf17fee49c1d60434f1fd77a2d8f38","api":{"mdx":{"auth":{"method":"bearer"}}},"background":{"image":"https://mintcdn.com/dynamic-docs-testing/C-CltRmvvkSqoMFQ/assets/images/general/background-image.png?fit=max\u0026auto=format\u0026n=C-CltRmvvkSqoMFQ\u0026q=85\u0026s=67a354a23840d92de3d1cb25c24ff27c","decoration":"gradient"},"navbar":{"links":[{"href":"https://www.dynamic.xyz/get-started","label":"Start Free"}],"primary":{"type":"button","label":"See it in action","href":"https://demo.dynamic.xyz/"}},"footer":{"socials":{"x":"https://x.com/dynamic_xyz","linkedin":"https://www.linkedin.com/company/dynamiclabs","slack":"https://www.dynamic.xyz/join-slack"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"system","latex":true},"integrations":{"gtm":{"tagId":"GTM-K9NXSDK"},"cookies":{"key":"dynamic-docs-cookie-consent","value":"accepted"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dynamic-docs-testing","hasAudioNarration":false,"actualSubdomain":"dynamic-docs-testing","customDomains":["www.dynamic.xyz"],"gitSource":{"type":"github","owner":"dynamic-labs","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae91f9dcf931df74071a0f3","collectionId":"08352c0e-59e9-430b-860f-aeff3e7571b7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae91f9dcf931df74071a0f3"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae91f9dcf931df74071a0f3","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Reference","count":1949},{"language":"default","tag":"REST API","count":1171},{"language":"default","tag":"Schemas","count":635},{"language":"default","tag":"Endpoints","count":532},{"language":"default","tag":"Javascript, React \u0026 React Native","count":303},{"language":"default","tag":"Legacy React","count":287},{"language":"default","tag":"SDK","count":231},{"language":"default","tag":"JavaScript SDK Reference","count":226},{"language":"default","tag":"Implement","count":210},{"language":"default","tag":"Wallets","count":186}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".dynamic-demos-link{position:relative;overflow:hidden;margin:.5rem 0 2rem;padding:2rem 1.75rem;border-radius:16px;border:1px solid rgba(148,163,184,.14);background:rgba(148,163,184,.04);text-align:center}html.dark .dynamic-demos-link{border-color:rgba(148,163,184,.12);background:rgba(148,163,184,.03)}.ddl-glow{position:absolute;inset:-40% auto auto 50%;width:28rem;height:28rem;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(71,121,255,.18),transparent 70%);pointer-events:none}html.dark .ddl-glow{background:radial-gradient(circle,rgba(71,121,255,.22),transparent 70%)}.ddl-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;max-width:32rem;margin:0 auto}.ddl-icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin-bottom:1rem;border-radius:999px;background:rgba(71,121,255,.12);color:#4779ff}html.dark .ddl-icon{background:rgba(71,121,255,.18);color:#93b4ff}.ddl-icon svg{width:1.25rem;height:1.25rem}.ddl-title{margin:0 0 .65rem;font-size:1.5rem;font-weight:700;line-height:1.25;letter-spacing:-.02em;color:#0f172a}html.dark .ddl-title{color:#f1f5f9}.ddl-copy{margin:0 0 1.35rem;font-size:1rem;line-height:1.65;color:#64748b}html.dark .ddl-copy{color:#94a3b8}.ddl-button,.ddl-copy strong{color:#4779ff;font-weight:600}html.dark .ddl-copy strong{color:#93b4ff}.ddl-button{display:inline-flex;align-items:center;gap:.45rem;padding:.75rem 1.15rem;border-radius:10px;background:#4779ff;color:#fff;font-size:.95rem;line-height:1;text-decoration:none;transition:background-color 160ms cubic-bezier(.2,0,0,1),transform 160ms cubic-bezier(.2,0,0,1)}.ddl-button:hover{background:#2f5fe0;transform:translateY(-1px)}.ddl-button:focus-visible{outline:2px solid #4779ff;outline-offset:3px}.ddl-button-icon{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.ddl-button{transition:none}.ddl-button:hover{transform:none}}.welcome-section{padding:1.3rem 1.5rem 0;border-radius:14px;border:1px solid rgba(148,163,184,.12);background:rgba(148,163,184,.04);margin-bottom:2rem}html.dark .welcome-section{border-color:rgba(148,163,184,.1);background:rgba(148,163,184,.03)}.welcome-word-rotator{margin:0 0 1rem;padding:0 0 1rem;border-bottom:1px dashed rgba(148,163,184,.2)}html.dark .welcome-word-rotator{border-bottom-color:rgba(148,163,184,.15)}.welcome-section h3{margin-top:1.75rem;margin-bottom:-1rem}.wwr-title{margin:0;font-size:2rem;font-weight:700;line-height:1.3;letter-spacing:-.02em;color:#0f172a}html.dark .wwr-title{color:#f1f5f9}.wwr-line{display:block}.wwr-line+.wwr-line{margin-top:.1rem}.wwr-word{white-space:nowrap}.wwr-char{display:inline-block;will-change:transform,opacity,filter;transform-style:preserve-3d;backface-visibility:hidden}.wwr-accent{color:#4779ff;font-weight:550;perspective:400px}html.dark .wwr-accent{color:#93b4ff}#banner{background-color:#4779ff}.event-hero{margin:0 0 1.5rem}.event-hero-banner{width:100%;height:auto;display:block;border-radius:14px;box-shadow:0 10px 32px rgba(15,23,42,.22)}.event-hero-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.event-tag{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .85rem;border-radius:999px;font-size:.85rem;font-weight:600;color:#2f5fe0;background:rgba(71,121,255,.12);border:1px solid rgba(71,121,255,.25)}html.dark .event-tag{color:#93b4ff;background:rgba(71,121,255,.16);border-color:rgba(71,121,255,.32)}@media (min-width:768px){.nav-logo{height:2.25rem!important;max-width:18rem!important}}.mcp-install-button{pointer-events:none!important;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.before\\:bg-background-light::before,.chat-assistant-floating-input::before{content:none!important;display:none!important;background:0 0!important;background-color:transparent!important;height:0!important}.rn-qs-dark{display:none}.rn-qs-light,html.dark .rn-qs-dark{display:block}.nav-tabs-item>div>svg,.nav-tabs-item>svg,html.dark .rn-qs-light,html.light .rn-qs-dark{display:none}html.light .rn-qs-light{display:block}.llm-copy-btn{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;padding:7px 14px;background-color:#4779ff;color:#fff;font-size:13px;font-weight:500;border:0;border-radius:6px;cursor:pointer;transition:background-color .15s ease,opacity .15s ease}.llm-copy-btn:hover{background-color:#2f5fe0}.llm-copy-btn--copied{background-color:#16a34a}.llm-copy-btn--copied:hover{background-color:#15803d}html.dark,html.light{--ds-subtitle:#8f93ab;--ds-primary:#5c89ff}html.dark{--ds-bg:#0c0e13;--ds-elevated:#1b1d22;--ds-border:#282b33;--ds-text:#ececec;--ds-muted:#6f7177}html.light{--ds-bg:#ffffff;--ds-elevated:#fafafb;--ds-border:#e9ecf2;--ds-text:#26272e;--ds-muted:#5f6478}html:is(.light, .dark) .DocSearch-Container,html:is(.light, .dark) .DocSearch-Modal{--docsearch-primary-color:var(--ds-primary);--docsearch-highlight-color:var(--ds-primary);--docsearch-logo-color:var(--ds-muted);--docsearch-text-color:var(--ds-text);--docsearch-muted-color:var(--ds-muted);--docsearch-hit-color:var(--ds-text);--docsearch-hit-active-color:var(--ds-text);--docsearch-container-background:rgb(0 0 0 / 0.6);--docsearch-modal-background:var(--ds-bg);--docsearch-searchbox-background:transparent;--docsearch-searchbox-focus-background:transparent;--docsearch-hit-background:transparent;--docsearch-footer-background:var(--ds-bg);--docsearch-modal-shadow:0 4px 8px -6px rgb(24 39 75 / 0.02),\n 0 8px 24px -4px rgb(24 39 75 / 0.05),\n 0 0 0 1px var(--ds-border);--docsearch-hit-shadow:none;--docsearch-footer-shadow:0 -1px 0 0 var(--ds-border);--docsearch-searchbox-shadow:none;--docsearch-key-gradient:var(--ds-bg);--docsearch-key-shadow:inset 0 0 0 1px var(--ds-border),\n 0 2px 0 0 var(--ds-border);--docsearch-key-pressed-shadow:inset 0 0 0 1px var(--ds-border),\n 0 1px 0 0 var(--ds-border);--docsearch-hit-height:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html:is(.light, .dark) .DocSearch-Modal{max-width:558px;height:auto;max-height:min(80vh,720px);border-radius:12px;overflow:hidden}html:is(.light, .dark) .DocSearch-Dropdown{height:auto;padding:12px 16px;max-height:calc(min(80vh,720px) - 56px - 54px)}html:is(.light, .dark) .DocSearch-Dropdown-Container{display:flex;flex-direction:column;gap:17px}html:is(.light, .dark) .DocSearch-Hits ul{display:flex;flex-direction:column;gap:2px}html:is(.light, .dark) .DocSearch-SearchBar{padding:12px;border-bottom:1px solid var(--ds-border)}html:is(.light, .dark) .DocSearch-SearchBar:has(.DocSearch-Input:not(:placeholder-shown)){background:var(--ds-elevated)}html:is(.light, .dark) .DocSearch-Form{height:auto;padding:0;gap:8px;background:0 0;box-shadow:none}html:is(.light, .dark) .DocSearch-Input{padding:0;font-size:14px;font-weight:400;line-height:20px;color:var(--ds-text)}html:is(.light, .dark) .DocSearch-Input::placeholder{color:var(--ds-muted);opacity:1}html:is(.light, .dark) .DocSearch-Hit-source{height:auto;margin:0 0 6px;padding:0;background:0 0;font-size:12px;font-weight:500;line-height:18px;letter-spacing:0;text-transform:none;color:var(--ds-primary)}html:is(.light, .dark) .DocSearch-Hit{height:auto;padding:0}html:is(.light, .dark) .DocSearch-Hit a{height:54px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:0 0;display:flex;align-items:center;transition-property:background-color,border-color;transition-duration:120ms;transition-timing-function:cubic-bezier(.2,0,0,1)}html:is(.light, .dark) .DocSearch-Hit[aria-selected=true] a{background:var(--ds-elevated);border-color:var(--ds-border)}html:is(.light, .dark) .DocSearch-Hit-Container{display:flex;align-items:center;width:100%;height:auto;min-height:0;gap:8px}html:is(.light, .dark) .DocSearch-Hit-content-wrapper{flex:1 1 auto;min-width:0}html:is(.light, .dark) .DocSearch-Hit-action{margin-left:auto;flex-shrink:0}html:is(.light, .dark) .DocSearch-Hit-title{font-size:14px;font-weight:500;line-height:20px;color:var(--ds-text)}html:is(.light, .dark) .DocSearch-Hit-path{font-size:12px;font-weight:400;line-height:18px;color:var(--ds-muted)}html:is(.light, .dark) .DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path{color:var(--ds-subtitle)}html:is(.light, .dark) .DocSearch-Hit--Result.DocSearch-Hit--Child .DocSearch-Hit-title,html:is(.light, .dark) .DocSearch-Hit--Result.DocSearch-Hit--Lvl1 .DocSearch-Hit-title,html:is(.light, .dark) .DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,html:is(.light, .dark) .DocSearch-Hit[aria-selected=true] mark{color:var(--ds-primary)}html:is(.light, .dark) .DocSearch-Hit-action,html:is(.light, .dark) .DocSearch-Logo a>*{display:none}html:is(.light, .dark) .DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:2px;border-radius:4px;background:var(--ds-bg);box-shadow:inset 0 0 0 1px var(--ds-border),0 2px 0 0 var(--ds-border);flex-shrink:0}html:is(.light, .dark) .DocSearch-Footer{height:auto;padding:16px;background:var(--ds-bg);border-top:1px solid var(--ds-border);border-radius:0 0 12px 12px;box-shadow:none}html:is(.light, .dark) .DocSearch-Commands{gap:20px}html:is(.light, .dark) .DocSearch-Commands li{gap:6px}html:is(.light, .dark) .DocSearch-Commands-Key{position:relative;width:22px;height:22px;min-width:22px;margin:0;padding:2px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:var(--ds-muted)}html:is(.light, .dark) .DocSearch-Label{font-size:14px;font-weight:400;line-height:20px;color:var(--ds-muted)}html:is(.light, .dark) .DocSearch-Logo a{font-size:11px;font-weight:400;line-height:1;color:var(--ds-muted);text-decoration:none;border-radius:2px;opacity:.6;transition-property:opacity;transition-duration:150ms;transition-timing-function:cubic-bezier(.2,0,0,1)}html:is(.light, .dark) .DocSearch-Logo a::before{content:'Search by Algolia'}html:is(.light, .dark) .DocSearch-Hit-Tree,html:is(.light, .dark) .DocSearch-Hit-action-button,html:is(.light, .dark) .DocSearch-Hit-action>*,html:is(.light, .dark) .DocSearch-Hit-action~.DocSearch-Hit-action,html:is(.light, .dark) .DocSearch-Hit-icon>*,html:is(.light, .dark) .DocSearch-MagnifierLabel>*,html:is(.light, .dark) .DocSearch-Reset>*{display:none!important}html:is(.light, .dark) .DocSearch-Commands li:nth-child(1) .DocSearch-Commands-Key>*,html:is(.light, .dark) .DocSearch-Commands li:nth-child(2) .DocSearch-Commands-Key>*{display:none!important}html:is(.light, .dark) .DocSearch-MagnifierLabel{width:16px;height:16px}html:is(.light, .dark) .DocSearch-MagnifierLabel,html:is(.light, .dark) .DocSearch-Reset{display:inline-block;padding:0;background-color:var(--ds-muted);-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}html:is(.light, .dark) .DocSearch-Hit-icon,html:is(.light, .dark) .DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action::before{width:16px;height:16px;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}html:is(.light, .dark) .DocSearch-Hit-icon{display:inline-block;padding:0;background-color:var(--ds-muted)}html:is(.light, .dark) .DocSearch-MagnifierLabel{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1zZWFyY2giIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiA+IDxwYXRoIGQ9Im0yMSAyMS00LjM0LTQuMzQiIC8+IDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+IDwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1zZWFyY2giIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiA+IDxwYXRoIGQ9Im0yMSAyMS00LjM0LTQuMzQiIC8+IDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+IDwvc3ZnPg==)}html:is(.light, .dark) .DocSearch-Reset{position:relative;width:16px;height:16px;border:0;border-radius:2px;cursor:pointer;transition-property:transform,opacity;transition-duration:100ms;transition-timing-function:cubic-bezier(.2,0,0,1);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS14IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgPiA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPiA8cGF0aCBkPSJtNiA2IDEyIDEyIiAvPiA8L3N2Zz4=);mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS14IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgPiA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPiA8cGF0aCBkPSJtNiA2IDEyIDEyIiAvPiA8L3N2Zz4=)}html:is(.light, .dark) .DocSearch-Reset[hidden]{display:none}html:is(.light, .dark) .DocSearch-Reset::after{content:'';position:absolute;inset:-12px}html:is(.light, .dark) .DocSearch-Hit-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1maWxlLXRleHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiA+IDxwYXRoIGQ9Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6IiAvPiA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4gPHBhdGggZD0iTTEwIDlIOCIgLz4gPHBhdGggZD0iTTE2IDEzSDgiIC8+IDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPiA8L3N2Zz4=);mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1maWxlLXRleHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiA+IDxwYXRoIGQ9Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6IiAvPiA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4gPHBhdGggZD0iTTEwIDlIOCIgLz4gPHBhdGggZD0iTTE2IDEzSDgiIC8+IDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPiA8L3N2Zz4=)}html:is(.light, .dark) .DocSearch-Hit--Result.DocSearch-Hit--Child .DocSearch-Hit-icon,html:is(.light, .dark) .DocSearch-Hit--Result.DocSearch-Hit--Lvl1 .DocSearch-Hit-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1oYXNoIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgPiA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iOSIgeTI9IjkiIC8+IDxsaW5lIHgxPSI0IiB4Mj0iMjAiIHkxPSIxNSIgeTI9IjE1IiAvPiA8bGluZSB4MT0iMTAiIHgyPSI4IiB5MT0iMyIgeTI9IjIxIiAvPiA8bGluZSB4MT0iMTYiIHgyPSIxNCIgeTE9IjMiIHkyPSIyMSIgLz4gPC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1oYXNoIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgPiA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iOSIgeTI9IjkiIC8+IDxsaW5lIHgxPSI0IiB4Mj0iMjAiIHkxPSIxNSIgeTI9IjE1IiAvPiA8bGluZSB4MT0iMTAiIHgyPSI4IiB5MT0iMyIgeTI9IjIxIiAvPiA8bGluZSB4MT0iMTYiIHgyPSIxNCIgeTE9IjMiIHkyPSIyMSIgLz4gPC9zdmc+)}html:is(.light, .dark) .DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon{background-color:var(--ds-text)}html:is(.light, .dark) .DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action::before{content:'';background-color:var(--ds-text);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1jb3JuZXItZG93bi1sZWZ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgPiA8cGF0aCBkPSJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCIgLz4gPHBhdGggZD0ibTkgMTAtNSA1IDUgNSIgLz4gPC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1jb3JuZXItZG93bi1sZWZ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgPiA8cGF0aCBkPSJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCIgLz4gPHBhdGggZD0ibTkgMTAtNSA1IDUgNSIgLz4gPC9zdmc+)}html:is(.light, .dark) .DocSearch-Commands li:nth-child(1) .DocSearch-Commands-Key::before,html:is(.light, .dark) .DocSearch-Commands li:nth-child(2) .DocSearch-Commands-Key:nth-child(1)::before,html:is(.light, .dark) .DocSearch-Commands li:nth-child(2) .DocSearch-Commands-Key:nth-child(2)::before{content:'';width:16px;height:16px;background-color:var(--ds-muted);-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}html:is(.light, .dark) .DocSearch-Commands li:nth-child(1) .DocSearch-Commands-Key::before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1jb3JuZXItZG93bi1sZWZ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgPiA8cGF0aCBkPSJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCIgLz4gPHBhdGggZD0ibTkgMTAtNSA1IDUgNSIgLz4gPC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1jb3JuZXItZG93bi1sZWZ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgPiA8cGF0aCBkPSJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCIgLz4gPHBhdGggZD0ibTkgMTAtNSA1IDUgNSIgLz4gPC9zdmc+)}html:is(.light, .dark) .DocSearch-Commands li:nth-child(2) .DocSearch-Commands-Key:nth-child(1)::before{-webkit-mask-image:url(\"data:image/svg+xml;utf8,\u003csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\u003cpath d='m5 12 7-7 7 7'/>\u003cpath d='M12 19V5'/>\u003c/svg>\");mask-image:url(\"data:image/svg+xml;utf8,\u003csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\u003cpath d='m5 12 7-7 7 7'/>\u003cpath d='M12 19V5'/>\u003c/svg>\")}html:is(.light, .dark) .DocSearch-Commands li:nth-child(2) .DocSearch-Commands-Key:nth-child(2)::before{-webkit-mask-image:url(\"data:image/svg+xml;utf8,\u003csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\u003cpath d='M12 5v14'/>\u003cpath d='m19 12-7 7-7-7'/>\u003c/svg>\");mask-image:url(\"data:image/svg+xml;utf8,\u003csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\u003cpath d='M12 5v14'/>\u003cpath d='m19 12-7 7-7-7'/>\u003c/svg>\")}html:is(.light, .dark) .DocSearch-Reset:focus-visible{outline:2px solid var(--ds-primary);outline-offset:4px}html:is(.light, .dark) .DocSearch-Logo a:focus-visible{outline:2px solid var(--ds-primary);opacity:1;outline-offset:3px}html:is(.light, .dark) .DocSearch-Reset:active{transform:scale(.96)}@media (hover:hover){html:is(.light, .dark) .DocSearch-Reset:hover{opacity:.8}html:is(.light, .dark) .DocSearch-Logo a:hover{opacity:1}}@media (prefers-reduced-motion:reduce){html:is(.light, .dark) .DocSearch-Hit a,html:is(.light, .dark) .DocSearch-Logo a,html:is(.light, .dark) .DocSearch-Reset{transition:none}html:is(.light, .dark) .DocSearch-Reset:active{transform:none}}.nav-tabs{flex:1 1 auto;min-width:0;align-items:center;gap:.25rem!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;scroll-padding-inline:.625rem}.nav-tabs::-webkit-scrollbar{display:none}.nav-tabs-item{flex:0 0 auto;white-space:nowrap;height:auto;padding:.375rem .625rem;border-radius:.5rem;gap:0!important;color:#5f6478;transition:background-color .15s ease,color .15s ease}.nav-tabs-item>div.absolute{display:none!important}.nav-tabs-item[data-active=true]{background-color:#edf1fe;color:#2b55c7}.nav-tabs-item:focus-visible{outline:2px solid #4779ff;outline-offset:2px;color:#26272e}html.dark .nav-tabs-item{color:#8f93ab}html.dark .nav-tabs-item:focus-visible{outline-color:#69a5ff;color:#ececec}html.dark .nav-tabs-item[data-active=true]{background-color:rgb(105 165 255/14%);color:#a0bfff}@media (hover:hover){.nav-tabs-item:hover{background-color:#f4f5f8;color:#26272e}.nav-tabs-item[data-active=true]:hover{background-color:#e4ebfd;color:#2b55c7}html.dark .nav-tabs-item:hover{background-color:#1b1d22;color:#ececec}html.dark .nav-tabs-item[data-active=true]:hover{background-color:rgb(105 165 255/20%);color:#a0bfff}}@media (prefers-reduced-motion:reduce){.nav-tabs-item{transition:none}}div:has(>.nav-tabs){border-bottom:1px solid #e9ecf2;height:auto!important;padding-block:.4375rem}html.dark div:has(>.nav-tabs){border-bottom-color:#282b33}a[href$='demo.dynamic.xyz/']>span[class*=bg-primary-dark]{background-color:#2e57d1}@media (hover:hover){a[href$='demo.dynamic.xyz/']:hover>span[class*=bg-primary-dark]{background-color:#22409e}}#sidebar-content .sidebar-group li:has(>button>div:first-child:not(.flex-1))>ul{margin-left:1.5rem}"}],"page":{"pagePath":"javascript/reference/creating-extensions/wallet-provider/build-wallet-provider","slug":"/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider","pageMetadata":{"title":"Build a WalletProvider","description":"Implement and register a custom WalletProvider with the Dynamic JavaScript SDK.","docType":"guide","href":"/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Implement and register a custom WalletProvider with the Dynamic JavaScript SDK.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`WalletProvider`}),` connects a wallet to the SDK. It is for companies that control a wallet app or browser extension and want Dynamic’s SDK to route signing to it. At minimum it must implement `,_jsx(_components.code,{children:`chain`}),`, `,_jsx(_components.code,{children:`key`}),`, `,_jsx(_components.code,{children:`groupKey`}),`, `,_jsx(_components.code,{children:`metadata`}),`, `,_jsx(_components.code,{children:`walletProviderType`}),`, `,_jsx(_components.code,{children:`getActiveNetworkId`}),`, and `,_jsx(_components.code,{children:`getConnectedAddresses`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`minimal-walletprovider`,children:`Minimal WalletProvider`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`48`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`48`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`WalletProviderEnum`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@dynamic-labs/sdk-api-core\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`WalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@dynamic-labs-sdk/client/core\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` formatWalletProviderGroupKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` formatWalletProviderKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`} `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@dynamic-labs-sdk/client/core\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_DISPLAY_NAME`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"My Wallet\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` formatWalletProviderKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Replace with the chain your wallet supports.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Create a separate provider for each chain you support.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` chain:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"EVM\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` displayName:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_DISPLAY_NAME`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` walletProviderType:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` WalletProviderEnum`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BrowserExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` myWalletProvider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` WalletProvider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Replace with the chain your wallet supports.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` chain:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"EVM\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` key:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_KEY`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` groupKey:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` formatWalletProviderGroupKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`MY_WALLET_DISPLAY_NAME`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` metadata:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` displayName:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_DISPLAY_NAME`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` icon:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://example.com/icon.svg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` walletProviderType:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` WalletProviderEnum`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BrowserExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Replace with your wallet connection logic.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` connect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` () `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` addresses:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [{ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`address:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"0x...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }),`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Replace with your wallet API calls.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getConnectedAddresses`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` () `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` addresses:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0x...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }),`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Replace with your wallet API calls.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getActiveNetworkId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` () `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` networkId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }),`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Replace with your wallet API calls.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` signMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ({ `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signature:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"0x...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`register-the-provider`,children:`Register the provider`}),`\n`,_jsxs(_components.p,{children:[`Extensions register wallet providers through the `,_jsx(_components.code,{children:`WalletProviderRegistry`}),`. Set a priority that reflects how the wallet is integrated. Higher-priority registrations win when the same `,_jsx(_components.code,{children:`key`}),` is registered more than once.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`28`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`28`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` getDefaultClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` getWalletProviderRegistry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` hasExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` registerExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` WalletProviderPriority`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`} `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@dynamic-labs-sdk/client/core\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`DynamicClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@dynamic-labs-sdk/client\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// The provider from above.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`myWalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"./myWalletProvider\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_EXTENSION_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"myWallet\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` addMyWalletExtension`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` DynamicClient`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getDefaultClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` void`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` =>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`hasExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`extensionKey:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_EXTENSION_KEY`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` registerExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`extensionKey:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_EXTENSION_KEY`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getWalletProviderRegistry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`register`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` priority:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` WalletProviderPriority`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`WALLET_SDK`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` walletProvider:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` myWalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`WalletProviderPriority.WALLET_SDK`}),` is the highest priority. Use it when you control the wallet’s own SDK. See `,_jsx(_components.a,{href:`/javascript/reference/creating-extensions/services/wallet-provider-priority`,children:`Wallet provider priority`}),` for the full priority levels and registry replacement behavior.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The registry stores one provider per `,_jsx(_components.code,{children:`key`}),`. If a provider with the same `,_jsx(_components.code,{children:`key`}),` is registered again, the higher-priority registration wins. Keep `,_jsx(_components.code,{children:`key`}),` stable by using `,_jsx(_components.code,{children:`formatWalletProviderKey`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`one-provider-per-chain`,children:`One provider per chain`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`WalletProvider`}),` is chain-specific. If your wallet supports more than one chain, create one provider per chain and register all of them from the same extension.`]}),`\n`,_jsx(_components.p,{children:`For example, a wallet that supports EVM and Solana would have two providers:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`38`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`38`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`WalletProviderEnum`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@dynamic-labs/sdk-api-core\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`WalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@dynamic-labs-sdk/client/core\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`getWalletProviderRegistry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`formatWalletProviderKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`WalletProviderPriority`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@dynamic-labs-sdk/client/core\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// The provider from above, holding the fields both chains share.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`myWalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"./myWalletProvider\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_DISPLAY_NAME`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"My Wallet\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` evmProvider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` WalletProvider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`myWalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` chain:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"EVM\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` key:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` formatWalletProviderKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` chain:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"EVM\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` displayName:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_DISPLAY_NAME`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` walletProviderType:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` WalletProviderEnum`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BrowserExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` solanaProvider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` WalletProvider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`myWalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` chain:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"SOL\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` key:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` formatWalletProviderKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` chain:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"SOL\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` displayName:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_DISPLAY_NAME`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` walletProviderType:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` WalletProviderEnum`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BrowserExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getWalletProviderRegistry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`register`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` priority:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` WalletProviderPriority`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`WALLET_SDK`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` walletProvider:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` evmProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getWalletProviderRegistry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`register`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` priority:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` WalletProviderPriority`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`WALLET_SDK`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` walletProvider:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` solanaProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`connect-the-wallet`,children:`Connect the wallet`}),`\n`,_jsxs(_components.p,{children:[`The custom wallet provider is only available to the SDK after your extension has registered it. In the app that consumes the extension, create a `,_jsx(_components.code,{children:`DynamicClient`}),`, add the extension, and then connect.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` createDynamicClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` connectAndVerifyWithWalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`} `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@dynamic-labs-sdk/client\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`addMyWalletExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"my-wallet-extension\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` createDynamicClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` environmentId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_ENVIRONMENT_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Register the wallet provider with this client.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`addMyWalletExtension`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` walletAccount`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` connectAndVerifyWithWalletProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`walletProviderKey:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` MY_WALLET_KEY`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Connected and verified:\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`walletAccount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`address`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`connectWithWalletProvider`}),` instead of `,_jsx(_components.code,{children:`connectAndVerifyWithWalletProvider`}),` if you only want to connect without verifying ownership. You can also discover the provider with `,_jsx(_components.code,{children:`getAvailableWalletProvidersData`}),` once the extension is registered.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Build a WalletProvider","description":"Implement and register a custom WalletProvider with the Dynamic JavaScript SDK.","docType":"guide","href":"/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Minimal WalletProvider","slug":"minimal-walletprovider","depth":2,"children":[]},{"title":"Register the provider","slug":"register-the-provider","depth":2,"children":[]},{"title":"One provider per chain","slug":"one-provider-per-chain","depth":2,"children":[]},{"title":"Connect the wallet","slug":"connect-the-wallet","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/dynamic-docs-testing/fd6becaed25bf0d8/algolia-docsearch.js","/docs/_mintlify/custom/dynamic-docs-testing/078be96a1e454d1f/generate-llms.js","/docs/_mintlify/custom/dynamic-docs-testing/14f3898c5e985cd5/snippets/gsap-text-plugin.js","/docs/_mintlify/custom/dynamic-docs-testing/c174bfce53a72941/snippets/gsap.js","/docs/_mintlify/custom/dynamic-docs-testing/ea6028ffcc794f21/llm-copy-button.js","/docs/_mintlify/custom/dynamic-docs-testing/c071bd14c4f40dfd/onetrust.js"],"subdomain":"dynamic-docs-testing","siteName":"Dynamic","title":"Build a WalletProvider - Dynamic","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-01T10:13:47.909Z","gitLastModified":"2026-09-21T11:50:17.000Z","originalFileLocation":"javascript/reference/creating-extensions/wallet-provider/build-wallet-provider.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Implement and register a custom WalletProvider with the Dynamic JavaScript SDK.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Dynamic\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Build a WalletProvider - Dynamic\">\u003cmeta data-mint-head property=\"og:description\" content=\"Implement and register a custom WalletProvider with the Dynamic JavaScript SDK.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dynamic\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dynamic-docs-testing.mintlify.app/_mintlify/api/og/v2?division=Wallet+Provider\u0026amp;title=Build+a+WalletProvider\u0026amp;description=Implement+and+register+a+custom+WalletProvider+with+the+Dynamic+JavaScript+SDK.\u0026amp;theme=9bec92bca96868fc0aaaeb3b\u0026amp;signature=2a725d8aabf5151d7acfc1f38a3a9e73f8e3ffa02222bd2e991be843a051330d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Build a WalletProvider - Dynamic\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Implement and register a custom WalletProvider with the Dynamic JavaScript SDK.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dynamic-docs-testing.mintlify.app/_mintlify/api/og/v2?division=Wallet+Provider\u0026amp;title=Build+a+WalletProvider\u0026amp;description=Implement+and+register+a+custom+WalletProvider+with+the+Dynamic+JavaScript+SDK.\u0026amp;theme=9bec92bca96868fc0aaaeb3b\u0026amp;signature=2a725d8aabf5151d7acfc1f38a3a9e73f8e3ffa02222bd2e991be843a051330d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/dynamic-docs-testing/mdILYDruq-iWk8yv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Dynamic\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4779FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.dynamic.xyz/#organization\",\"name\":\"Dynamic\",\"url\":\"https://www.dynamic.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/dynamic-docs-testing/CXYm3HK725eun9ev/logo/dynamic-fireblocks-icon-light.svg?fit=max\u0026auto=format\u0026n=CXYm3HK725eun9ev\u0026q=85\u0026s=c050cd8c41715aa71119f91c19221cb3\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.dynamic.xyz/docs#website\",\"name\":\"Dynamic\",\"url\":\"https://www.dynamic.xyz/docs\",\"publisher\":{\"@id\":\"https://www.dynamic.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider#webpage\",\"url\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider\",\"name\":\"Build a WalletProvider\",\"description\":\"Implement and register a custom WalletProvider with the Dynamic JavaScript SDK.\",\"dateModified\":\"2026-09-21T11:50:17.000Z\",\"isPartOf\":{\"@id\":\"https://www.dynamic.xyz/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"JavaScript SDK Reference\",\"item\":\"https://www.dynamic.xyz/docs/javascript/reference/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extensions\",\"item\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Wallet Provider\",\"item\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/overview\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Build a WalletProvider\",\"item\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider#article\",\"headline\":\"Build a WalletProvider\",\"name\":\"Build a WalletProvider\",\"description\":\"Implement and register a custom WalletProvider with the Dynamic JavaScript SDK.\",\"url\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider\",\"mainEntityOfPage\":{\"@id\":\"https://www.dynamic.xyz/docs/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider#webpage\"},\"dateModified\":\"2026-09-21T11:50:17.000Z\",\"publisher\":{\"@id\":\"https://www.dynamic.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://www.dynamic.xyz/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Dynamic\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Dynamic","nav":{"global":null,"tabs":[{"tab":"Get Started","icon":"rocket","pages":[{"title":"Get Started","href":"/get-started/welcome"}]},{"tab":"Embedded Wallets","icon":"wallet","pages":[{"title":"Embedded Wallets","href":"/embedded-wallets/mpc/overview"}]},{"tab":"Business Accounts","icon":"building","pages":[{"title":"Business Accounts","href":"/business-accounts/accounts"}]},{"tab":"Policies","icon":"shield-check","pages":[{"title":"Policies","href":"/embedded-wallets/mpc/policies/overview"}]},{"tab":"Auth","icon":"door-open","pages":[{"title":"Auth","href":"/auth/overview"}]},{"tab":"Agents","icon":"server","pages":[{"title":"Agents","href":"/agents/overview"}]},{"tab":"Fireblocks Flow","icon":"coins","pages":[{"title":"Fireblocks Flow","href":"/flow/overview"}]},{"tab":"Earn","icon":"chart-line","pages":[{"title":"Earn","href":"/earn/overview"}]},{"tab":"Funding","icon":"money-bill-transfer","pages":[{"title":"Funding","href":"/funding/overview"}]},{"tab":"Reference","icon":"book-open","menu":[{"item":"Javascript, React \u0026 React Native","icon":"js","groups":[{"group":"JavaScript SDK Reference","pages":[{"title":"JavaScript SDK Reference","href":"/javascript/reference/overview"},{"group":"Events","icon":"bell","pages":[{"title":"onEvent","href":"/javascript/reference/client/on-event"},{"title":"offEvent","href":"/javascript/reference/client/off-event"},{"title":"Events Catalog","href":"/javascript/reference/client/events-catalog"}]},{"group":"Wallets (General)","icon":"wallet","pages":[{"title":"Get Wallet Options Catalogue","href":"/javascript/reference/wallets/get-wallet-options-catalogue"},{"title":"Getting Available Wallets to Connect","href":"/javascript/reference/wallets/get-available-wallets-to-connect"},{"title":"Connect a Wallet by Catalogue Key","href":"/javascript/reference/wallets/connect-wallet-option"},{"title":"Getting Connected Addresses","href":"/javascript/reference/wallets/get-connected-addresses"},{"title":"Getting Wallet Accounts","href":"/javascript/reference/wallets/get-wallet-accounts"},{"title":"Getting the Wallet Account Given an Address and Chain","href":"/javascript/reference/wallets/get-wallet-account-from-address"},{"title":"Comparing Two Addresses on a Chain","href":"/javascript/reference/wallets/is-same-address"},{"title":"Getting Wallet Provider Data by Key","href":"/javascript/reference/wallets/get-wallet-provider-data-by-key"},{"title":"Getting a Wallet Account Address by Type","href":"/javascript/reference/wallets/get-wallet-account-address-by-type"},{"title":"Getting Networks Data","href":"/javascript/reference/wallets/get-networks-data"},{"title":"Getting Active Network","href":"/javascript/reference/wallets/get-active-network"},{"title":"Switching Active Network","href":"/javascript/reference/wallets/switch-active-network"},{"title":"Adding a network","href":"/javascript/reference/wallets/add-network"},{"title":"Getting Multichain Token Balances","href":"/javascript/reference/wallets/get-multichain-token-balances"},{"title":"Getting Token Balances","href":"/javascript/reference/wallets/get-token-balances"},{"title":"Getting Native Balance","href":"/javascript/reference/wallets/get-native-balance"},{"title":"Get Balances for All Wallets","href":"/javascript/reference/wallets/get-balance-for-all-wallets"},{"title":"Getting Transaction History","href":"/javascript/reference/wallets/get-transaction-history"},{"title":"Checking Wallet Account Availability","href":"/javascript/reference/wallets/check-wallet-account-availability"},{"title":"Signing a Message","href":"/javascript/reference/wallets/sign-message"},{"title":"transferAmount","href":"/javascript/reference/wallets/transfer-amount"},{"title":"Removing a Wallet Account","href":"/javascript/reference/wallets/remove-wallet-account"},{"title":"Wallet Provider Events","href":"/javascript/reference/wallets/wallet-provider-events"},{"title":"canConnectWithHardwareWallet","href":"/javascript/reference/client/can-connect-with-hardware-wallet"},{"title":"isHardwareWalletAccount","href":"/javascript/reference/client/is-hardware-wallet-account"}]},{"group":"Embedded Wallets (MPC)","icon":"vault","pages":[{"title":"getGoogleDriveBackupReadiness","href":"/javascript/reference/waas/get-google-drive-backup-readiness"},{"title":"Checking if Dynamic WaaS is enabled","href":"/javascript/reference/waas/checking-if-waas-is-enabled"},{"title":"Checking WaaS Wallet Account Type","href":"/javascript/reference/waas/checking-waas-wallet-account-type"},{"title":"Creating WaaS Wallet Accounts","href":"/javascript/reference/waas/creating-waas-wallet-accounts"},{"title":"Exporting WaaS Private Key","href":"/javascript/reference/waas/exporting-waas-private-key"},{"title":"Importing WaaS Private Key","href":"/javascript/reference/waas/importing-waas-private-key"},{"title":"Migrate from Fireblocks","href":"/javascript/reference/waas/migrate-from-fireblocks"},{"title":"Triggering Delegation","href":"/javascript/wallets/embedded-wallets/mpc/delegated-access/triggering-delegation"},{"title":"Revoking Delegation","href":"/javascript/wallets/embedded-wallets/mpc/delegated-access/revoking-delegation"}]},{"group":"Authentication","icon":"door-open","pages":[{"title":"Social Account Linking","href":"/javascript/authentication-methods/social-linking"},{"title":"Authenticate with an external JWT","href":"/javascript/authentication-methods/external-jwt"},{"title":"Refresh Authentication","href":"/javascript/authentication-methods/refresh-auth"},{"title":"Refresh User Data","href":"/javascript/authentication-methods/refresh-user"},{"title":"Check User Scopes","href":"/javascript/authentication-methods/is-user-onboarding-complete"},{"title":"Session-Based MFA","href":"/javascript/authentication-methods/mfa/session-mfa"},{"title":"Check MFA Authentication Status","href":"/javascript/authentication-methods/is-user-missing-mfa-auth"},{"title":"Check Recovery Codes Acknowledgment","href":"/javascript/authentication-methods/is-pending-recovery-codes-acknowledgment"},{"title":"Passkeys","href":"/javascript/authentication-methods/mfa/passkey"},{"title":"Authenticator Apps","href":"/javascript/authentication-methods/mfa/totp"},{"title":"Recovery Codes","href":"/javascript/authentication-methods/mfa/recovery-codes"},{"title":"Delete User Account","href":"/javascript/reference/client/delete-user"}]},{"group":"Chains \u0026 Networks","icon":"link","pages":[{"group":"EVM","icon":"ethereum","pages":[{"title":"simulateEvmTransaction","href":"/javascript/reference/evm/simulate-evm-transaction"},{"title":"calculateEvmTransactionFee","href":"/javascript/reference/evm/calculate-evm-transaction-fee"},{"title":"Checking EVM Wallet Account Type","href":"/javascript/reference/evm/checking-evm-wallet-account-type"},{"title":"Getting a Viem WalletClient","href":"/javascript/reference/evm/getting-viem-wallet-client"},{"title":"Getting a Viem PublicClient","href":"/javascript/reference/evm/getting-viem-public-client"},{"title":"Validate Signatures","href":"/javascript/reference/evm/validate-signatures"},{"title":"EIP-5792 (Batched Calls)","href":"/javascript/reference/evm/eip-5792"},{"title":"Sign a Transaction","href":"/javascript/reference/evm/sign-transaction"},{"title":"Sign Typed Data (EIP-712)","href":"/javascript/reference/evm/sign-typed-data"},{"group":"Native gas sponsorship","pages":[{"title":"EVM Gas Sponsorship","sidebarTitle":"Native EVM gas sponsorship","href":"/javascript/reference/evm/evm-gas-sponsorship"},{"title":"sendSponsoredTransaction","href":"/javascript/reference/evm/send-sponsored-transaction"},{"title":"Splitting sign \u0026 send","sidebarTitle":"Splitting sign \u0026 send","href":"/javascript/reference/evm/splitting-sign-and-send"},{"title":"Managing EIP-7702 delegation","sidebarTitle":"Managing EIP-7702 delegation","href":"/javascript/reference/evm/managing-7702-delegation"}]}]},{"group":"Solana","icon":"bolt","pages":[{"title":"addPhantomRedirectSolanaExtension","href":"/javascript/reference/solana/phantom-redirect-extension"},{"title":"simulateSolanaTransaction","href":"/javascript/reference/solana/simulate-solana-transaction"},{"title":"calculateSolanaTransactionFee","href":"/javascript/reference/solana/calculate-solana-transaction-fee"},{"title":"isSolanaGasSponsorshipEnabled","href":"/javascript/reference/solana/is-solana-gas-sponsorship-enabled"},{"title":"Checking Solana Wallet Account Type","href":"/javascript/reference/solana/checking-solana-wallet-account-type"},{"title":"Signing and Sending Transactions with Solana","href":"/javascript/reference/solana/signing-sending-transactions"},{"title":"Solana Connection","href":"/javascript/reference/solana/getting-solana-connection"},{"title":"SVM Gas Sponsorship","href":"/javascript/reference/solana/svm-gas-sponsorship"}]},{"group":"Bitcoin","icon":"bitcoin","pages":[{"title":"sendBitcoin","href":"/javascript/reference/bitcoin/send-bitcoin"},{"title":"signPsbt","href":"/javascript/reference/bitcoin/sign-psbt"},{"title":"signPsbts","href":"/javascript/reference/bitcoin/sign-psbts"},{"title":"signMessageWithCustomOptions","href":"/javascript/reference/bitcoin/sign-message-with-custom-options"},{"title":"sendRawTransaction","href":"/javascript/reference/bitcoin/send-raw-transaction"},{"title":"Adding Bitcoin Extensions","href":"/javascript/reference/bitcoin/adding-bitcoin-extension"},{"title":"Checking Bitcoin Wallet Account Type","href":"/javascript/reference/bitcoin/checking-bitcoin-wallet-account-type"},{"title":"Embedded Wallet Differences","href":"/javascript/reference/bitcoin/embedded-wallet-differences"}]},{"group":"Aptos","icon":"layer-group","pages":[{"title":"getAptosClient","href":"/javascript/reference/aptos/get-aptos-client"},{"title":"Adding Aptos Extensions","href":"/javascript/reference/aptos/adding-aptos-extension"},{"title":"Checking Aptos Wallet Account Type","href":"/javascript/reference/aptos/checking-aptos-wallet-account-type"},{"title":"signTransaction (Aptos)","href":"/javascript/reference/aptos/sign-transaction"},{"title":"signAndSubmitTransaction (Aptos)","href":"/javascript/reference/aptos/sign-and-submit-transaction"}]},{"group":"Sui","icon":"water","pages":[{"title":"getSuiClient","href":"/javascript/reference/sui/get-sui-client"},{"title":"Adding Sui Extensions","href":"/javascript/reference/sui/adding-sui-extension"},{"title":"Checking Sui Wallet Account Type","href":"/javascript/reference/sui/checking-sui-wallet-account-type"},{"title":"signTransaction (Sui)","href":"/javascript/reference/sui/sign-transaction"},{"title":"signAndExecuteTransaction (Sui)","href":"/javascript/reference/sui/sign-and-execute-transaction"},{"title":"signTransactionBlock (Sui)","href":"/javascript/reference/sui/sign-transaction-block"},{"title":"signAndExecuteTransactionBlock (Sui)","href":"/javascript/reference/sui/sign-and-execute-transaction-block"}]},{"group":"TON","icon":"paper-plane","pages":[{"title":"sendTon","href":"/javascript/reference/ton/send-ton"},{"title":"sendJetton","href":"/javascript/reference/ton/send-jetton"},{"title":"generateTonConnectProof","href":"/javascript/reference/ton/generate-ton-connect-proof"},{"title":"Adding TON Extensions","href":"/javascript/reference/ton/adding-ton-extension"},{"title":"Checking TON Wallet Account Type","href":"/javascript/reference/ton/checking-ton-wallet-account-type"},{"title":"sendTransaction (TON)","href":"/javascript/reference/ton/send-transaction"}]},{"group":"Tron","icon":"circle-nodes","pages":[{"title":"getTronWeb","href":"/javascript/reference/tron/get-tron-web"},{"title":"Adding Tron Extensions","href":"/javascript/reference/tron/adding-tron-extension"},{"title":"Checking Tron Wallet Account Type","href":"/javascript/reference/tron/checking-tron-wallet-account-type"},{"title":"sendTransaction (Tron)","href":"/javascript/reference/tron/send-transaction"}]},{"group":"Starknet","icon":"star","pages":[{"title":"getStarknetAccount","href":"/javascript/reference/starknet/get-starknet-account"},{"title":"Adding Starknet Extension","href":"/javascript/reference/starknet/adding-starknet-extension"},{"title":"Checking Starknet Wallet Account Type","href":"/javascript/reference/starknet/checking-starknet-wallet-account-type"}]},{"group":"Stellar","icon":"meteor","pages":[{"title":"Adding Stellar Extension","href":"/javascript/reference/stellar/adding-stellar-extension"},{"title":"Checking Stellar Wallet Account Type","href":"/javascript/reference/stellar/checking-stellar-wallet-account-type"},{"title":"signTransaction (Stellar)","href":"/javascript/reference/stellar/sign-transaction"}]},{"group":"Tempo","icon":"dollar-sign","pages":[{"title":"Tempo","href":"/javascript/reference/tempo/overview"},{"title":"Send batched calls","href":"/javascript/reference/tempo/send-batched-calls"},{"title":"Pay fees with a TIP-20 token","href":"/javascript/reference/tempo/pay-fees-with-a-token"},{"title":"Use parallel nonce lanes","href":"/javascript/reference/tempo/use-parallel-nonce-lanes"},{"title":"Set a validity window","href":"/javascript/reference/tempo/set-a-validity-window"},{"title":"Sign for a fee sponsor","href":"/javascript/reference/tempo/sign-for-a-fee-sponsor"}]},{"group":"Networks","icon":"network-wired","pages":[{"title":"Network Transformers","href":"/javascript/reference/networks/network-transformers"}]}]},{"group":"ZeroDev","icon":"gas-pump","pages":[{"title":"createKernelClientForWalletAccount","href":"/javascript/reference/zerodev/create-kernel-client-for-wallet-account"},{"title":"signEip7702Authorization","href":"/javascript/reference/zerodev/sign-eip-7702-authorization"},{"title":"sendUserOperation","href":"/javascript/reference/zerodev/send-user-operation"},{"title":"canSponsorUserOperation","href":"/javascript/reference/zerodev/can-sponsor-user-operation"},{"title":"estimateUserOperationGas","href":"/javascript/reference/zerodev/estimate-user-operation-gas"},{"title":"simulateZerodevUserOperation","href":"/javascript/reference/zerodev/simulate-zerodev-user-operation"},{"title":"calculateFeeForUserOperation","href":"/javascript/reference/zerodev/calculate-fee-for-user-operation"},{"title":"getSignerForSmartWalletAccount","href":"/javascript/reference/zerodev/get-signer-for-smart-wallet-account"},{"title":"isGasSponsorshipError","href":"/javascript/reference/zerodev/is-gas-sponsorship-error"},{"title":"Adding ZeroDev Extension","href":"/javascript/reference/zerodev/adding-zerodev-extension"}]},{"group":"Swaps","icon":"arrows-rotate","pages":[{"title":"getSwapQuote","href":"/javascript/reference/client/get-swap-quote"},{"title":"getSwapStatus","href":"/javascript/reference/client/get-swap-status"},{"title":"executeSwapTransaction","href":"/javascript/reference/client/execute-swap-transaction"}]},{"group":"Earn","icon":"chart-line","pages":[{"title":"listYieldVaults","href":"/javascript/reference/client/list-yield-vaults"},{"title":"getYieldDetails","href":"/javascript/reference/client/get-yield-details"},{"title":"getYieldPosition","href":"/javascript/reference/client/get-yield-position"},{"title":"getYieldPerformance","href":"/javascript/reference/client/get-yield-performance"},{"title":"getYieldEarnings","href":"/javascript/reference/client/get-yield-earnings"},{"title":"getYieldRewards","href":"/javascript/reference/client/get-yield-rewards"},{"title":"withdrawFromYieldVault","href":"/javascript/reference/client/withdraw-from-yield-vault"},{"title":"claimYieldRewards","href":"/javascript/reference/client/claim-yield-rewards"},{"title":"depositToYieldVault","href":"/javascript/reference/client/deposit-to-yield-vault"}]},{"group":"Flow","icon":"coins","pages":[{"title":"getFlow","href":"/javascript/reference/client/get-flow"},{"title":"getFlowSupportedExchanges","href":"/javascript/reference/client/get-flow-supported-exchanges"},{"title":"attachFlowSource","href":"/javascript/reference/client/attach-flow-source"},{"title":"getFlowQuote","href":"/javascript/reference/client/get-flow-quote"},{"title":"submitFlowTransaction","href":"/javascript/reference/client/submit-flow-transaction"},{"title":"cancelFlow","href":"/javascript/reference/client/cancel-flow"},{"title":"shouldPollFlow","href":"/javascript/reference/client/should-poll-flow"},{"title":"getFlowDeliveredAmount","href":"/javascript/reference/client/get-flow-delivered-amount"},{"title":"prepareFlowSigning","href":"/javascript/reference/client/prepare-flow-signing"},{"title":"broadcastFlow","href":"/javascript/reference/client/broadcast-flow"}]},{"group":"Funding","icon":"money-bill-transfer","pages":[{"group":"Kraken","pages":[{"title":"Kraken Integration","href":"/javascript/funding/kraken-integration"},{"title":"getKrakenAccounts","href":"/javascript/funding/get-kraken-accounts"},{"title":"getKrakenWhitelistedAddresses","href":"/javascript/funding/get-kraken-whitelisted-addresses"},{"title":"createKrakenExchangeTransfer","href":"/javascript/funding/create-kraken-exchange-transfer"}]},{"group":"Coinbase","pages":[{"title":"getCoinbaseBuyUrl","href":"/javascript/funding/get-coinbase-buy-url"},{"title":"createCoinbaseOnrampOrder","href":"/javascript/funding/create-coinbase-onramp-order"},{"title":"getMissingVerificationForCoinbaseOnrampOrder","href":"/javascript/funding/get-missing-verification-for-coinbase-onramp-order"},{"title":"addCoinbaseOnrampOrderEventListener","href":"/javascript/funding/add-coinbase-onramp-order-event-listener"},{"title":"getCoinbaseAccounts","href":"/javascript/funding/get-coinbase-accounts"},{"title":"createCoinbaseExchangeTransfer","href":"/javascript/funding/create-coinbase-exchange-transfer"}]},{"group":"MoonPay","pages":[{"title":"getMoonPayUrl","href":"/javascript/funding/get-moonpay-url"},{"title":"getMoonPayCurrencies","href":"/javascript/funding/get-moonpay-currencies"}]},{"title":"createCryptoDotComPayment","href":"/javascript/funding/create-crypto-dot-com-payment"}]},{"group":"Building UI","icon":"palette","pages":[{"title":"Building UI Overview","sidebarTitle":"Overview","href":"/javascript/building-ui/overview"},{"group":"Authentication","pages":[{"title":"Email \u0026 SMS OTP sign-in","href":"/javascript/building-ui/email-sms-otp-sign-in"},{"title":"Social sign-in \u0026 OAuth redirect handling","href":"/javascript/building-ui/social-oauth-redirect-handling"},{"title":"Passkey sign-in \u0026 registration","href":"/javascript/building-ui/passkey-sign-in-registration"}]},{"group":"Right after login","pages":[{"title":"Post-login user setup","href":"/javascript/building-ui/post-auth-user-setup"},{"title":"Account conflict resolution","href":"/javascript/building-ui/account-conflict-resolution"},{"title":"Account merging","href":"/javascript/building-ui/account-merging"}]},{"group":"Wallets","pages":[{"title":"Connecting external wallets","href":"/javascript/building-ui/connecting-external-wallets"},{"title":"Connected wallets management","href":"/javascript/building-ui/connected-wallets-management"},{"title":"Token balances \u0026 display","href":"/javascript/building-ui/token-balances-display"},{"title":"Transaction confirmation \u0026 simulation","href":"/javascript/building-ui/transaction-confirmation"},{"title":"Network switching \u0026 validation","href":"/javascript/building-ui/network-switching"}]},{"group":"Embedded wallet lifecycle","pages":[{"title":"Embedded wallet password \u0026 security","href":"/javascript/building-ui/embedded-wallet-security"},{"title":"Wallet backup \u0026 recovery","href":"/javascript/building-ui/wallet-backup-recovery"},{"title":"Embedded wallet delegated access","href":"/javascript/building-ui/embedded-wallet-delegated-access"},{"group":"Upgrading legacy embedded wallets","pages":[{"title":"Upgrading legacy embedded wallets to Dynamic WaaS","href":"/javascript/building-ui/legacy-wallet-upgrade"},{"title":"Upgrade by redirect","href":"/javascript/building-ui/legacy-wallet-upgrade/redirect"},{"title":"Embed the upgrade app (iframe)","href":"/javascript/building-ui/legacy-wallet-upgrade/embed"},{"title":"Upgrade by popup","href":"/javascript/building-ui/legacy-wallet-upgrade/popup"},{"title":"Going lower-level (build the URL yourself)","href":"/javascript/building-ui/legacy-wallet-upgrade/lower-level"}]}]},{"group":"Advanced auth \u0026 identity","pages":[{"title":"MFA enrollment \u0026 management","href":"/javascript/building-ui/mfa-enrollment-management"},{"title":"Step-up authentication","href":"/javascript/building-ui/step-up-authentication"},{"title":"Device registration","href":"/javascript/building-ui/device-registration"},{"title":"User profile \u0026 settings","href":"/javascript/building-ui/user-profile-settings"},{"title":"Handling blocked wallets","href":"/javascript/building-ui/blocked-wallet-screening"}]},{"group":"Money movement","pages":[{"title":"Funding flows","href":"/javascript/building-ui/funding-flows"},{"title":"Building an exchange transfer UI","href":"/javascript/building-ui/exchange-transfers"},{"title":"Building a swap UI","href":"/javascript/building-ui/swap-ui"},{"title":"Building an Earn UI","href":"/javascript/building-ui/earn-ui"}]}]},{"group":"Migrating from React","icon":"arrow-right-arrow-left","pages":[{"title":"Migrating from React to the JavaScript SDK","href":"/javascript/migrating-from-react/overview"},{"title":"Basic setup","href":"/javascript/migrating-from-react/basic-setup"},{"group":"Authentication","pages":[{"title":"Non-wallet authentication","href":"/javascript/migrating-from-react/non-wallet-authentication"},{"title":"Wallet authentication","href":"/javascript/migrating-from-react/wallet-authentication"}]},{"group":"Right after login","pages":[{"title":"Post-login user setup","href":"/javascript/migrating-from-react/post-login-user-setup"},{"title":"Account conflict resolution","href":"/javascript/migrating-from-react/account-conflict-resolution"}]},{"group":"Wallets","pages":[{"title":"Using connected wallets","href":"/javascript/migrating-from-react/using-connected-wallets"},{"title":"Network management","href":"/javascript/migrating-from-react/network-management"},{"title":"Transactions \u0026 balance","href":"/javascript/migrating-from-react/transactions-and-balance"}]},{"group":"Embedded wallets","pages":[{"title":"Embedded wallets: setup \u0026 creation","href":"/javascript/migrating-from-react/embedded-wallets-setup"},{"title":"Embedded wallets: password \u0026 security","href":"/javascript/migrating-from-react/embedded-wallets-password-security"},{"title":"Embedded wallets: backup \u0026 recovery","href":"/javascript/migrating-from-react/embedded-wallets-backup-recovery"},{"title":"Embedded wallets: delegated access","href":"/javascript/migrating-from-react/embedded-wallets-delegated-access"},{"title":"Embedded wallets: transactions \u0026 session keys","href":"/javascript/migrating-from-react/embedded-wallets-transactions"},{"title":"Upgrading embedded wallets","href":"/javascript/migrating-from-react/upgrading-embedded-wallets"}]},{"group":"Advanced auth \u0026 identity","pages":[{"title":"Multi-factor authentication","href":"/javascript/migrating-from-react/mfa"},{"title":"Step-up authentication","href":"/javascript/migrating-from-react/step-up-auth"},{"title":"Users","href":"/javascript/migrating-from-react/users"}]},{"group":"Money movement","pages":[{"title":"Funding","href":"/javascript/migrating-from-react/funding"},{"title":"Gas sponsorship \u0026 smart wallets","href":"/javascript/migrating-from-react/gas-sponsorship-smart-wallets"}]},{"group":"Chains \u0026 configuration","pages":[{"title":"Global wallets","href":"/javascript/migrating-from-react/global-wallets"},{"title":"Integrating chains","href":"/javascript/migrating-from-react/integrating-chains"},{"title":"Cookies","href":"/javascript/migrating-from-react/cookies"},{"title":"Wagmi integration","href":"/javascript/migrating-from-react/wagmi"}]},{"title":"Migration Guide: v0.9.0","href":"/javascript/reference/zerodev/migration-v0.9"}]},{"group":"Migrating from React Native","icon":"arrow-right-arrow-left","pages":[{"title":"Migrating from React Native to the JavaScript SDK","href":"/javascript/migrating-from-react-native/overview"}]},{"group":"Extensions","icon":"puzzle-piece","pages":[{"title":"Creating Extensions","href":"/javascript/reference/creating-extensions"},{"title":"Publish an Extension","href":"/javascript/reference/creating-extensions/publish"},{"title":"Custom Functions","href":"/javascript/reference/creating-extensions/custom-functions"},{"group":"Wallet Provider","icon":"wallet","pages":[{"title":"Wallet Provider","href":"/javascript/reference/creating-extensions/wallet-provider/overview"},{"title":"Supported wallet standards","description":"Wallet standards the Dynamic JavaScript SDK already supports.","href":"/javascript/reference/creating-extensions/wallet-provider/supported-standards"},{"title":"Build a WalletProvider","href":"/javascript/reference/creating-extensions/wallet-provider/build-wallet-provider"},{"title":"Add swap capabilities","description":"Implement executeSwapTransaction on a custom WalletProvider to enable Fireblocks Flow and Swaps.","href":"/javascript/reference/creating-extensions/wallet-provider/add-swap-capabilities"},{"title":"Add Earn capabilities","href":"/javascript/reference/creating-extensions/wallet-provider/add-earn-capabilities"},{"title":"Build a payment deep link","href":"/javascript/reference/creating-extensions/wallet-provider/build-payment-deep-link"}]},{"group":"Services","icon":"gears","pages":[{"title":"Storage","href":"/javascript/reference/creating-extensions/services/storage"},{"title":"Open deep links","href":"/javascript/reference/creating-extensions/services/open-deep-links"},{"title":"Wallet provider priority","href":"/javascript/reference/creating-extensions/services/wallet-provider-priority"}]}]}]}]},{"item":"Swift","icon":"swift","pages":[{"title":"Swift","href":"/swift/sdk-reference/overview"}]},{"item":"Kotlin","icon":"android","pages":[{"title":"Kotlin","href":"/kotlin/sdk-reference/overview"}]},{"item":"Flutter","icon":"flutter","pages":[{"title":"Flutter","href":"/flutter/sdk-reference/overview"}]},{"item":"Unity","icon":"unity","pages":[{"title":"Unity","href":"/unity/sdk-reference/overview"}]},{"item":"Node","icon":"node","pages":[{"title":"Node","href":"/node/reference/auth/authenticate-jwt"}]},{"item":"REST API","icon":"code","pages":[{"title":"REST API","href":"/api-reference/overview"}]},{"item":"Legacy React","icon":"react","pages":[{"title":"Legacy React","href":"/react/reference/quickstart"}]},{"item":"Legacy React Native","icon":"mobile-screen","pages":[{"title":"Legacy React Native","href":"/react-native/reference/introduction"}]}]},{"tab":"Recipes","icon":"book-open","pages":[{"title":"Recipes","href":"/recipes/recipes"}]}]},"basePath":"","title":"Build a WalletProvider - Dynamic","buildId":"dpl_GWQzn6k13MqphA3qck3hQKoQXDzM","deploymentId":"dpl_GWQzn6k13MqphA3qck3hQKoQXDzM","dynamics":[],"chunks":[]}