The term “exiting” refers to the process of converting VTXOs back into onchain Bitcoin UTXOs, allowing users to withdraw their funds from the Arkade system. There are two primary exit mechanisms: collaborative exit and unilateral exit (force redemption).

Client API Overview

Clients interact with exit functionality primarily through the (ArkService). The service provides both gRPC and REST endpoints for all exit operations.

Getting Boarding Configuration

Clients first need to understand the boarding parameters by calling GetInfo() which returns GetInfoResponse server configuration parameters like network settings, amount limits, timeouts (e.g. expiry, exit delays), the operator’s signer key, and the current protocol version.

Collaborative Exit Process

The preferred exit method where the operator cooperates to create an exit transaction:
  1. Exit Request: Client calls CollaborativeExit with onchain destination address and amount
  2. Tx creation: The server creates an exit transaction spending selected VTXOs
  3. Batch Processing: The exit is processed in the next batch round following the standard batch processing flow
  4. Settlement: The exit transaction is broadcast and confirmed onchain

Ramps: Boarding Arkade

How to use a ramp for exiting Arkade

Unilateral Exit Process

When a collaborative exit fails or the operator is unresponsive, clients can force exit:
  1. Unroll Initiation: Client initiates unilateral exit using the --force flag
  2. Timelock Wait: Client must wait for the unilateral exit delay period to expire
  3. Completion: After timelock expires, client completes the exit (`arkSdkClient.CompleteUnroll

Exit Types and CLI Usage

Collaborative Exit with Change:
ark-cli redeem --amount 1000 --address <destination> --password <pwd>
Collaborative Exit with full Balance:
ark-cli redeem --amount <full_amount> --address <destination> --password <pwd>
Unilateral Exit:
ark-cli redeem --force --password <pwd>  
ark-cli redeem --complete --address <destination> --password <pwd>

Event Stream Monitoring

Clients can monitor exit progress through GetEventStream() , which returns GetEventStreamResponse and provides real-time updates about batch processing phases and transaction confirmations.
The exit mechanisms demonstrate Arkade’s non-custodial nature: users always retain the ability to redeem their funds onchain via a unilateral exit, while the collaborative exit provides an efficient happy-path for normal operations.