Documentation Index
Fetch the complete documentation index at: https://docs.arkadeos.com/llms.txt
Use this file to discover all available pages before exploring further.
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()
// Total wallet balance
console.log('Total:', balance.total)
// Boarding UTXOs waiting to be onboarded
console.log('Boarding Total:', balance.boarding.total)
// Available balance - spendable in offchain Arkade transactions
console.log('Available:', balance.available)
// Offchain balance split by settlement state
console.log('Settled:', balance.settled)
console.log('Preconfirmed:', balance.preconfirmed)
// Funds that may require recovery
console.log('Recoverable:', balance.recoverable)
Understanding Your Balance
Your Arkade wallet balance is composed of different VTXO states:
{
// Offchain balances (VTXOs)
preconfirmed: 0; // Cosigned by the Arkade operator 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. Follow the steps in VTXO Recovery 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";
});
Each VTXO has the following shape:
type ExtendedVirtualCoin = {
txid: string;
vout: number;
value: number;
status: {
confirmed: boolean;
// optional block hash, height, etc...
};
virtualStatus: {
state: "preconfirmed" | "settled" | "swept" | "spent";
// commitment tx ids, expiry, etc...
};
createdAt: Date;
assets?: Asset[]; // see Assets > Core Concepts
// misc taproot fields, extra witness, etc...
}
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'}`);
});
Each boarding UTXO has the following shape:
type ExtendedCoin = {
txid: string;
vout: number;
value: number;
status: {
confirmed: boolean;
// optional block hash, height, etc...
};
// misc taproot fields, extra witness, etc...
}
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