Ramps
Ramps are the mechanisms that allow users to onboard and exit from the Ark protocol with its own built-in mechanisms. They are designed to provide a seamless experience for users, allowing them to move funds in and out of Ark. There are two types of ramps:
Boarding
The preferred method for onboarding funds into Ark is by sending Bitcoin to a boarding address. This is a specialized Taproot address where the internal key is disabled (no key-path spend) and the script path encodes two paths:
-
Unilateral Exit Path
The user can spend the funds after a timeout without Operator cooperation. -
Collaborative Path
The user and the Operator can jointly spend the funds immediately.
Once the UTXO sent to a boarding address is confirmed on Bitcoin, Alice can register it with the Ark Operator. The Operator can then include it in a Commitment Transaction, establishing their VTXO within a Batch Output.
Boarding addresses resemble VTXOs but typically use longer timelocks to reduce risk.
While any UTXO can be used as an input, a boarding address is the preferred way as it removes the risk of a malicious user double-spending the UTXO and replacing or failing the commitment transaction.
Exiting
Once a user has a VTXO, Ark supports two exit mechanisms, both preserving user custody and Bitcoin-enforceability.
1. Unilateral Exit
Users can unroll their VTXO into a native Bitcoin UTXO by broadcasting a chain of presigned virtual transactions. This requires:
- Possession of the full unroll path for the VTXO
- The corresponding Batch Output being confirmed and unexpired
This method does not require Operator cooperation and is always available before expiry.
2. Collaborative Exit
Alternatively, users can exit Ark cooperatively by requesting the Ark Operator to convert their VTXO into a UTXO in a new Commitment Transaction.
- The user registers their VTXO as input
- The desired output is a Bitcoin UTXO (instead of a VTXO)
- The Operator constructs and broadcasts the transaction
This method allows for immediate withdrawal with lower delay and is operationally simpler when the Operator is available.