SettleMint
User guidesSystem addonsXvP settlementSettlement action referenceCancel

Cancel

Stop an open XvP settlement and return locked assets to their original senders. Learn when cancellation is unilateral, when unanimous cancel votes are required, and when to use expired-withdrawal instead.

Cancelling a settlement stops an open exchange and returns locked assets to the original senders. Use cancellation before execution or expiry when the exchange should no longer proceed. The contract either cancels immediately or records a cancel vote, depending on whether the settlement is armed for external flows.

What cancellation does

Cancellation is final. Once a settlement is cancelled, it cannot execute and the locked assets are refunded from escrow to the senders that provided them.

The cancellation rule depends on settlement state:

Settlement stateCancellation behaviorWhat you should do
Pending local settlementA local participant can cancel unilaterally.Call the cancel endpoint.
Pending HTLC settlementA local participant can cancel unilaterally before every local sender has approved.Call the cancel endpoint.
Armed HTLC settlementEach local participant must cast a cancel vote. The settlement cancels only after all local cancel votes are recorded.Call the cancel endpoint from each required participant.
Secret revealedCancellation is no longer allowed.Continue the execution flow.
ExecutedCancellation is no longer allowed.Treat the settlement as complete.
ExpiredCancellation is no longer allowed.Use Withdraw expired to release locked assets.

Where to go next

Different readers need different next steps from the cancellation model:

ReaderUse this page to decideNext step
Buyer or business userWhether the exchange can still be stopped and assets returned.Read Cancel a local settlement for same-chain exchanges.
OperatorWhich participant action is available for the current state.Read Cancel an HTLC settlement before coordinating proposals.
Security reviewerWhen cancellation is blocked by execution or secret reveal.Read HTLC explained for the hashlock and timelock model.

How to cancel

Call the cancel endpoint with the settlement contract address. The API queues a transaction that calls the settlement contract's proposeCancel function.

PUT /xvp/cancel
Content-Type: application/json

{
  "settlementAddress": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
  "walletVerification": {
    "secretVerificationCode": "YOUR_PINCODE"
  }
}

For local settlements and HTLC settlements that are not fully approved, the call cancels the settlement immediately. No other participant approval is required.

For armed HTLC settlements, the same endpoint records the caller's cancel vote. The settlement remains open until every local participant has voted to cancel. The final required vote cancels the settlement and refunds the locked assets.

Production checks

Before you cancel, check the settlement state and choose the correct action:

  • If the settlement has not executed, has not expired, and has no revealed secret, use cancellation.
  • If the settlement has external flows and every local sender has approved, treat cancellation as a unanimous vote.
  • If the settlement has expired, do not retry cancellation. The contract rejects cancel attempts after the cutoff with XvPSettlementExpired; use Withdraw expired instead.
  • If a participant has voted to cancel an armed HTLC settlement and the secret has not been revealed, they can retract their vote with the withdraw-cancel endpoint.
  • If the secret has been revealed, cancellation and cancel-vote withdrawal are no longer available.

For step-by-step procedures, use the settlement-specific guides:

Cancel a local settlement

Cancel a non-HTLC settlement before execution and refund locked assets.

Cancel an HTLC settlement

Cancel before the HTLC is armed, or coordinate unanimous cancel votes after it is armed.

Audit notes

Cancellation is constrained on-chain:

  • The caller must be a local participant.
  • The settlement must be open: not executed, not cancelled, and before the cutoff.
  • The contract rejects cancellation after the HTLC secret is revealed.
  • Armed HTLC cancellation votes are tracked on-chain with cancel-vote cast and withdrawal events.
  • A cancel vote can be withdrawn only for an armed external-flow settlement that is fully approved, still open, and has no revealed secret.

On this page