💡 Headless is in early-access at the moment and available to limited users. Contact
us to get access.
AppKit Headless allows developers to build a fully customizable “Connect” experience powered by AppKit’s existing features without using the AppKit modal. Headless exposes wallet discovery, rendering WalletConnect QR codes, and social provider flows via simple hooks and utility functions.
Headless requires AppKit to be configured with the headless flag. See the installation docs before getting started and make sure you’re enabling headless as expected.
List of wallets for the initial connect view including WalletConnect wallets and injected wallets
together. If the user doesn’t have any injected wallets, it’ll fill the list with the most ranked
WalletConnect wallets.
The wallet currently being connected to. This is set when a connection is initiated and cleared
when it completes or fails. For WalletConnect wallets, resetWcUri() should be called to clear the
state.
Function to fetch WalletConnect wallets from the explorer API. Allows you to list, search, and
paginate through the wallets.
interface FetchWalletsOptions { /** Page number to fetch (default: 1) */ page?: number /** @deprecated Use `search` instead */ query?: string /** Search query to filter wallets. When provided, switches to search mode. */ search?: string /** Number of entries per page. Defaults to 40 for list mode, 100 for search mode. */ entries?: number /** Filter wallets by badge type ('none' | 'certified') */ badge?: 'none' | 'certified' /** Wallet IDs to include. Overrides the global includeWalletIds config when provided. */ include?: string[] /** Wallet IDs to exclude. Overrides the default exclude list when provided. */ exclude?: string[]}
Function to connect to a wallet. For WalletConnect wallets: initiates WC connection and returns
the URI with the wcUri state. For injected connectors: triggers the extension/wallet directly.
The useAppKitWallets hook returns a list of injected and WalletConnect wallets that let you render directly in the connect page.If you configure your AppKit as multi-chain, we suggest rendering a namespace selection component where users should select which namespace to connect when using browser extensions. This could be achieved with the connectors array of the WalletItem.If a user selects a WalletConnect wallet, you can show the QR code to the users and let them scan it with their preferred wallets. To handle the QR flows, you can use the isFetchingWcUri, wcUri, and resetWcUri props from the useAppKitWallets hook.