Mobile (WalletConnect)

Configuration

All the options for configuring the wc-client provider.

The wc-client provider takes a configuration object. Only projectId is required.

// src/common/wc-config.ts
import type { Config } from '@joey-wallet/wc-client';
import core from '@joey-wallet/wc-client/core';

const chains = core.constants.chains;

export default {
  /**
   * Required. Your WalletConnect project ID from the Reown dashboard.
   * @see https://dashboard.reown.com
   */
  projectId: process.env.NEXT_PUBLIC_PROJECT_ID,

  /**
   * Namespaces requested from the wallet. Defaults to the XRPL namespace.
   */
  namespaces: chains.xrplNamespace,

  /**
   * Chain to use when connecting. Defaults to the first chain in `namespaces`.
   */
  defaultChain: chains.xrpl.mainnet.id, // 'xrpl:0'

  /**
   * Wallets to feature in the connect modal and to build deep links for.
   * Joey is included automatically if you don't set this.
   */
  walletDetails: [
    {
      name: 'Joey Wallet',
      // Joey's WalletConnect Explorer wallet ID (not a Reown project ID)
      projectId: 'd9f5432e932c6fad8e19a0cea9d4a3372a84aed16e98a52e6655dd2821a63404',
      deeplinkFormat: 'joey://settings/wc?uri=',
    },
  ],

  /**
   * Log debug output to the console.
   * @default false
   */
  verbose: false,

  /**
   * Persist sessions (in IndexedDB) so users stay connected across reloads.
   */
  storage: {
    enabled: true,
    custom: null, // optional custom storage implementation
  },

  /**
   * Your app's details, shown to the user in Joey when they connect.
   */
  metadata: {
    name: 'Your dApp',
    description: 'A decentralized application for the XRP Ledger',
    url: 'https://your-dapp.com',
    icons: ['https://your-dapp.com/icon.png'],
    redirect: {
      universal: 'https://your-dapp.com',
    },
  },
} as Config;

Notes

  • walletDetails[].projectId holds Joey's WalletConnect Explorer wallet ID, despite the field's name. It's the same ID you'd pass to AppKit's featuredWalletIds. Your own Reown project ID goes in the top-level projectId.
  • metadata.redirect is an object with native and/or universal URLs. After a sign-in that started in an external browser, Joey uses it to send the user back to your app.
  • Methods: Joey serves xrpl_signTransaction, xrpl_signTransactionFor and xrpl_signTransactionBulk. See Methods.

For the full type definition, see config.ts in the wc-client repository.