Skip to main content

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 a settlement intent 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 Broadcast: The operator constructs and broadcasts commitment transaction, converting the client’s onchain UTXOs into Arkade VTXOs.
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.