What is Boarding?

Boarding enables users to bring external Bitcoin UTXOs into Arkade’s execution environment and receive programmable Virtual Transaction Outputs (VTXOs) in return. This operation is coordinated between clients and Arkade through the Intent System and settles atomically within Arkade’s standard batch processing flow.

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. No special boarding APIs are needed; clients include their Bitcoin UTXOs as inputs in their intents and follow the existing batch processing protocol. The system handles boarding validation and processing transparently during the batch lifecycle.