A WalletProvider connects a wallet to the SDK. At minimum it must implement chain, key, groupKey, metadata, walletProviderType, getActiveNetworkId, and getConnectedAddresses.
Minimal WalletProvider
Register the provider
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.
WalletProviderPriority.WALLET_SDK is the highest priority. Use it when you control the wallet’s own SDK.
WALLET_SELF_ANNOUNCEMENT_STANDARD is for standards such as EIP-6963 announcements.
WINDOW_INJECT is for providers that rely on a global object such as window.ethereum.
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.
Connect the wallet
After the extension is registered, connect to the wallet using the same standard APIs as any other Dynamic wallet provider. Use the walletProviderKey directly, or discover it with getAvailableWalletProvidersData (the custom provider appears in that list alongside the built-in ones).
Use connectWithWalletProvider instead of connectAndVerifyWithWalletProvider if you only want to connect without verifying ownership.