canton-network-docs/SDKsdApp SDKGuides
Wallet Discovery
By default,
By default,
Verified wallet list (
When a wallet from this list is not already detected (matched by
Default remote wallets (
Remote wallets in
sdk.init() makes the wallet picker list every CIP-0103 wallet the SDK can
discover: browser wallets that announce themselves, plus the SDK’s built-in list of remote
wallets. Registering adapters lets you add more wallets (such as WalletConnect or a custom
remote wallet) or restrict the list.
The adapters you register in init() determine what the SDK can discover and what the
user sees in the wallet picker opened by connect().
- If an adapter is registered (and passes
detect()), it can appear as an entry in the picker. - Session restore only works for adapters that are registered.
Use the built-in remote wallets
Registering with no options uses the SDK’s default remote wallet list (fromgateways.json)
plus any wallets that announce via canton:announceProvider.
init() also loads the SDK’s bundled verified wallet list from
wallets.json (see Verified wallets).
Verified wallets
The SDK ships curated wallet lists for the picker. There are two bundled files, serving different wallet types and roles:Verified wallet list (wallets.json)
When a wallet from this list is not already detected (matched by providerId), the picker
shows it under Suggested Wallets with links to install or set it up. Verified entries
are not registered as adapters.
On init(), when enableSuggestedWallets is true (the default), the bundled
wallets.json is passed to the picker UI.
Example entry (browser extension):
Adding a wallet: Wallet authors can open a PR that adds an entry to
wallets.json. The
providerId must match how the wallet appears once available — for extensions, this is
typically what the wallet announces via canton:announceProvider (browser:ext:<id>).
Disabling the verified list: dApps that do not want the bundled list can opt out:
Default remote wallets (gateways.json)
Remote wallets in gateways.json are registered automatically as RemoteAdapter instances
(see above). Use this file for verified remote wallets that should appear as connectable
picker entries out of the box, rather than as install/setup prompts.
Add adapters
UseadditionalAdapters to add wallets while keeping the default remote wallets.
Add WalletConnect
Add a custom remote wallet
Add a custom extension adapter
Replace the default remote wallets
To offer only specific remote wallets (and not the SDK defaults), passdefaultAdapters.
Register no remote wallets
Pass an empty list to explicitly choose “none”. This is useful if your dApp only supports announced extension wallets, or only adapters you add yourself.Restrict to approved wallets
CombiningdefaultAdapters with a fixed list lets you constrain the picker to a set of
remote wallets you have vetted, which is a common production requirement.
Next steps
- Wallet Providers — How wallets make themselves discoverable.
- Adapters Reference — Adapter constructors and options.