Browser Extension
Installation
Install @joeywallet/wallet-sdk and set it up for TypeScript, React, Next.js and server-side rendering.
Install
npm install @joeywallet/wallet-sdk
pnpm add @joeywallet/wallet-sdk
yarn add @joeywallet/wallet-sdk
- Current version: 0.5.0. The SDK is pre-1.0, so a breaking change ships as a minor version.
- License: MIT. Source on GitHub; published with npm provenance.
- Dependencies: none at runtime. React 18 or later is an optional peer dependency, only needed for the React entry point.
- Format: ESM only, tree-shakeable (
"sideEffects": false).
Entry points
| Import | Contents |
|---|---|
@joeywallet/wallet-sdk |
Detection, the Joey client, errors, constants, types and chain helpers |
@joeywallet/wallet-sdk/react |
JoeyProvider, useJoey and mutation hooks such as useSignAndSubmit |
@joeywallet/wallet-sdk/vanilla |
createJoeySession and bindConnectButton for apps without a framework |
See React and vanilla for the framework helpers.
Server-side rendering and Next.js
- Importing is safe on the server. Detection reads
globalThis, so on the servergetJoey()returnsnull,isJoeyAvailable()returnsfalse, andwaitForJoey()rejects. - Next.js App Router: the React entry point doesn't include a
'use client'directive. PutJoeyProvider, and any component that calls the hooks, inside your own'use client'component.
TypeScript
The SDK doesn't declare window.joey globally, so it won't clash with other wallet SDKs. If you want to reference it directly, declare it yourself:
import type { JoeyInjectedProvider } from '@joeywallet/wallet-sdk'
declare global {
interface Window {
joey?: JoeyInjectedProvider
}
}
Using xrpl.js types
The SDK doesn't depend on xrpl, but every signing method accepts any transaction shape. If you use xrpl.js, annotate your transactions to keep full type checking:
import type { Payment } from 'xrpl'
const payment: Payment = {
TransactionType: 'Payment',
Account: address,
Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe',
Amount: '1000000',
}
await joey.signAndSubmitTransaction({ tx_json: payment })