The term “boarding” refers to the process of bringing external Bitcoin UTXOs into the Arkade system and receive offchain VTXOs in return. This process occurs through the Intent System and follows the standard batch processing flow, involving several key interactions between clients and Arkade.

Client API Overview

Clients interact with boarding functionality primarily through the ArkService gRPC interface. The service provides both gRPC and REST endpoints for all boarding 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.

Boarding Address Generation

Clients then generate a boarding address with two script paths:
  • User + Server (collaborative)
  • User + CSV (unilateral exit after timeout)
and send Bitcoin to said address.

Ramps: Boarding Arkade

How to use a ramp for boarding Arkade

Intent Registration and Batch Processing Participation

After funding the boarding address, clients participate in the standard batch processing flow:
  1. Registration: Client registers an intent through RegisterIntent() with boarding inputs and a BIP322 signature.
  2. Confirmation: Client confirms participation via ConfirmRegistration()
  3. Tree Signing: Client submits nonces and signatures for the Musig2 protocol
  4. Forfeit Transaction Submission: Client submits signed forfeit transactions
  5. Commitment Transaction Signing: Client signs commitment transaction for boarding inputs
The server validates boarding inputs during commitment transaction creation via validateBoardingInput

Event Stream Monitoring

Clients can monitor the boarding progress through GetEventStream() , which returns GetEventStreamResponse and provides real-time updates about batch processing phases and transaction confirmations.
From the client perspective, boarding is seamlessly integrated into the standard Arkade transaction flow. Clients don’t need special boarding-specific APIs beyond including boarding inputs in their intents and participating in the normal batch processing protocol. The system handles boarding validation and processing transparently during the batch lifecycle.