Debridge swap

Debridge swap separates destination fulfillment from source settlement

· last updated

Debridge swap records cross-chain fulfillment separately from the solver's later claim on source funds. For a plain token transfer, confirmed fulfillment means the requested output reached the designated recipient. A pending source settlement therefore does not justify repeating the exchange. Before retrying, identify whether the unresolved event concerns order creation, destination delivery or an attached contract action.

A missing wallet balance and an unfilled order need different responses. The transaction record connects that distinction to the next action: wait for an open order, reconcile a completed transfer or investigate a failed attempt before submitting again.

Key takeaway: Destination fulfillment can confirm a completed token delivery while the solver still awaits source settlement, so that delay alone does not justify another swap.

Waiting versus submitting another exchange

Waiting leaves the existing order available for fulfillment; submitting a new exchange can create a separate obligation involving additional funds. Compare both options against the same question: can the original order still deliver its requested output? A fresh quote does not close an existing order, and a second submission does not replace it merely because the assets and amounts match.

A confirmed delivery calls for reconciliation if the wallet display looks wrong. An unresolved submission calls for transaction checks. A genuinely unfilled order calls for monitoring or an eligible cancellation, depending on whether its terms remain acceptable. Treating every delay as a reason to retry can leave separate orders capable of filling.

Does a long wait mean the order has failed?

A long wait does not establish failure because an open cross-chain order can remain unfilled until a solver accepts its terms.

Does a long wait mean the order has failed?: Solvers evaluate whether fulfillment meets their requirements, including profitability and source-chain confirmation risk. Changing market conditions can leave an order unattractive without invalidating it. A timer measures elapsed time; it does not establish whether the destination contract can still accept fulfillment. The order's execution state determines that distinction.
Does a long wait mean the order has failed?, illustrated

Open full-size image

Solvers evaluate whether fulfillment meets their requirements, including profitability and source-chain confirmation risk. Changing market conditions can leave an order unattractive without invalidating it. A timer measures elapsed time; it does not establish whether the destination contract can still accept fulfillment. The order's execution state determines that distinction.

Waiting remains an option while the order stays open and its terms remain acceptable. If those terms no longer suit the intended exchange, inspect the available cancellation path before treating a replacement as the only outstanding order. A cancellation request itself does not prove that the refund beneficiary has received the source refund. The refund can be in the reserve asset used by the order rather than the token originally submitted.

Approval success versus order creation

A successful wallet transaction may establish spending permission without creating the cross-chain order, so identify the operation before interpreting its success.

Token spending permission

For an ERC-20 input, the submitting address needs sufficient allowance for the contract that spends the tokens. An approval changes that permission. It does not establish destination delivery or prove that the later order-creation transaction succeeded. Inspect the transaction type when the wallet shows success but no exchange appears in the order history.

Source transaction execution

The source transaction must execute the order-creation call successfully. A transaction hash identifies an attempted submission, while its confirmed outcome establishes what executed. If the creation transaction remains unresolved, another submission introduces uncertainty rather than resolving the first attempt. If it failed, identify the reported cause before requesting replacement transaction data.

The resulting order record

An order record ties the committed input to the requested destination output. Its identifier allows tracking across chains. Preserve that identifier alongside the creation transaction hash, especially when several exchanges appear in the same wallet history. Matching only by a similar amount can lead to checking the wrong order.

The destination record for the exact order

The destination chain records whether the cross-chain order has fulfilled or entered cancellation. Match the order identifier, destination network and recipient before drawing a conclusion from a status label. Source-chain records describe the input side and its later release; they do not replace the destination fulfillment check. The tracking data also identifies the fulfillment transaction, which connects the order status to the actual destination execution.

Fulfillment before the solver receives source funds

The statuses Fulfilled, SentUnlock and ClaimedUnlock describe progress along a successful cross-chain order's fulfillment and settlement path. They do not represent successive deliveries to the recipient. For an order without a hook, Fulfilled confirms transfer of the full requested output to the designated recipient.

After fulfillment, the solver initiates a message that requests release of the locked input on the source chain. SentUnlock identifies that settlement process, while ClaimedUnlock records its completion. The recipient does not need another exchange merely because the solver has not yet claimed those funds. An attached action requires its own completion check, however, because fulfillment can direct the output into that action's execution machinery.

Reconciling fulfillment with a missing wallet balance

A fulfilled plain-transfer order and an empty wallet display require a comparison against the destination transaction. The wallet's aggregate balance alone cannot identify which order delivered which asset, especially when other transactions affect the same account.

The intended recipient

The output recipient can differ from the address that submitted the source transaction. Compare the recipient recorded in the order with the address receiving the destination transfer. Looking at the source wallet's balance answers the wrong question when the order names another recipient.

The exact output asset

The network and token identifier distinguish the requested output from assets that share a displayed symbol. Compare the applicable contract address, mint address or native-asset identifier. Also check the asset's decimal precision before comparing a raw transaction amount with the wallet's formatted amount. A formatting difference does not by itself establish a shortfall.

The transfer and later activity

The fulfillment transaction establishes the delivery event. Later transfers or contract interactions can change the recipient's current balance, so a present balance below the delivered amount does not independently disprove receipt. Inspect the relevant transaction history when those values differ.

The transfer and later activity: The fulfillment transaction establishes the delivery event.; Later transfers or contract interactions can change the recipient's current balance, so a present balance below the delivered amount does not independently disprove receipt.; Inspect the relevant transaction history when those values differ.
Illustration: The transfer and later activity

Open full-size image

