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

Installation

Install Wyllet and its peer dependencies, and enable WalletConnect.

View .mdReport a problem

Install the wyllet package together with its peer dependencies. If your dApp already uses wagmi, you likely have most of them.

Install

pnpm
pnpm add wyllet wagmi viem @tanstack/react-query
npm
npm install wyllet wagmi viem @tanstack/react-query
yarn
yarn add wyllet wagmi viem @tanstack/react-query
bun
bun add wyllet wagmi viem @tanstack/react-query

react and react-dom are peers too. They are already part of any React app.

Peer dependencies

Wyllet has no direct runtime dependencies. Everything it needs is a peer dependency that your dApp provides.

PackageVersionRequired
react>=18Yes
react-dom>=18Yes
wagmi^3.0.0Yes
viem^2.15.0Yes
@tanstack/react-query>=5.0.0Yes
@walletconnect/ethereum-provider^2.21.1Only with WalletConnect

Enable WalletConnect

WalletConnect lets users connect mobile wallets by scanning a QR code on desktop, or by opening the wallet app on a phone. It also powers the All wallets directory. It is optional, and it is only active when you pass a walletConnectProjectId.

To enable it:

  1. Create a free project ID at cloud.reown.com.
  2. Install the WalletConnect provider.
  3. Pass the ID to getDefaultConfig().
pnpm
pnpm add @walletconnect/ethereum-provider
npm
npm install @walletconnect/ethereum-provider
yarn
yarn add @walletconnect/ethereum-provider
bun
bun add @walletconnect/ethereum-provider
wagmi.ts
import { base, mainnet } from 'viem/chains'
import { getDefaultConfig } from 'wyllet'
 
export const config = getDefaultConfig({
  appName: 'My dApp',
  walletConnectProjectId: 'YOUR_PROJECT_ID',
  chains: [mainnet, base],
})

Without a project ID, Wyllet does not add a WalletConnect connector, and the WalletConnect option is hidden from the wallet list. Installed browser wallets still work.

Note

Keep the project ID in an environment variable, for example NEXT_PUBLIC_WC_PROJECT_ID in Next.js or VITE_WC_PROJECT_ID in Vite. It is a public value, but an environment variable makes it easy to use different projects per environment. See WalletConnect for domain allowlists and other settings.

Styles

You do not need to import a stylesheet. <WylletProvider> injects its base styles in a <style> element when it renders.

If you would rather serve the base stylesheet as a file, turn injection off and import it yourself:

main.tsx
import 'wyllet/styles.css'
<WylletProvider injectStyles={false}>{children}</WylletProvider>
Warning

injectStyles={false} only removes the base stylesheet. The provider still renders a small <style> element that holds your theme's --wy-* CSS variables. Account for it if your Content Security Policy restricts inline styles. See Security.

TypeScript

Wyllet ships its own type definitions for both ESM and CommonJS. No @types package is needed.

Next steps

  • Quick start: render your first connect button.
  • Next.js: App Router setup.
  • Configuration: every getDefaultConfig() option.
PreviousIntroductionNextQuick start

On this page

  • Install
  • Peer dependencies
  • Enable WalletConnect
  • Styles
  • TypeScript
  • Next steps