Skip to main content
Ready to submit transactions? See the offchain execution workflow in Server & API.
Arkade transactions are virtual Bitcoin transactions. They follow the same structure as onchain Bitcoin transactions (inputs consume VTXOs, outputs produce new VTXOs) but execute offchain in the Virtual Mempool through operator coordination rather than blockchain consensus.

Transaction Structure

Transaction {
  inputs: [vtxo1, vtxo2, ...],
  witnesses: [userSig1 + operatorSig1, userSig2 + operatorSig2, ...],
  outputs: [newVTXO1, newVTXO2, ...]
}
Each input requires both the user’s signature and the operator’s cosignature (the collaborative spending path). The outputs are new VTXOs with their own ownership scripts, immediately available as inputs for subsequent transactions.

Worked Example

An Alice-to-Bob payment consuming a 5000 sat VTXO:
Transaction {
  inputs: [
    {
      vtxo: aliceVTXO(5000 sats),
      witness: [aliceSignature, operatorSignature]
    }
  ],
  outputs: [
    {
      value: 1000,
      script: Taproot(UNSPENDABLE, [
        checkSig(bobPK) && checkSig(operatorPK),
        checkSig(bobPK) && relativeTimelock(1008)
      ])
    },
    {
      value: 3950, // change minus fee
      script: Taproot(UNSPENDABLE, [
        checkSig(alicePK) && checkSig(operatorPK),
        checkSig(alicePK) && relativeTimelock(1008)
      ])
    }
  ]
}
Bob receives a 1000 sat VTXO. Alice gets change. Both outputs follow the standard VTXO structure with collaborative and unilateral exit paths.

Preconfirmation

When the operator cosigns a transaction, it’s preconfirmed. The output VTXOs become immediately spendable without waiting for any Bitcoin block confirmation. This is what makes Arkade transactions feel instant. The tradeoff is explicit: you are trusting the operator not to cosign a conflicting transaction spending the same VTXO. The Arkade Signer running in a TEE constrains this risk through hardware isolation, and you can eliminate it entirely by settling to Bitcoin. Regardless of operator behavior, your presigned exit transactions guarantee unilateral withdrawal at any time.

Transaction Chaining

Because each transaction’s outputs are immediately spendable, you can chain transactions together without waiting. Each new transaction references VTXOs from the previous step and produces fresh ones, forming a chain that can extend arbitrarily as long as each hop is validated and cosigned.
These chains progress at operator/signature latency rather than block times. Dependencies are explicit in the Virtual Mempool, so invalid or conflicting hops are rejected and any downstream transactions depending on them cannot execute. Important: longer transaction chains increase unilateral exit costs, as each VTXO in the chain requires its own Bitcoin transaction to exit independently. Users should balance the convenience of extended offchain operation against the cost of emergency exits by periodically settling through batch swaps.

The Virtual Mempool

The Virtual Mempool is Arkade’s offchain execution engine. It solves a fundamental problem: Bitcoin’s base layer can’t support instant, high-throughput execution without sacrificing exit guarantees. The Virtual Mempool provides that execution environment while preserving the ability to exit to Bitcoin at any time.

DAG Architecture

The Virtual Mempool organizes transactions as a directed acyclic graph (DAG). Nodes represent individual transactions, edges encode VTXO dependencies, and independent branches execute in parallel without blocking each other. Only transactions that share a dependency need to be ordered.
This DAG design eliminates the bottlenecks inherent in account-based systems. Transactions only need to respect their local dependencies rather than competing for updates to a globally serialized state.

Previous: VTXOs & Ownership

How users hold funds, batch outputs, and spending paths.

Next: Settlement & Finality

From preconfirmation to Bitcoin finality through batch swaps.