@vela-ventures/ao-sync-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.1.11 • Public • Published

AO Sync SDK

NPM version npm downloads/month npm downloads

@vela-ventures/ao-sync-sdk

@vela-ventures/ao-sync-sdk is a JavaScript/TypeScript SDK for connecting your application to the Beacon Wallet. This library provides an easy way to interact with Beacon Wallet for Arweave and AO-based applications while delegating signing, encryption, and logic to the wallet itself.

Features

  • Seamless Wallet Connection: Connect to the Beacon Wallet via MQTT.
  • QR Code Authentication: Generate QR codes for easy wallet scanning.
  • Reconnect Support: Automatically reconnect to the wallet using stored session data.

Installation

Install the SDK via npm:

npm install @vela-ventures/ao-sync-sdk

Usage

1. Import the WalletClient Class

import WalletClient from "@vela-ventures/ao-sync-sdk";

2. Initialize the WalletClient

const walletClient = new WalletClient();

3. Connect to the Wallet

To establish a connection with Beacon Wallet, use the connect method:

await walletClient.connect({
  permissions: [
    "ACCESS_ADDRESS",
    "ACCESS_PUBLIC_KEY",
    "SIGN_TRANSACTION"
  ],
  appInfo: {
    name: "MyApp",
    logo: "https://myapp.com/logo.png"
  },
  gateway: {
    host: "arweave.net",
    port: 443,
    protocol: "https"
  },
  brokerUrl: "wss://aosync-broker-eu.beaconwallet.dev:8081",
  options: {
    protocolVersion: 5
  }
});

This will generate a QR code that the user can scan with their Beacon Wallet to establish a connection.

4. Listen for Events

The SDK uses an event-driven architecture. You can listen for connection, disconnection, or custom events:

walletClient.on("connected", (data) => {
  console.log("Wallet connected:", data);
});

walletClient.on("disconnected", (data) => {
  console.log("Wallet disconnected:", data);
});

5. Sign Transactions or Data

Once connected, you can use the wallet to sign transactions or data:

const signedTx = await walletClient.signTransaction(transactionData);
console.log("Signed Transaction:", signedTx);

const signedData = await walletClient.signDataItem(dataItem);
console.log("Signed Data Item:", signedData);

6. Disconnect

To disconnect the wallet:

await walletClient.disconnect();

API Reference

WalletClient

Constructor

new WalletClient(responseTimeoutMs = 30000, txTimeoutMs = 300000)
  • responseTimeoutMs (optional): Timeout duration for responses (default: 30 seconds).
  • txTimeoutMs (optional): Timeout duration for transactions (default: 5 minutes).

Methods

connect(options)

Establish a connection with the Beacon Wallet.

reconnect()

Reconnect to the wallet using session data from sessionStorage.

signTransaction(transaction)

Sign an Arweave transaction.

  • transaction: The transaction object to sign.
signDataItem(dataItem)

Sign a data item.

  • dataItem: The data item to sign.
disconnect()

Disconnect from the Beacon Wallet.

Events

  • connected: Fired when the wallet is successfully connected.
  • disconnected: Fired when the wallet is disconnected.

Dependencies

  • mqtt: MQTT protocol client.
  • qrcode: QR code generation.
  • uuid: Universally unique identifiers.
  • arweave/web: Arweave SDK for transactions and data handling.

Contributing

Feel free to open issues or submit pull requests to enhance this SDK. Contributions are welcome!

Package Sidebar

Install

npm i @vela-ventures/ao-sync-sdk

Weekly Downloads

2

Version

1.1.11

License

MIT

Unpacked Size

80.2 kB

Total Files

20

Last publish

Collaborators

  • velaventures
  • ybogdanq
  • artem-purundzhian