When transacting on Arkade, VTXOs don’t need to be settled to Bitcoin with every transfer. Instead, they can remain offchain until the latest recipient decides to anchor them to Bitcoin for finality. Such offchain transactions are processed in the virtual mempool and receive preconfirmation status through the Arkade operator cosigning the VTXO transfer.

Client Workflow: Transacting offchain on Arkade

Users transact offchain on Arkade by submitting a transaction request to the ArkService which then undergoes several steps consisting of verification and signing procedures. The following describes the workflow and the respective functions in detail. sequence-offchain.png To spend offchain, the client sends a SubmitTxRequest with a signed Arkade transaction and unsigned checkpoint transactions. The server verifies them and responds with the fully signed Arkade transaction, its ID, and partially signed checkpoint transactions. The client adds the missing checkpoint signatures and finalizes the process via FinalizeTx, sending the fully signed checkpoint transactions to the ArkService. Once the server verifies the final signatures, the spend is preconfirmed.

Workflow Monitoring

The actual offchain execution workflow uses the ArkService. While the IndexerService doesn’t directly handle offchain execution, it provides several supporting query functions that clients might use: VTXO Monitoring
  • GetVirtualTxs: Retrieves virtual transactions in hex format for specified transaction IDs
  • GetVtxos: Queries VTXO states by scripts or outpoints
  • GetVtxoChain: Traces transaction chains for specific VTXOs
Script Subscriptions
  • SubscribeForScripts: Subscribe to notifications for specific VTXO scripts
  • GetSubscription: Receive real-time notifications about subscribed scripts i
The IndexerService serves as a complementary query layer that clients can use to monitor the results of offchain transactions processed through the ArkService, but it’s not part of the core offchain execution flow itself.