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 │
└─────────────────────────────────────┘