Skip to content
wyllet
  • Docs
  • Features
  • Playground
  • Blog
  • Docs
  • Features
  • Playground
  • Blog
  • Compare
  • Changelog
GitHub @wylletdevnpm Support
esc
  • IntroductionWhat Wyllet is, what it includes, and how it fits into a wagmi + viem dApp.
  • InstallationInstall Wyllet and its peer dependencies, and enable WalletConnect.
  • Quick startAdd a working connect button to a React dApp in a few minutes.
  • Next.jsUse Wyllet with the Next.js App Router, server components and SSR.
  • Build with AI assistantsGive Cursor, Claude Code, Copilot or ChatGPT the Wyllet docs and the rules for a correct integration.
  • ConfigurationCreate a wagmi config with getDefaultConfig: app info, chains, transports and wallets.
  • WylletProviderEvery WylletProvider prop: theme, appearance, tokens, auth, messages and callbacks.
  • WylletButtonThe Island button, its display options, and building your own trigger with useWylletButton.
Overview

Getting started

  • Introduction
  • Installation
  • Quick start
  • Next.js
  • Build with AI assistants

Core concepts

  • Configuration
  • WylletProvider
  • WylletButton
  • Presentations

Customization

  • Theming
  • Class names
  • Translations

Wallets

  • Wallets
  • All wallets
  • WalletConnect

Chains and tokens

  • Chains
  • Tokens

Features

  • Account panel
  • Activity and transactions
  • Toasts
  • Sign-In With Ethereum
  • ConnectGate

Reference

  • Hooks
  • Components
  • Utilities and types

Guides

  • Security
  • Migrate from RainbowKit
  • FAQ
wyllet

The open-source wallet connector for React dApps. Built on wagmi and viem.

MIT licensed. v1.1.0 on npm with provenance.

Product

  • Features
  • Compare
  • Playground
  • Changelog
  • Blog

Docs

  • Quick start
  • Next.js
  • Build with AI
  • Theming
  • Migrate from RainbowKit

Community

  • GitHub
  • X @wylletdev
  • npm
  • Releases
  • Report an issue

Support

  • support@wyllet.dev
  • FAQ
  • Security
  • Report a vulnerability
  • MIT License

For AI agents

  • llms.txt
  • llms-full.txt
  • RSS feed
  • Sitemap

Wallet, network and token names and logos are trademarks of their respective owners and are used only to identify them.

Docs/Getting started

Introduction

What Wyllet is, what it includes, and how it fits into a wagmi + viem dApp.

View .mdReport a problem

Wyllet is an open-source, MIT-licensed wallet connector for React dApps. It gives your app a connect button, a connect flow and an account panel, and it runs on top of the wagmi and viem setup your dApp already uses.

What Wyllet is

Most dApps need the same things around a wallet: a way to pick and connect one, a place to see the connected account, a network switcher, and feedback while transactions confirm. Wyllet packages these into one system that you add with a provider and a button.

Wyllet does not replace wagmi. It reads connection state through wagmi hooks and connects wallets through wagmi connectors. Your own code keeps using useConnection, useWriteContract, useBalance and the rest of wagmi as before.

What it includes

PieceWhat it does
Wallet Island<WylletButton>, one button that is a call to action when disconnected and shows avatar, name, network badge and balance when connected. See WylletButton.
Panel presentationsThe connect and account views open as a side drawer (the default), an anchored popover or a centered modal. Phones get a draggable bottom sheet. See Presentations.
Connect flowInstalled wallets are detected through EIP-6963. Other wallets connect through WalletConnect with a QR code on desktop or an app link on phones. Arrow keys, Enter and number keys 1 to 9 pick a wallet, and recent wallets get a one-tap "Continue with" row.
Account panelAddress, copy, receive QR code, explorer link and disconnect, plus Tokens, Activity and Networks tabs. An optional generative identity card can replace the compact summary. See Account panel.
Chains and tokens in codeYou define networks and tokens in code, so every user sees the same curated set. popularChains, customChain() and withDefaultTokens() help. See Chains and Tokens.
ActivityA per-account timeline of connects, network switches, sign-ins, tracked transactions and your own entries. See Activity.
ToastsThemed, promise-aware notifications through useWylletToast(). See Toasts.
Sign-In With EthereumPass an auth adapter and a signature step becomes part of the connect flow. See SIWE.
<ConnectGate>Renders its children only when the user is connected, on a supported network and, if you use SIWE, signed in. See ConnectGate.
ThemesFour presets (Obsidian, Porcelain, Aurora, Terminal), light and dark pairs, and every design token exposed as a --wy-* CSS variable. See Theming.
Burner walletburnerWallet() is an in-browser wallet for local development and demos. See Wallets.

How it fits into a wagmi and viem dApp

A Wyllet app has three layers, from the outside in:

  1. <WagmiProvider> with a wagmi config. You can create the config with Wyllet's getDefaultConfig(), which wires up wallet discovery, WalletConnect and your wallet list, or write it yourself with wagmi's createConfig().
  2. <QueryClientProvider> from @tanstack/react-query, which wagmi requires.
  3. <WylletProvider>, which holds the theme, presentation and feature options, and renders the panel and toasts.

Inside the provider you render <WylletButton /> wherever the connect button belongs, and use Wyllet hooks such as useWyllet() when you want to open the panel from your own UI.

<WagmiProvider config={config}>
  <QueryClientProvider client={queryClient}>
    <WylletProvider>
      <WylletButton />
    </WylletProvider>
  </QueryClientProvider>
</WagmiProvider>

Dependencies

Wyllet has no direct runtime dependencies. It uses only react, react-dom, wagmi, viem and @tanstack/react-query, which your dApp already has, and declares them as peer dependencies. The QR code encoder is built in.

WalletConnect support is opt-in. If you set a walletConnectProjectId, you install @walletconnect/ethereum-provider yourself, so you choose and pin its version.

Wyllet makes no network requests of its own, with one opt-in exception: when WalletConnect is enabled and a user opens All wallets, it loads the wallet list and logos from the WalletConnect registry. Set appearance.walletDirectory to false to turn that off. See All wallets.

Styles are injected by the provider, so there is no CSS file to import.

Next steps

  • Installation: install the package and its peers.
  • Quick start: a minimal working app.
  • Next.js: setup for the App Router.
  • Try every option live in the playground.
NextInstallation

On this page

  • What Wyllet is
  • What it includes
  • How it fits into a wagmi and viem dApp
  • Dependencies
  • Next steps