Forfeits are pre-signed transactions used in refreshes and on-chain payments to grant the Ark server control over the VTXOs being spent. The server holds forfeit transactions off-chain as a safeguard against malicious exits. Forfeits are used in combination with hash-locks or connectors to provide cryptographic assurance that the forfeit is only valid if the intended operation completes. This allows users to safely sign forfeit transactions without trusting any third party—ensuring the associated operations are atomic, self-custodial, and without counterparty risk.Documentation Index
Fetch the complete documentation index at: https://second.tech/docs/llms.txt
Use this file to discover all available pages before exploring further.
- Forfeits + hash-locks for refreshes.
- Forfeits + connectors for on-chain payments (including offboards).
Connectors replaced by hash-locks for refreshesAs of version 0.1.0-beta.6, Bark uses hArk (Hash-lock Ark), which achieves refresh atomicity through hash-locks instead of connectors. Connectors are now used exclusively for on-chain payments and offboards.
Ark and Lightning payments don’t use forfeitsArk and Lightning payments don’t involve forfeiting a VTXO.In Ark payments, the user pre-signs a new off-chain transaction with the Ark server that extends the leaf of an existing VTXO, creating a spend VTXO.In Lightning payments, the user relies on HTLC-based spending policies to ensure atomic execution.
How forfeits work
If you are familiar with penalty transactions in the Lightning Network, you should already have a good idea of how forfeits on Ark work. To support forfeits, each VTXO’s exit transaction (leaf) has two spend paths:- Spend path 1: A 2-of-2 multisig between the user and the Ark server. The user signs this path to create a forfeit transaction granting the VTXO to the server. This path has no timelock—if the exit transaction ever makes it on-chain, the server can broadcast the forfeit before the user claims the bitcoin.
- Spend path 2: Controlled solely by the user for emergency exits. This path has a relative timelock of
60blocks (approximately10 hours), implemented using OP_CHECKSEQUENCEVERIFY (CSV).