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.