← Protocols
Rabby Wallet
Wallet / Auth·EVM · Multi-chain

Rabby Wallet

01Description

Open-source EVM browser wallet from the DeBank team, designed for power DeFi users. Best known for pre-transaction simulation that previews token-balance changes, approvals, and security risks before signing. Ships an EIP-6963 provider plus RabbyKit (a wagmi-based connect-modal SDK) for dapp integration.

02Best for
  • 01DeFi-first dapps targeting power users
  • 02showing both MetaMask and Rabby in the connector list
  • 03wallets that surface balance-change previews
  • 04EVM multi-chain dashboards (90+ chains)
  • 05drop-in connect modal via RabbyKit
03Install
  • pnpm add @rabby-wallet/rabbykit @wagmi/core viem
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_WALLETCONNECT_PROJECT_IDClientWalletConnect Cloud project ID — RabbyKit uses WalletConnect under the hood for fallback connectors.
05Prompt snippet
Use RabbyKit (Rabby's official dapp connect modal) on top of wagmi v2 + viem. `import { createModal, getDefaultConfig } from '@rabby-wallet/rabbykit'` then build a wagmi config with `createConfig(getDefaultConfig({ appName, projectId: process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID, chains, transports }))` and pass it to `createModal({ wagmi: config })`. Call `rabbykit.open()` to show the connect UI. To support users who already have Rabby installed without RabbyKit, rely on EIP-6963 provider discovery (`window.dispatchEvent(new Event('eip6963:requestProvider'))`) and surface Rabby alongside MetaMask in your connector list — Rabby intentionally does NOT inject as the only `window.ethereum`, so old `if (window.ethereum.isMetaMask)` checks will misidentify it.
06Gotchas
  • Rabby is EVM-only — no Solana, Bitcoin, Cosmos, TON. For multi-VM apps pair Rabby (or RabbyKit) with a Solana/Sui adapter.
  • Use EIP-6963 multi-provider discovery, not `window.ethereum` — Rabby coexists with MetaMask and other injected wallets, and grabbing `window.ethereum` blindly will pick whichever injected last (race condition).
  • Rabby's pre-transaction simulation is a wallet-side feature — your dapp can't programmatically read or trigger it. Don't promise users 'we simulated this for you' simply because they're on Rabby.
  • RabbyKit depends on wagmi v2 + viem v2 — it will not work in apps still on wagmi v1 / ethers v5; plan a migration before adding it.
  • WalletConnect projectId is required even if your users have Rabby installed — RabbyKit instantiates the WC connector at boot.
  • Mobile: there is no Rabby mobile wallet on iOS yet (Android only at the time of writing) — design fallbacks to WalletConnect deep links for mobile users.
07Alternatives