Users can safely sign forfeit transactions because the commitment transaction atomically creates both the new VTXOs and the connector output that enables the operator to claim forfeited funds.
Client Workflow: Participating in a Batch Swap
Initial Setup and Information Gathering To participate in a batch swap, users begin their participation by querying the server through theGetInfo endpoint to retrieve (GetInfoResponse) essential network parameters like round intervals, exit delays, and amount limits that clients need for proper operation.

Client Workflow: Steb by Step
1
Intent Registration
- Client creates and registers an intent (
RegisterIntent) as a PSBT signed withBIP322, defining inputs and outputs - Server stores it under a unique
intent_id - Client can revoke an intent via
DeleteIntent
2
Batch Updates & Confirmation
- Once selected for batch participation, client subscribes to
GetEventStreamfor batch updates - Client confirms participation (
ConfirmRegistration) via theintent_id
3
Tree Signing & Multi-Signature Coordination (MuSig2)
- Server builds unsigned VTXO tree, commitment transaction and connector outputs
- Server sends unsigned VTXO tree and commitment transaction to client
- Client verifies data and creates random nonces for every branch transaction
- Client submits tree nonces (
SubmitTreeNonces) - Server verifies tree nonces, aggregates and returns them
- Client submits tree signatures (
SubmitTreeSignatures) - Server verifies, aggregates and finalizes via signing the VTXO tree and connectors and returning them to the client
- Client verifies data
4
Forfeit Transaction Handling
- Client creates forfeit transactions with connector outputs
- Client submits signed forfeit transactions (
SubmitSignedForfeitTxs) - If initial boarding, users also sign the commitment transaction
5
Onchain broadcast
Server broadcasts the signed commitment transaction on the Bitcoin mainchain
VTXO renewal undergoes the exact same process of participating in a batch swap. The renewal can either be done manually, which implies a liveness requirement of the user. VTXO renewal can also be delegated to a third party without key handoff.
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: Commitment Tx AnalysisGetCommitmentTxreturns details of a commitment transaction (TxId), including batches, amounts, and timestampsGetForfeitTxsreturns forfeit transactions linked to a commitment transactionGetConnectorsreturns the connector output tree with positioning details for a commitment transaction
GetVirtualTxs: Retrieves virtual transactions in hex format for specified transaction IDsGetVtxos: Queries VTXO states by scripts or outpointsGetVtxoChain: Traces transaction chains for specific VTXOs
GetVirtualTxsreturns raw virtual transactions for given Arkade transaction IDsGetVtxoChaintraces the lineage of Arkade transactions from a VTXO leaf spend to a specified VTXO outpoint, enabling full history reconstruction
GetBatchSweepTransactionsreturns transactions swept from a given batch output, indicating whether the operator claimed it after expiry or a user unrolled the tree
SubscribeForScripts: Subscribe to notifications for specific VTXO scriptsGetSubscription: Receive real-time notifications about subscribed scripts i
