Skip to content

WalletConnect

Connect to crypto wallets with WalletConnect protocol for NativeScript.

Installation

bash
npm install @nstudio/nativescript-walletconnect

Note: Requires Android minSdk 23.

Usage

Create Connector

typescript
import { WalletConnect } from '@nstudio/nativescript-walletconnect';

const connector = new WalletConnect({
  uri: 'wc:8a5e5bdc-a0e4-47...TJRNmhWJmoxdFo6UDk2WlhaOyQ5N0U=',
  clientMeta: {
    description: 'My Awesome App',
    url: 'https://myapp.com',
    icons: ['https://myapp.com/icon.png'],
    name: 'My App',
  },
});

Subscribe to Events

Session Request

typescript
connector.on('session_request', (error, payload) => {
  if (error) {
    throw error;
  }

  // Handle session request
  console.log('Peer ID:', payload.params[0].peerId);
  console.log('Peer Meta:', payload.params[0].peerMeta);
  
  // Approve or reject the session
});

Call Request

typescript
connector.on('call_request', (error, payload) => {
  if (error) {
    throw error;
  }

  // Handle call request (e.g., eth_sign, eth_sendTransaction)
  console.log('Method:', payload.method);
  console.log('Params:', payload.params);
});

Disconnect

typescript
connector.on('disconnect', (error, payload) => {
  if (error) {
    throw error;
  }

  // Clean up connector
});

Manage Session

Approve Session

typescript
connector.approveSession({
  accounts: [
    '0x4292...931B3',
    '0xa4a7...784E8',
  ],
  chainId: 1,
});

Reject Session

typescript
connector.rejectSession({
  message: 'User rejected the session',
});

Kill Session

typescript
connector.killSession();

Manage Call Requests

Approve Request

typescript
connector.approveRequest({
  id: 1,
  result: '0x41791102999c339c844880b23950704cc43aa840f3739e365323cda4dfa89e7a'
});

Reject Request

typescript
connector.rejectRequest({
  id: 1,
  error: {
    code: -32000,
    message: 'User rejected the request'
  }
});

API Reference

Constructor Options

OptionTypeRequiredDescription
uristringYesWalletConnect URI
clientMetaobjectYesClient metadata

Client Meta

PropertyTypeDescription
descriptionstringApp description
urlstringApp URL
iconsstring[]App icon URLs
namestringApp name

Events

EventDescription
session_requestNew session requested
call_requestRPC call requested
disconnectSession disconnected

Methods

MethodDescription
approveSession(params)Approve a session request
rejectSession(params)Reject a session request
killSession()End the current session
approveRequest(params)Approve a call request
rejectRequest(params)Reject a call request

License

Apache License Version 2.0