@prudra/wallet
v0.2.2
Published
Prudra wallet SDK — balance, history, withdrawals
Readme
@prudra/wallet
Prudra wallet SDK — typed access to your organisation's custodial Tempo wallet for balance queries, payment history, and stablecoin withdrawals.
Installation
npm install @prudra/wallet @prudra/corePrerequisites
You must call initialise() from @prudra/core before using any wallet functions:
import { initialise } from '@prudra/core';
initialise({
apiKey: process.env.PRUDRA_API_KEY!,
});Provision a wallet
provisionWallet() creates a wallet for your organisation if one doesn't already exist. It is idempotent — safe to call on every server start:
import { provisionWallet } from '@prudra/wallet';
// Safe to call multiple times — only creates once
const wallet = await provisionWallet();
console.log(wallet.address); // "0xabc123..."
console.log(wallet.coin); // "USDC_E"
console.log(wallet.organisationId); // "org_xyz789"Get wallet details
import { getWallet } from '@prudra/wallet';
const wallet = await getWallet();
console.log(wallet.address); // Tempo on-chain address
console.log(wallet.coin); // WalletCoin: "USDC_E" | "USDC" | "USDT"
console.log(wallet.paymentCount); // Total payments receivedCheck balance
import { getBalance } from '@prudra/wallet';
const balance = await getBalance();
console.log(balance.amount); // "142.50" — human-readable decimal
console.log(balance.raw); // "142500000" — raw token units
console.log(balance.coin); // "USDC_E" — matches wallet's coinPayment history
import { getHistory } from '@prudra/wallet';
const history = await getHistory({ limit: 50, offset: 0 });
console.log(history.total); // Total payment count
console.log(history.data[0]); // PaymentRecord with coin, organisationIdWithdraw
import { withdraw } from '@prudra/wallet';
const result = await withdraw({
to: '0xdestination_address',
amount: '50.00',
coin: 'USDC_E', // Optional — defaults to wallet's coin
});
console.log(result.txHash); // Transaction hash
console.log(result.fee); // "0.01"
console.log(result.coin); // "USDC_E"Express middleware
walletMiddleware() is implemented in @prudra/express, not this package. If you're using Express:
import { walletMiddleware } from '@prudra/express';
app.use(walletMiddleware());If you need to provision a wallet outside of Express (e.g. in Next.js), use provisionWallet() from this package directly.
Documentation
Full documentation: docs.prudra.dev/docs/wallet
