The widget supports two wallet ownership models, controlled by the widgetMode config field.
Standalone mode
In standalone mode the widget renders its own Connect Wallet button and handles the full connector flow using built-in wagmi connectors. No extra configuration needed.
Optional: add Privy as a connector
If you want Privy in the connector list (alongside the built-in connectors), pass privyAppId. Privy is not required; the widget works without it.
dApp mode: bring your own provider
Set widgetMode: "dapp" and pass an EIP-1193 provider. Your host app is responsible for connecting the wallet.
The provider prop
Must satisfy EIP1193ProviderLax. This is a looser version of viem’s EIP1193Provider, since many third-party wallets don’t satisfy viem’s strict signature:
Most wallet connectors (wagmi connectors, RainbowKit, raw window.ethereum) satisfy this shape.
In dapp mode the widget’s internal Connect Wallet drawer is not rendered. Without an onConnectWalletClick event handler, the button is disabled. With one, the button is enabled but still won’t open the widget’s own drawer: you must run your host app’s wallet connection flow inside the handler.
Hide the wallet UI entirely
If your host app shows the connected account elsewhere, hide the widget’s wallet header:
Decision tree
Connection events
Both modes emit onConnectWallet events you can use for analytics. See Events & callbacks for payload details.
Related pages