Skip to main content

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.