Skip to content

Introduction ​

XRPL Wallet Kit is a framework-agnostic wallet adapter toolkit for building XRPL browser dApps. It provides a unified API across all major XRPL wallets, a headless DOM-based UI, and optional prebuilt components — so you can ship a wallet connection flow in minutes, not days.

Why XRPL Wallet Kit? ​

Each XRPL wallet has its own JavaScript API: Xaman uses OAuth + deep links, GemWallet injects a browser extension, WalletConnect uses a relay protocol, Ledger talks to USB hardware. Without an abstraction layer, your dApp must implement and maintain a different integration for every wallet — and break whenever a wallet updates its API.

XRPL Wallet Kit solves this with a uniform adapter contract:

ts
adapter.connect(options)      // → ConnectResult
adapter.signTransaction(req)  // → { txBlob, hash }
adapter.signAndSubmit(req)    // → { hash, ... }
adapter.signMessage(req)      // → { signature }
adapter.disconnect()

Every adapter speaks the same language. Your app talks to the manager; the manager talks to the adapters.

Architecture ​

Your dApp
    │
    ▼
WalletManager          ← orchestrates adapters, sessions, events
    │
    ├── XamanAdapter
    ├── GemWalletAdapter
    ├── WalletConnectAdapter
    ├── CrossmarkAdapter
    ├── LedgerAdapter
    ├── DropfiAdapter
    ├── XrplSnapAdapter
    └── OtsuAdapter

The core package contains the manager, types, errors, and storage logic. It has zero dependencies on any UI framework. The ui package adds a DOM-based modal and connect button. The adapters are separate packages — install only what you need.

Supported Wallets ​

WalletPackageTypeconnectsignsignAndSubmit
Xamanadapter-xamanMobile QR / OAuth✅✅✅
GemWalletadapter-gemwalletBrowser Extension✅✅✅
WalletConnectadapter-walletconnectMulti-wallet QR✅✅✅
Crossmarkadapter-crossmarkBrowser Extension✅✅✅
Ledgeradapter-ledgerHardware (USB/HID)✅✅—
DropFiadapter-dropfiExtension + Mobile App✅✅✅
XRPL Snapadapter-xrpl-snapMetaMask Snap✅✅✅
Otsu Walletadapter-otsuBrowser Extension✅✅✅

Package Overview ​

PackageSize (gzip)Description
@xrpl-wallet-kit/core~5.7 KBHeadless core, WalletManager, types
@xrpl-wallet-kit/ui~12 KBDOM modal, connect button
@xrpl-wallet-kit/clientumbrellacore + ui + all adapters
@xrpl-wallet-kit/browser528 KBIIFE bundle for plain HTML

TIP

For production apps using a bundler (Vite, webpack), import from individual packages so tree-shaking removes unused adapters.
The IIFE bundle includes everything and is intended for quick prototyping or legacy HTML pages.

Supported Frameworks ​

XRPL Wallet Kit has no React dependency. The headless core works with any JavaScript environment.

FrameworkGuide
ReactReact guide
Next.jsNext.js guide
Vue 3Vue 3 guide
Nuxt 3Nuxt 3 guide
Vanilla TypeScriptVanilla TS guide
Plain HTML / CDNHTML legacy guide

Next Steps ​

Released under the MIT License.