Create FasterCreate Faster
Web3

dApp (RainbowKit)

A Web3 dApp starter using RainbowKit for wallet connection and Sign-In with Ethereum (SIWE) for authentication. Combines Better Auth's SIWE plugin with wagmi for a full wallet-based auth flow backed by a persistent database session.

Composition

Apps:

Project addons:

Architecture

Blueprint-specific files:

src/
├── app/
│   ├── page.tsx                        # Landing page
│   └── protected/
│       ├── layout.tsx                  # Protected layout
│       └── page.tsx                    # Protected dashboard
├── components/
│   ├── app-providers.tsx               # RainbowKit + wagmi + SIWE providers
│   └── header.tsx                      # Header component
├── lib/
│   ├── auth/
│   │   ├── auth.ts                     # Better Auth with SIWE plugin
│   │   └── auth-client.ts             # Auth client with SIWE
│   ├── db/
│   │   ├── schema.ts                   # Schema with walletAddress column
│   │   └── types.ts                    # DB types
│   └── wagmi.ts                        # Wagmi config
└── proxy.ts                            # Middleware

What's included

  • RainbowKit wallet modal with pre-configured chain support and WalletConnect integration
  • SIWE authentication using Better Auth's SIWE plugin for cryptographic wallet verification
  • Auth + wagmi providers wired together so wallet connection triggers SIWE sign-in automatically
  • Protected routes with server-side session checks via Better Auth
  • Wallet-aware schema extending the base Drizzle schema with a walletAddress column on the user table
  • Wagmi config with chain definitions and WalletConnect transport

Extra dependencies

PackagePurpose
@rainbow-me/rainbowkitWallet connection modal and UI
wagmiReact hooks for Ethereum
viemTypeScript Ethereum library

Environment variables

VariableDescription
NEXT_PUBLIC_WALLETCONNECT_PROJECT_IDWalletConnect project ID (from WalletConnect Cloud)

CLI usage

bunx create-faster my-dapp \
  --blueprint dapp-rainbowkit \
  --linter biome \
  --git \
  --pm bun

On this page