Emergency exit process
The emergency exit process has three phases:- Start - Register VTXOs for exit using
/start/vtxosor/start/all - Progress - The daemon automatically advances exits through multiple on-chain transactions. You can also manually trigger progress with
/progress - Claim - Once all exits reach the claimable state, call
/claim/vtxosor/claim/allto sweep the outputs to an on-chain address
SLOW_INTERVAL. The daemon does not auto-claim—you must call the claim endpoint manually.
Get exit status
Path parameters
vtxo_id(string, required) - The VTXO ID to check
Query parameters
history(boolean, optional) - Include detailed state transition history. Default:falsetransactions(boolean, optional) - Include exit transactions and their CPFP children. Default:false
Response
start- Exit has been registeredprocessing- Exit transactions are being created and broadcastawaiting-delta- Exit transactions are confirmed, waiting for timelock to expireclaimable- Ready to claimclaim-in-progress- Claim transaction has been broadcastclaimed- Exit complete
Example
Errors
400- Invalid VTXO ID404- VTXO not found
List all exit statuses
Query parameters
history(boolean, optional) - Include detailed state transition history. Default:falsetransactions(boolean, optional) - Include exit transactions and their CPFP children. Default:false
Response
Example
Start exit for specific VTXOs
SLOW_INTERVAL, creating and broadcasting the required transactions in sequence. Once all exit transactions are confirmed and the timelock has elapsed, call claim to sweep the resulting outputs to an on-chain address.
Request body
vtxos(array of strings, required) - VTXO IDs to exit
Response
Example
Errors
400- No VTXO IDs provided or invalid VTXO ID404- One of the VTXOs wasn’t found
Start exit for all VTXOs
SLOW_INTERVAL, creating and broadcasting the required transactions in sequence. Once all exit transactions are confirmed and the timelock has elapsed, call claim to sweep the resulting outputs to an on-chain address.
Response
Example
Progress exits
Request body
fee_rate(integer, optional) - Desired feerate in sats/kvB. If omitted, uses current network feerates
Response
done(boolean) -truewhen all exits reach the claimable state (i.e., no pending exits remain)claimable_height(integer or null) - Block height when all exits become claimableexits(array) - Status of each exit that was progressed
Example
Claim specific exited VTXOs
progress, the daemon does not claim automatically—this endpoint must be called manually. Poll the status endpoint or call progress and check for done: true to know when VTXOs are ready to claim. This is the final step of the emergency exit process—the bitcoin is not considered back on-chain until this transaction confirms.
Request body
vtxos(array of strings, required) - VTXO IDs to claimdestination(string, required) - Bitcoin address to send claimed fundsfee_rate(integer, optional) - Desired feerate in sats/kvB. If omitted, uses current network feerates
Response
Example
Errors
400- One of the provided VTXOs isn’t claimable, or invalid destination address
Claim all exited VTXOs
progress, the daemon does not claim automatically—this endpoint must be called manually. Poll the status endpoint or call progress and check for done: true to know when VTXOs are ready to claim. This is the final step of the emergency exit process—the bitcoin is not considered back on-chain until this transaction confirms.
Request body
destination(string, required) - Bitcoin address to send claimed fundsfee_rate(integer, optional) - Desired feerate in sats/kvB. If omitted, uses current network feerates
Response
Example
Errors
400- Invalid destination address