Skip to main content

SDK Overview

The ZeroQuant SDK provides a type-safe interface for interacting with ZeroQuant smart vaults.

Core Features

  • Vault Management - Create, connect, and manage smart vaults
  • Transaction Execution - Execute single or batched operations
  • Session Management - Create and manage agent sessions with permissions
  • Gas Estimation - Accurate gas estimation before transactions
  • Error Handling - Decode contract errors into meaningful messages
  • Event Subscriptions - Real-time event monitoring

Installation

npm install @zeroquant/sdk ethers

Basic Usage

import { ethers } from 'ethers';
import { ZeroQuantClient } from '@zeroquant/sdk';

// Initialize
const provider = new ethers.JsonRpcProvider(process.env.RPC_URL);
const signer = new ethers.Wallet(process.env.PRIVATE_KEY, provider);

const client = new ZeroQuantClient(provider, {
factoryAddress: process.env.FACTORY_ADDRESS,
permissionManagerAddress: process.env.PERMISSION_MANAGER_ADDRESS,
});

await client.connect(signer);

// Create a vault
const vault = await client.createVault(42);
console.log('Vault address:', vault.address);

// Check balance
const balance = await client.getBalance();
console.log('Balance:', ethers.formatEther(balance), 'ETH');

Architecture

┌─────────────────────────────────────┐
│ ZeroQuantClient │
├─────────────────────────────────────┤
│ • connect(signer) │
│ • createVault(salt) │
│ • connectVault(address) │
│ • execute(params) │
│ • executeBatch(params) │
│ • createSession(params) │
│ • getBalance() │
│ • onVaultEvent(callback) │
└─────────────────────────────────────┘


┌─────────────────────────────────────┐
│ Smart Contracts │
├─────────────────────────────────────┤
│ UVAFactory → UVAAccount │
│ PermissionManager │
│ SwapIntent │
└─────────────────────────────────────┘

Next Steps