Documentation Index
Fetch the complete documentation index at: https://www.dynamic.xyz/docs/llms.txt
Use this file to discover all available pages before exploring further.
getWalletOptionsCatalogue returns the catalogue of external wallet options a user can sign in with through this client. It collapses what used to be multiple per-source calls (installed providers, URI-based connection options, in-app browser entries, install links) into one ordered list, where each entry already carries every connection path the user can take for that wallet.
Use it to render a single, canonical wallet picker without writing per-source merging or deduplication logic.
Usage
getWalletOptionsCatalogue always includes installed wallet providers. Set includeMobileOptions: true to additionally surface URI-based connection options (deeplinking and QR code), in-app browser entries, and install links — this adds one network round-trip so prefer skipping it if you only ever show installed wallets.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
includeMobileOptions | boolean | false | When true, additionally includes URI-based connection options (deeplinking and QR code), in-app browser entries, and install links. Adds one network round-trip. |
walletOptionOrdering | 'relevance' | 'alphabetical' | 'relevance' | 'relevance' buckets wallets into three tiers (installed → connectable → install-only) and ranks each tier with Dynamic’s curated priority list. 'alphabetical' sorts by display name only. |
Return value
An array ofWalletOption. Each WalletOption has:
| Field | Type | Description |
|---|---|---|
key | string | Stable identifier (e.g. "metamask"). |
name | string | Display name. |
iconUrl | string | Full URL to the wallet’s icon. |
primaryColor | string | undefined | Brand color in hex. |
connectionOptions | WalletConnectionOption[] | Ordered connection options for this wallet. Sorted by priority — see below. May be empty when only installationUrls is available (install-only wallets). |
installationUrls | InstallationUrls | undefined | Install / download links per platform (android, chrome, edge, firefox, ios, native, opera, safari). Present only when includeMobileOptions: true and the wallet has at least one install target. |
Connection options
EachWalletConnectionOption is a discriminated union by type, ordered within connectionOptions from best to worst:
withWalletProvider— connect through a wallet provider already registered with the SDK (browser extension, vendor SDK, etc.).- Fields:
chain,source('selfAnnounced' | 'windowInjected' | 'sdk'),walletProviderKey. - Resolve via
getWalletProviderByKey({ key: walletProviderKey })and call.connect().
- Fields:
- URI deeplink (
type: 'walletConnect' | 'metamaskSdkUri') — drive the connection yourself via a URI that you either render as a QR (desktop) or append onto a deeplink (mobile).- Fields:
chain,deeplinks: { native?, universal? },type. - For
'walletConnect': mint the URI withconnectWithWalletConnect<Chain>. For'metamaskSdkUri': mint the URI withconnectWithMetaMaskUri<Chain>. Either way, append it to the deeplink withappendConnectionUriToDeeplinkfor the mobile case.
- Fields:
inAppBrowser— a mobile wallet that exposes an in-app browser entry URL.- Fields:
chain,url(template containing{{encodedDappURI}}). - Substitute
{{encodedDappURI}}withencodeURIComponent(window.location.href)before opening.
- Fields:
connectionOptions is empty but installationUrls is populated, the wallet is install-only — render an install affordance using the appropriate platform link rather than a connect button.
Picking an install link for the current platform
For install-only wallets (and the “install” fallback path on any other wallet), the SDK ships a small helper that picks the most relevant install URL frominstallationUrls for the platform the user is on right now:
undefined so you don’t end up handing a Firefox user a Chrome Web Store URL.
That said, installationUrls exposes every link the wallet’s manifest publishes — android, chrome, edge, firefox, ios, native, opera, safari — and you’re free to surface several of them at once so the user picks where to install. The helper is a convenience for the common single-button case, not a constraint.
Ordering
WithwalletOptionOrdering: 'relevance' (default), wallets are bucketed into three tiers, in this order:
- Installed — has at least one
withWalletProviderconnection option. - Connectable — has at least one URI deeplink or in-app browser option, but no installed provider.
- Install-only — only
installationUrlsis populated.
connectionOptions array is always ordered by option-type priority (withWalletProvider > URI deeplink > inAppBrowser).
With walletOptionOrdering: 'alphabetical', the outer list is sorted by name only — no tiering. The inner ordering is unchanged.
See also
- Build a wallet picker — end-to-end pattern that uses this function.
- Authenticate with WalletConnect — lower-level WalletConnect flow.
- Get Available Wallets to Connect — installed-providers-only alternative.