Skip to main content
Your Arkade wallet balance shows how many satoshis you can spend in offchain transactions. This is your primary balance for everyday payments within Arkade.
const balance = await wallet.getBalance()

// Available balance - spendable in offchain Arkade transactions
console.log('Available:', balance.available)

// Total balance - includes available + recoverable funds
console.log('Total:', balance.total)

Understanding Your Balance

Your Arkade wallet balance is composed of different VTXO states:
{
  // Offchain balances (VTXOs)
  preconfirmed: 0;      // Cosigned by the Arkade operators and sender
  settled: 20000;       // Bitcoin-anchored via batch swap
  available: 20000;     // settled + preconfirmed (spendable in transactions)
  recoverable: 5000;    // Expired VTXOs and subdust. (see VTXO Management)
  total: 25000;         // available + recoverable

  // Pending onchain deposits. (boarding UTXOs - see Ramps for onboarding)
  boarding: {
    unconfirmed: 0,     // Unconfirmed onchain UTXOs
    confirmed: 0,       // Confirmed onchain UTXOs
    total: 0            // confirmed + unconfirmed
  };
}
Primary Balance Fields:
  • available - What you can spend right now in Arkade transactions
  • total - Your total offchain balance including funds that need recovery
For everyday use, focus on the available balance.
Advanced Balance Fields:
  • recoverable - VTXOs that have been swept by the server or subdust amounts. Use VTXO Management to recover these funds.
  • boarding - Only relevant when using the native onboarding process. For most users, this will be zero.
Learn more about VTXO States.

Managing Coins

Getting Virtual UTXOs

You can retrieve all your offchain VTXOs with a simple call:
// Get virtual UTXOs (offchain)
const vtxos = await wallet.getVtxos()
console.log('Number of VTXOs:', vtxos.length)

// Log important information about each VTXO
vtxos.forEach((vtxo, index) => {
  console.log(`VTXO #${index + 1}:`);
  console.log(`  ID: ${vtxo.txid}:${vtxo.vout}`);
  console.log(`  Amount: ${vtxo.value} sats`);
  console.log(`  Batch ID: ${vtxo.virtualStatus.batchTxID}`);
  console.log(`  Status: ${vtxo.virtualStatus.state}`); // "preconfirmed" | "settled" | "swept" | "spent";
});

Getting Boarding UTXOs

Boarding UTXOs are onchain UTXOs that have been sent to a boarding address but haven’t yet been converted to VTXOs:
// Get boarding UTXOs
const boardingUtxos = await wallet.getBoardingUtxos()
console.log('Number of boarding UTXOs:', boardingUtxos.length)

// Log important information about each boarding UTXO
boardingUtxos.forEach((utxo, index) => {
  console.log(`Boarding UTXO #${index + 1}:`);
  console.log(`  TXID: ${utxo.txid}`);
  console.log(`  Output Index: ${utxo.vout}`);
  console.log(`  Amount: ${utxo.value} sats`);
  console.log(`  Status: ${utxo.status.confirmed ? 'Confirmed' : 'Unconfirmed'}`);
});

Next Steps

  • Send Payments - Learn how to send payments within Arkade and to Lightning
  • VTXO Management - Manage VTXO renewal and recovery
  • Ramps - Advanced: onboard from Bitcoin or offboard to Bitcoin

I