WalletServiceCLIwavecli exit

ExitStatus

ExitStatus reports the current phase of an unroll job for the specified VTXO outpoint, including recovery chain progress and sweep state. Proxies waverpc.GetUnrollStatus.

Endpoints

gRPCrpc ExitStatus(ExitStatusRequest) returns (ExitStatusResponse)
RESTPOST/v1/wallet/exit-status

Examples

wavecli exit status --outpoint 4b2e9f1a7c3d5e6f8091a2b3c4d5e6f70819a2b3c4d5e6f708192a3b4c5d6e7f:0

RequestExitStatusRequest

ExitStatusRequest identifies the VTXO whose exit job to query via WalletService.ExitStatus.

FieldTypeDescription
outpointstring

outpoint is the VTXO outpoint to query, formatted as "txid:index".

detailedbool

detailed enriches the response with tree/CSV progress and a fee breakdown. It costs one extra child actor round-trip plus a fee estimate, so it should be set only for interactive status commands, not automated polling.

ResponseExitStatusResponse

ExitStatusResponse reports the current phase of an unroll job for WalletService.ExitStatus.

FieldTypeDescription
foundbool

found is true if an exit job exists for the requested outpoint.

statusExitJobStatus

status is the current high-level phase of the exit job.

sweep_txidstring

sweep_txid is the txid of the sweep transaction, set once the sweep has been broadcast.

last_errorstring

last_error contains the failure reason if the job is in FAILED status.

phase_detailstring

phase_detail is a human-readable one-line description of the current phase, e.g. "materializing layer 2 of 4 (3/7 txs confirmed)". Set only on a detailed query.

progressExitProgress

progress is the tree materialization progress. Set only on a detailed query against a live job.

csvExitCSV

csv is the CSV maturity countdown. Set only on a detailed query, once the target has confirmed.

feesExitFees

fees is the on-chain cost breakdown for the exit. Set only on a detailed query.

best_case_blocks_remainingint32

best_case_blocks_remaining is the optimistic block count until a confirmed sweep. Set only on a detailed query.

current_heightint32

current_height is the best block height the exit job has observed. Set only on a detailed query against a live job.

ExitJobStatusenum

ExitJobStatus collapses the underlying unroll job phases to a short wallet-facing string set.

NameNumberDescription
EXIT_JOB_STATUS_UNSPECIFIED0

EXIT_JOB_STATUS_UNSPECIFIED - the proto zero value; no job phase has been reported.

EXIT_JOB_STATUS_PENDING1

EXIT_JOB_STATUS_PENDING - job created but recovery transactions not yet materialized.

EXIT_JOB_STATUS_MATERIALIZING2

EXIT_JOB_STATUS_MATERIALIZING - recovery transactions are being broadcast and confirmed on-chain.

EXIT_JOB_STATUS_CSV_PENDING3

EXIT_JOB_STATUS_CSV_PENDING - recovery transactions confirmed, waiting for the CSV delay to expire.

EXIT_JOB_STATUS_SWEEPING4

EXIT_JOB_STATUS_SWEEPING - CSV delay expired, sweep transaction is being broadcast/confirmed.

EXIT_JOB_STATUS_COMPLETED5

EXIT_JOB_STATUS_COMPLETED - terminal: the sweep confirmed and the funds are in the on-chain wallet.

EXIT_JOB_STATUS_FAILED6

EXIT_JOB_STATUS_FAILED - terminal: an unrecoverable error occurred.

ExitProgressmessage

ExitProgress describes materialization progress through the exit proof tree. It is populated only for a detailed query against a live exit job.

FieldTypeDescription
confirmed_txsuint32

confirmed_txs is the number of proof transactions confirmed on-chain.

in_flight_txsuint32

in_flight_txs is the number of proof transactions broadcast but not yet observed confirmed.

ready_txsuint32

ready_txs is the number of proof transactions ready to broadcast now.

blocked_txsuint32

blocked_txs is the number of proof transactions still waiting on an unconfirmed in-proof parent.

total_txsuint32

total_txs is the total number of transactions in the exit proof tree.

current_layeruint32

current_layer is the frontier layer index: the shallowest topological layer (roots first) that still holds an unconfirmed transaction.

total_layersuint32

total_layers is the depth of the exit proof tree.

target_confirmedbool

target_confirmed is true once the target VTXO transaction has confirmed.

all_proof_confirmedbool

all_proof_confirmed is true once every proof-tree transaction has confirmed, so only the CSV wait and final sweep remain.

ExitCSVmessage

ExitCSV describes the target's CSV maturity countdown. It is populated only once the target transaction has confirmed.

FieldTypeDescription
target_confirm_heightint32

target_confirm_height is the block height at which the target confirmed.

maturity_heightint32

maturity_height is the block height at which the target becomes timeout-spendable.

blocks_remainingint32

blocks_remaining is how many blocks remain until CSV maturity.

maturebool

mature is true once the current height is at or past maturity.

ExitFeesmessage

ExitFees breaks down the on-chain cost of the exit. The CPFP total is estimated from the current fee rate; the sweep fee is the actual built-sweep fee once known, otherwise estimated.

FieldTypeDescription
cpfp_fee_satint64

cpfp_fee_sat is the wallet-funded CPFP fee across every recovery transaction (estimated).

sweep_fee_satint64

sweep_fee_sat is the fee the final sweep pays out of the VTXO value.

total_cost_satint64

total_cost_sat is cpfp_fee_sat + sweep_fee_sat.

vtxo_amount_satint64

vtxo_amount_sat is the value of the VTXO being exited.

net_recovered_satint64

net_recovered_sat is vtxo_amount_sat - sweep_fee_sat.

fee_rate_sat_vbyteint64

fee_rate_sat_vbyte is the fee rate used for the estimate.

sweep_fee_actualbool

sweep_fee_actual is true when sweep_fee_sat is the real built-sweep fee rather than an estimate.

spent_so_far_satint64

spent_so_far_sat is the estimated on-chain fee already committed at this point in the exit: CPFP for the confirmed and in-flight recovery transactions, plus the sweep fee once the sweep is broadcast. It is an estimate, not a realized total; total_cost_sat remains the projected cost of the whole exit.