This is the first of five concept pages covering Arkade’s architecture. Ready to work with VTXOs in code? See VTXO Management in the Wallet SDK.
VTXO Structure
VTXOs are secured by a Taproot script with two distinct spending paths:- Collaborative path (fast). The owner and the operator cosign together. This is the default for all offchain transactions within the Virtual Mempool. It’s instant.
- Unilateral exit path (fallback). The owner spends alone after a timelock delay. This is the safety net that makes Arkade self-custodial. No operator cooperation required.
The CSV (relative timelock) delay on the exit path prevents double-spending. Without it, a user could participate in a batch swap while simultaneously broadcasting the exit transaction, effectively spending the same funds twice.
Batch Outputs
VTXOs don’t each occupy their own onchain output. Instead, many VTXOs are bundled together inside a single onchain output called a batch output. This is how Arkade achieves compression: thousands of individual ownership claims share one Bitcoin transaction output. A batch output is locked by a Taproot script with an n-of-n MuSig2 key involving all VTXO owners and the operator. It has two script paths:- A sweep path that allows the operator to reclaim the output after the batch expires
- An unroll path that splits the batch into individual VTXO branches
Virtual Transaction Tree
The relationship between a batch output and its VTXOs forms a tree of presigned transactions. The batch output is the root. Intermediate nodes split the output into smaller branches. The leaves are the individual VTXOs.
The diagram below shows the spending template. The shared output can be unrolled into separate branches (A+B+S, C+D+S), each decomposing further into individual VTXOs with their own exit paths.
Selective unrolling: when a user exits unilaterally, they only broadcast the transactions along their specific path through the tree. Other users’ VTXOs remain in the batch, undisturbed.
MuSig2, an advanced Schnorr multi-signature scheme, lets the virtual transaction tree appear as a single signature onchain. This keeps the onchain footprint minimal when users need to perform unilateral exits.
VTXO States
A VTXO moves through several states during its lifetime:| State | What it means | Exit rights |
|---|---|---|
| Preconfirmed | Created offchain, cosigned by the operator, not yet anchored onchain. Immediately usable for further offchain activity. | Relies on operator integrity |
| Unconfirmed | Included in a commitment transaction that has been broadcast but is still awaiting Bitcoin confirmation. | Pending confirmation |
| Settled | Anchored onchain through a confirmed commitment transaction. Full Bitcoin security guarantees. | Complete unilateral exit rights |
| Recoverable | Valid within Arkade but cannot be exited unilaterally. Includes sub-dust VTXOs, expired VTXOs, and Arkade Notes. | Can be included in a batch swap to produce a new VTXO |
| Spent | Used as an input to another transaction. No longer active. | None |
Sub-dust VTXOs. Arkade supports VTXOs below Bitcoin’s dust limit by representing them as OP_RETURN outputs tied to a taproot pubkey. These are valid offchain but cannot be exited to Bitcoin L1 individually.
Technical Primer
Back to the high-level overview.
Next: Transactions & Execution
How transactions work, preconfirmation, and the Virtual Mempool.