The widget has a built-in wallet management UI, so you can connect the wallet and use the widget as a standalone dApp out of the box. However, when embedding the widget into the dApp, reusing the existing wallet management UI of that dApp makes the most sense. There are several ecosystems and types of chains (EVM, SVM, UTXO) supported by the widget, and therefore, there are several different libraries used to manage wallet connections to these chains.Documentation Index
Fetch the complete documentation index at: https://docs.li.fi/llms.txt
Use this file to discover all available pages before exploring further.
EVM wallet connection
To manage wallet connection to EVM (Ethereum Virtual Machine) chains, switching chains, etc., the widget uses the Wagmi library internally and also provides first-class support for all Wagmi-based libraries such as RainbowKit, Dynamic, Reown AppKit If you already manage wallets using Wagmi or Wagmi-based library in your dApp and the Widget detects that it is wrapped in WagmiProvider it will start re-using your wallet management without any additional configuration. The example below shows how to preconfigure a basic wallet management using Wagmi.Keep chains in sync
It is important to keep the Wagmi chains configuration in sync with the Widget chain list so all functionality, like switching chains, can keep working correctly. There are two approaches to this:- Manually update the Widget and Wagmi chains configuration to specify all chains you would like to support in your dApp and the Widget. See Configure Widget page to know more about the Widget’s allow/deny chains configuration.
- Get all available chains from LI.FI API and dynamically update Wagmi configuration. The Widget provides hooks to ease this approach.
@lifi/widget package.
Support for Ethers.js and other alternatives
Developers can still use Ethers.js or any other alternative library in their project and convertSigner/Provider objects to Wagmi’s injected connector before wrapping the Widget with WagmiProvider.
SVM wallet connection
To manage wallet connections to SVM (Solana Virtual Machine) chains the widget uses the Solana Wallet Standard library. If you already manage wallets using Solana Wallet Standard library in your dApp and the Widget detects that it is wrapped in ConnectionProvider and WalletProvider it will start re-using your wallet management without any additional configuration. The example below shows how to preconfigure a basic wallet management for SVM.MVM wallet connection
To manage wallet connections to MVM (Move Virtual Machine) chains like SUI, the widget uses the @mysten/dapp-kit for wallet management and @mysten/sui for SUI blockchain interactions. If you already manage wallets using @mysten/dapp-kit in your dApp and the Widget detects that it is wrapped in SuiClientProvider and WalletProvider, it will start re-using your wallet management without any additional configuration. The example below shows how to preconfigure a basic wallet management for MVM chains.UTXO(Bitcoin) wallet connection
To manage wallet connections and chain interactions with UTXO chains like Bitcoin, the widget uses the Bigmi library. If you already manage wallets using Bigmi in your dApp and the widget detects that it is wrapped in BigmiProvider, it will start re-using your wallet management without any additional configuration. The example below shows how to preconfigure a basic wallet management for Bitcoin.Configuration
There are additional configurations to smooth integration for external wallet management or in case of internal one provide options for WalletConnect and Coinbase Wallet.Connect wallet button
Using internal wallet management clicking theConnect wallet button triggers the opening of an internal wallet menu. In cases where external wallet management is used we provide onConnect configuration option. This option allows developers to specify a callback function that will be executed when the Connect wallet button is clicked.
Please see modified RainbowKit example below. Here we use openConnectModal function provided by useConnectModal hook to open RainbowKit wallet menu when the Connect wallet button is clicked.
WalletConnect and Coinbase Wallet
We provide additional configuration for WalletConnect and Coinbase Wallet Wagmi connectors so when using built-in wallet management in the widget you can set WalletConnect’sprojectId or Coinbase Wallet’s appName parameters.
Partial Wallet Management
Your external wallet management may not support all ecosystems provided by our widget, or you may be in the process of migrating to a new setup. To help with these cases, we’ve got you covered! TheusePartialWalletManagement configuration option allows the widget to offer partial wallet management functionality. When enabled, this option provides a hybrid approach, effectively combining both external and internal wallet management.
In partial mode, external wallet management is used for “opt-out” providers, while internal management applies to any remaining providers that do not opt out. This setup creates a flexible balance between the integrator’s custom wallet menu and the widget’s native wallet menu, ensuring a smooth user experience across all ecosystems, even if external support is incomplete or in transition.

Force Internal Wallet Management
The widget automatically detects existing wallet contexts (e.g., WagmiContext for EVM) higher up in your React tree. When found, it disables its own wallet management for that ecosystem and uses your existing setup instead. To override this behavior and force the widget to manage all wallets internally, setforceInternalWalletManagement: true. This ignores all external wallet contexts, for every ecosystem.
Ecosystem order for wallets
ThewalletEcosystemsOrder option allows you to define the preferred order of ecosystems (e.g., EVM, SVM) for each multichain wallet.
Smart Accounts Compatibility
When using the LI.FI Widget with smart accounts and smart account providers like Privy, Dynamic, ZeroDev, and others, you may encounter compatibility issues related to signature formats. Smart accounts often use different signature standards than traditional Externally Owned Accounts (EOAs):- EOAs use ECDSA signatures for standard transactions
- Smart Accounts may use ERC-1271 or other signature validation methods
Invalid yParityOrV value) during execution.
EIP-5792 Transaction Batching Support
If your smart account provider or implementation supports EIP-5792 (Wallet Function Call API), there should be no compatibility issues. EIP-5792 enables transaction batching, allowing multiple operations (like token approvals and swaps) to be bundled into a single batch transaction. This eliminates the need for separate permit signatures and provides a smoother UX. When EIP-5792 is available, the widget will automatically use batch transactions instead of individual permit signatures, resolving smart account compatibility issues.Disabling Message Signing
For smart accounts that don’t support EIP-5792 or when encountering signature-related errors, you can disable message signing by configuring thedisableMessageSigning option in the SDK configuration. This will prevent the widget from attempting to use incompatible permit-based approvals that require message signing.
Disabling message signing will fallback to standard token approval
transactions, which may require additional gas fees but ensures compatibility
with all smart account implementations.