If the destination record names an unexpected asset or recipient, stop submitting new exchanges while resolving the discrepancy. A new swap cannot correct the recorded destination of an already completed transfer.

A completed delivery and an unresolved creation attempt

Consider a hypothetical cross-chain exchange without an attached action. The selected input asset, output asset, networks, recipient and observations in this example are hypothetical. The requested outcome is delivery of the selected output to the designated destination address.

Before submission, the reader checks the executable quote, output recipient and any required token allowance. The creation transaction then succeeds and produces an order identifier. This establishes an actual order to track rather than relying on the wallet's submission message.

On the normal path, that order reaches SentUnlock. Its destination fulfillment transaction shows the requested output reaching the designated recipient. The source settlement still awaits completion. The reader stops considering a retry because the delivery has already occurred; the unresolved event concerns the solver's claim.

In the alternative case, the wallet reports a submission error before the reader obtains a confirmed creation result. The reader checks the submitted transaction and any resulting order record before acting. If that transaction ultimately succeeds, the existing order needs tracking. If it definitively fails and no separate creation succeeded, the reader can address the failure and review a fresh quote. A confirmed creation requires tracking; a definitively failed creation with no other successful submission permits a corrected attempt. An unresolved transaction requires further checking.

Same-chain trades use a different completion record

A same-chain swap requires transaction confirmation on its single network rather than cross-chain order settlement. Its history can still contain an order-like entry, but that representation does not establish an on-chain cross-chain order. Use the swap transaction and resulting output to assess completion. Searching for a later source unlock would add a condition that does not belong to this execution path.

Does fulfillment confirm an attached contract action?

Fulfillment does not always confirm an attached contract action because some hooks can execute separately after the exchange order fills. A non-atomic hook can remain pending after its order reaches fulfillment. In that condition, the output awaits further processing in an intermediary contract rather than appearing as an ordinary wallet transfer.

Does fulfillment confirm an attached contract action?: Fulfillment does not always confirm an attached contract action because some hooks can execute separately after the exchange order fills.; A non-atomic hook can remain pending after its order reaches fulfillment.; In that condition, the output awaits further processing in an intermediary contract rather than appearing as an ordinary wallet transfer.

Open full-size image

The external-call status therefore matters alongside the order status. An order can finish its exchange leg while the attached action remains awaiting execution. Repeating the whole swap would create another exchange instead of resolving that existing action. Inspect the action's state and the funds associated with it before choosing any supported recovery operation.

Hook behavior depends on configuration and destination: EVM contracts support atomic and non-atomic hooks, while Solana supports only non-atomic success-required hooks. A failed atomic success-required hook reverts the fulfillment transaction. If an optional-success hook fails, fulfillment can still succeed and the output goes to its configured fallback address. These conditions require different receiving-state checks, so an application error alone cannot establish that the entire exchange failed.

A failed attempt and a fresh quote

A fresh quote becomes relevant after identifying what failed and establishing whether an earlier order still exists. For a creation attempt that definitively failed, inspect its error before changing the request. Insufficient spending permission and an unavailable executable route require different corrections. Increasing an amount or changing output terms without understanding the failure can introduce a new problem.

Review the new request on its own terms, including its recipient, expected output and transaction costs. Changes in a quotation form do not establish changes to an existing order. If an earlier order remains open, reconcile or close that obligation before describing the new submission as a replacement. Keep the old and new transaction identifiers separate.

Conflicting records and the point to stop

Conflicting records call for preserving the order identifier, relevant transaction hashes and the exact discrepancy. Identify whether the disagreement concerns creation, fulfillment, the receiving address or an external call. A blank response, failed status request or wallet error does not establish the opposite on-chain outcome.

Cancellation introduces another boundary: stopping an order's fulfillment and receiving its source refund are separate events. Confirm the applicable result before reusing funds that still appear locked. Completed delivery needs reconciliation; an open order needs monitoring or an eligible exit; a confirmed failed creation can support a corrected submission.

Common questions about Debridge swap

Can the same cross-chain order be fulfilled twice?

The destination contract prevents an already fulfilled or cancelled order from fulfilling again. That protection applies to the same order identifier. A new exchange can create a different order, so duplicate-fulfillment protection does not make repeated submissions harmless.

Does closing the browser cancel a pending swap?

Closing the browser does not cancel an order that already exists on-chain. The interface is a way to submit and inspect transactions; closing it does not perform the destination-chain cancellation operation. Reopening the interface should begin with locating the existing order rather than assuming it disappeared.

What does a None status establish about my submission?

A None status alone does not establish whether a submitted transaction failed. Match the queried identifier to the actual creation transaction and inspect its confirmed outcome. An incorrect identifier or an unresolved lookup must not become the sole justification for another exchange.

Which identifier should I retain if a transaction creates several orders?

Retain each order identifier as well as the shared creation transaction hash. Tracking supports retrieving multiple order identifiers associated with a transaction. Each order needs its own fulfillment check, because one transaction-level reference does not establish that every resulting order reached the same destination state.

Is automatic cancellation available for every delayed order?

Automatic cancellation is not a universal property of delayed orders. It can be enabled for market orders associated with an approved referral-code configuration; this automatic cancellation feature excludes limit orders. Without knowing that the configuration applies to the order, elapsed time cannot establish that cancellation or a refund has occurred.

How can a support investigation locate the fulfillment transaction?

Order-tracking data includes the destination fulfillment transaction hash when a fulfillment event exists. Providing the order identifier and creation hash helps connect the reported issue to that event. Keep any separate external-call transaction identifiable as well, because it can describe a different operation from the token exchange.