Skip to main content
Settlement is the critical process that moves VTXOs from a preconfirmed state to their final confirmed state on the Bitcoin blockchain. In Arkade, VTXOs can exist in two primary states:
  • preconfirmed (cosigned offchain)
  • settled (batched onchain)
When a VTXO is first created through an offchain transaction, it exists in the preconfirmed state where it can be used for further offchain activity but carries trust assumptions about the Operator. Through the settlement process, these preconfirmed VTXOs are included in a Commitment Transaction and anchored to the Bitcoin blockchain, providing them with full settlement guarantees and unilateral exit rights. Users can also dynamically settle their VTXOs according to their needs — choosing when to anchor funds onchain for security or keep them offchain for speed and cost efficiency
// Get all VTXOs and check their status
const vtxos = await wallet.getVtxos()
const pendingVtxos = vtxos.filter(vtxo => vtxo.virtualStatus.state === 'preconfirmed')
const settledVtxos = vtxos.filter(vtxo => vtxo.virtualStatus.state === 'settled')

console.log('Preconfirmed VTXOs:', pendingVtxos.length)
console.log('Settled VTXOs:', settledVtxos.length)
For more detailed information about the batch swap process that underlies settlement, see the Arkade Batch Swaps documentation.
I