Skip to main content
Learn how to check your wallet balance, view transfer history, and monitor activity on the Spark network. This guide covers balance queries, transfer tracking, and real-time event monitoring.
Balances & Activity

Check Wallet Balance

Get your current Bitcoin balance and token holdings in your Spark wallet. getBalance() Gets the current balance of the wallet. You can use the forceRefetch option to synchronize your wallet and claim any pending incoming lightning payment, spark transfer, or bitcoin deposit before returning the balance.
const balance = await wallet.getBalance();
console.log("Balance:", balance.balance, "sats");
console.log("Token Balances:", balance.tokenBalances);

View Transfer History

Track all incoming and outgoing transfers for your wallet with pagination support. getTransfers(limit?, offset?) Gets all transfers for the wallet with optional pagination.
// Get first 20 transfers
const transfers = await wallet.getTransfers();
console.log("Transfers:", transfers.transfers);

// Get next 10 transfers with pagination
const nextTransfers = await wallet.getTransfers(10, 20);
console.log("Next page:", nextTransfers.transfers);

Real-time Event Monitoring

Monitor wallet activity in real-time using EventEmitter methods for instant updates. on(event, listener) Adds a listener for the specified event to monitor wallet activity.
// Listen for transfer claims
wallet.on("transfer:claimed", (transferId, updatedBalance) => {
  console.log(`Transfer ${transferId} claimed. New balance: ${updatedBalance}`);
});

// Listen for new deposits
wallet.on("deposit:received", (depositId, amount) => {
  console.log(`Deposit received: ${amount} sats`);
});
once(event, listener) Adds a one-time listener for the specified event.
// Listen for a single transfer completion
wallet.once("transfer:completed", (transferId) => {
  console.log(`Transfer ${transferId} completed!`);
});
off(event, listener) Removes the specified listener from the specified event.
// Remove a specific listener
const handleTransfer = (transferId) => console.log(`Transfer: ${transferId}`);
wallet.on("transfer:claimed", handleTransfer);

// Later, remove the listener
wallet.off("transfer:claimed", handleTransfer);

Available Events

Spark wallets emit various events for different types of activity:

Available Events

transfer:claimed when a transfer is claimed
transfer:completed when a transfer is completed
transfer:failed when a transfer fails

Use Sparkscan Explorer

Monitor your wallet activity using the Sparkscan block explorer for a visual interface.
Sparkscan provides a web interface to view your wallet’s transaction history, balance, and activity without needing to implement the API calls yourself.

Best Practices

  • Monitor events - Use event listeners for real-time updates instead of polling
  • Handle pagination - Use limit and offset parameters for large transfer lists
  • Clean up listeners - Remove event listeners when no longer needed to prevent memory leaks
  • Check balance regularly - Use getBalance() to sync wallet state and claim pending transactions
  • Use Sparkscan - Leverage the explorer for debugging and monitoring wallet activity

Example: Complete Balance Monitoring

import { SparkWallet } from "@buildonspark/spark-sdk";

async function setupBalanceMonitoring() {
  const { wallet } = await SparkWallet.initialize({
    options: { network: "REGTEST" }
  });

  // Get initial balance
  const balance = await wallet.getBalance();
  console.log("Initial balance:", balance.balance, "sats");

  // Set up event listeners
  wallet.on("transfer:claimed", (transferId, newBalance) => {
    console.log(`Transfer ${transferId} claimed. New balance: ${newBalance} sats`);
  });

wallet.on("transfer:claimed", (transferId, updatedBalance) => {
  console.log(`Transfer ${transferId} claimed. New balance: ${updatedBalance} sats`);
});

  // Get recent transfers
  const transfers = await wallet.getTransfers(10);
  console.log("Recent transfers:", transfers.transfers);

  return wallet;
}