Checking Balances & Earnings
Monitor your vault position, earnings, and performance.
Coming Soon
The SDK is currently in development. This documentation describes the planned API.
Quick Balance Check
import { SevenNSevenD } from '@7n7d/sdk';
const client = new SevenNSevenD({
rpcUrl: process.env.RPC_URL,
privateKey: process.env.PRIVATE_KEY,
});
// Get vault balance
const balance = await client.vault.getBalance();
console.log(`Shares: ${balance.shares}`);
console.log(`Value: $${balance.usdcValue}`);
console.log(`Earnings: $${balance.earnings}`);
Balance Information
VaultBalance Object
interface VaultBalance {
// Core balance
shares: string; // Number of vault shares
usdcValue: string; // Current USDC value
// Performance
earnings: string; // Total profit/loss
earningsPercent: string; // Return percentage
// Breakdown
deposited: string; // Total USDC deposited
withdrawn: string; // Total USDC withdrawn
netDeposited: string; // Net deposits (deposited - withdrawn)
// Current state
sharePrice: string; // Current share price
costBasis: string; // Your average cost per share
}
Access Balance Details
const balance = await client.vault.getBalance();
// Position size
console.log(`You own: ${balance.shares} shares`);
console.log(`Worth: $${balance.usdcValue}`);
// Performance
console.log(`Total earnings: $${balance.earnings}`);
console.log(`Return: ${balance.earningsPercent}%`);
// History
console.log(`Total deposited: $${balance.deposited}`);
console.log(`Total withdrawn: $${balance.withdrawn}`);
console.log(`Net investment: $${balance.netDeposited}`);
// Pricing
console.log(`Current share price: $${balance.sharePrice}`);
console.log(`Your cost basis: $${balance.costBasis}`);
Earnings Breakdown
Get Detailed Earnings
const earnings = await client.vault.getEarnings();
console.log(`Total earned: $${earnings.total}`);
console.log(`Today: $${earnings.today}`);
console.log(`This week: $${earnings.thisWeek}`);
console.log(`This month: $${earnings.thisMonth}`);
console.log(`All time: $${earnings.allTime}`);
Earnings Object
interface VaultEarnings {
// Totals
total: string; // Total earnings
totalPercent: string; // Total return %
// Time periods
today: string; // Earnings today
todayPercent: string;
thisWeek: string; // Earnings this week
thisWeekPercent: string;
thisMonth: string; // Earnings this month
thisMonthPercent: string;
allTime: string; // Since first deposit
allTimePercent: string;
// Fees
feesPaid: string; // Total fees paid
}
Performance History
Get Historical Performance
// Daily performance for last 30 days
const history = await client.vault.getPerformanceHistory({
period: '30d',
interval: 'daily',
});
for (const day of history.data) {
console.log(`${day.date}: ${day.returnPercent}% ($${day.pnl})`);
}
Performance Options
const history = await client.vault.getPerformanceHistory({
// Time period
period: '30d', // '7d', '30d', '90d', '1y', 'all'
// Data interval
interval: 'daily', // 'hourly', 'daily', 'weekly', 'monthly'
// Optional date range
startDate: '2025-01-01',
endDate: '2025-12-31',
});
console.log(`Data points: ${history.data.length}`);
console.log(`Total return: ${history.totalReturn}%`);
console.log(`Best day: ${history.bestDay.returnPercent}%`);
console.log(`Worst day: ${history.worstDay.returnPercent}%`);
Vault Statistics
Get Overall Vault Stats
const stats = await client.vault.getStats();
console.log(`Total Value Locked: $${stats.tvl}`);
console.log(`Total Depositors: ${stats.depositors}`);
console.log(`Share Price: $${stats.sharePrice}`);
console.log(`APY: ${stats.apy}%`);
console.log(`24h Return: ${stats.return24h}%`);
VaultStats Object
interface VaultStats {
// Size
tvl: string; // Total value locked
totalShares: string; // Total shares outstanding
depositors: number; // Number of unique depositors
// Pricing
sharePrice: string; // Current share price
sharePrice24hAgo: string;
sharePriceChange: string;
// Returns
apy: string; // Annualized yield
return24h: string; // 24 hour return
return7d: string; // 7 day return
return30d: string; // 30 day return
returnAllTime: string; // Since inception
// Risk
maxDrawdown: string; // Maximum drawdown
sharpeRatio: string; // Risk-adjusted return
}
USDC Balance
Check Wallet USDC
// USDC in your wallet (not in vault)
const usdcBalance = await client.getUSDCBalance();
console.log(`Wallet USDC: ${usdcBalance}`);
Check All Balances
// Combined view
const allBalances = await client.getAllBalances();
console.log('=== Wallet ===');
console.log(` USDC: ${allBalances.wallet.usdc}`);
console.log(` ETH: ${allBalances.wallet.eth}`);
console.log('=== Vault ===');
console.log(` Shares: ${allBalances.vault.shares}`);
console.log(` Value: $${allBalances.vault.usdcValue}`);
console.log('=== Total ===');
console.log(` Total USDC value: $${allBalances.total}`);
Real-Time Updates
Subscribe to Balance Updates
// WebSocket subscription for real-time updates
const unsubscribe = client.vault.subscribeToBalance((balance) => {
console.log(`Updated balance: $${balance.usdcValue}`);
console.log(`Current earnings: $${balance.earnings}`);
});
// Later, unsubscribe
unsubscribe();
Subscribe to Vault Stats
const unsubscribe = client.vault.subscribeToStats((stats) => {
console.log(`TVL: $${stats.tvl}`);
console.log(`Share price: $${stats.sharePrice}`);
console.log(`24h return: ${stats.return24h}%`);
});
Full Example
Complete balance monitoring:
import { SevenNSevenD } from '@7n7d/sdk';
async function monitorVault() {
const client = new SevenNSevenD({
rpcUrl: process.env.RPC_URL!,
privateKey: process.env.PRIVATE_KEY!,
});
// Get comprehensive balance info
const balance = await client.vault.getBalance();
const earnings = await client.vault.getEarnings();
const stats = await client.vault.getStats();
console.log('=== Your Position ===');
console.log(` Shares: ${balance.shares}`);
console.log(` Current Value: $${balance.usdcValue}`);
console.log(` Cost Basis: $${balance.costBasis}/share`);
console.log(` Current Price: $${balance.sharePrice}/share`);
console.log('\n=== Your Earnings ===');
console.log(` Today: $${earnings.today} (${earnings.todayPercent}%)`);
console.log(` This Week: $${earnings.thisWeek} (${earnings.thisWeekPercent}%)`);
console.log(` This Month: $${earnings.thisMonth} (${earnings.thisMonthPercent}%)`);
console.log(` All Time: $${earnings.allTime} (${earnings.allTimePercent}%)`);
console.log(` Fees Paid: $${earnings.feesPaid}`);
console.log('\n=== Vault Performance ===');
console.log(` TVL: $${stats.tvl}`);
console.log(` Depositors: ${stats.depositors}`);
console.log(` APY: ${stats.apy}%`);
console.log(` 24h Return: ${stats.return24h}%`);
console.log(` Max Drawdown: ${stats.maxDrawdown}%`);
console.log(` Sharpe Ratio: ${stats.sharpeRatio}`);
// Get recent history
const history = await client.vault.getPerformanceHistory({
period: '7d',
interval: 'daily',
});
console.log('\n=== Last 7 Days ===');
for (const day of history.data) {
const emoji = parseFloat(day.pnl) >= 0 ? '📈' : '📉';
console.log(` ${day.date}: ${emoji} ${day.returnPercent}% ($${day.pnl})`);
}
}
monitorVault().catch(console.error);
Next: See the complete API Reference.