DEV Community

Milton Altenwerth
Milton Altenwerth

Posted on

How to check a pending cross-chain swap

If a cross-chain swap looks stuck, check its source-chain transaction first, then follow the swap to the destination chain before deciding to retry. A cross-chain swap has more than one stage: sending the deposit, having it recognized, exchanging the assets, and sending the payout. A confirmed deposit proves only that the first stage happened.

What does “pending” mean in a cross-chain swap?

“Pending” can mean the deposit is waiting for confirmation, or that the deposit is confirmed while a later stage is still underway. Each blockchain records its own transactions, so one explorer may show the deposit as complete even though the destination transfer has not appeared yet. In a thor swap, for example, the source-chain deposit and destination-chain payout are separate transactions to track.

Before looking anything up, find the transaction ID, also called a transaction hash, for the deposit. It is a unique code for that transaction. You can usually find it in the wallet’s activity or swap details; copy it rather than searching by amount, which may match many transfers.

Which transaction should you check first?

Start with the deposit transaction on the blockchain you sent from. Open a trusted block explorer for that network and search the full transaction ID. Confirm that the sender, destination, asset, and amount match your swap. A matching amount alone is not enough to identify the right transaction.

Read the status in the context of that chain. On Ethereum, a transaction may be pending in the network’s queue, or it may be included in a block with a success or failure result. On Bitcoin, an unconfirmed transaction may still be waiting in the mempool, the pool of transactions awaiting inclusion in a block. A confirmed source transaction means the network recorded your deposit; it does not mean the swap payout is complete.

Next, check whether the swap service recognizes that deposit and whether a destination transaction exists. A cross-chain swap commonly follows this sequence:

  1. Your wallet broadcasts a deposit transaction to the source chain.
  2. The source chain confirms it, and the swap service detects the deposit.
  3. The service exchanges the assets, often through liquidity pools, which hold assets available for swaps.
  4. A separate transaction sends the output asset to your destination address.

The key clue is the last transaction: if it exists, search its hash on an explorer for the destination network. If it does not exist, the swap may still be processing or may need review; the confirmed deposit by itself cannot tell you which.

How can you tell a delay from a failure?

Look for a clear failure result on the relevant chain or a swap status that explicitly says the operation failed. A source transaction that failed on an EVM-compatible chain did not successfully deliver the deposit, although the wallet may still have spent a network fee. By contrast, a confirmed deposit followed by no destination transaction is an incomplete journey, not proof that the deposit failed.

For a Bitcoin deposit that remains unconfirmed, check the explorer’s current status and fee context. Busy networks can leave lower-fee transactions waiting longer; an explorer no longer showing a transaction is not, by itself, proof that funds were returned. For a confirmed deposit with no payout, use the swap’s transaction details to see whether the deposit was recognized and whether processing has advanced.

What should you do before trying again?

Do not send a second deposit just because the destination balance has not changed. First check the destination transaction, if one is available, and verify that it went to the address you intended. Also check that your wallet is displaying the destination network and the correct asset; a completed transfer can be hard to see if the wallet is showing another network or has not added the token to its display.

If the source deposit is confirmed but you cannot find a payout or a clear final status, keep the transaction IDs and compare them with the swap’s current status before taking another action. The relevant next step depends on the stage: an unconfirmed deposit is a source-chain issue, while a confirmed deposit with no payout needs a status check with the swap service.

Retry only when the original deposit is clearly failed or the service confirms that no swap is still processing; otherwise, keep tracking the existing transaction.

Top comments (0)