Mismatched Refund Addresses and Failed Swap Recovery

Mismatched Refund Addresses and Failed Swap Recovery

A failed cross-chain swap may return funds to a different address than the one you expect. The refund goes to an address recorded for the source chain, not automatically to the wallet that sent the deposit or the address meant to receive the swapped asset. Checking that address before funding can prevent a slow, costly recovery.

A Refund Returns Along the Source Chain

A refund address tells the protocol where to send your original asset if a swap cannot complete. Chainflip’s swap documentation describes refunds to the specified address on the source chain when swap protection conditions are not met within the retry period.

That address is separate from the destination address. For example, if you swap BTC for SOL, the destination is a Solana address, while the refund address must receive Bitcoin. A Solana address in the refund field cannot receive a Bitcoin refund.

The difference matters even when two addresses look familiar. A wallet may show one address for receiving Bitcoin and another for Solana; a custodial service may give you a deposit address that only credits incoming funds it expects. If a refund reaches an address that the service does not recognise, you may need its help to recover the funds.

Bitcoin adds a detail that is easy to miss: the refund destination can be encoded in the transaction’s change output. The Bitcoin Developer Guide explains that change is a separate output back to the spender. Chainflip’s Bitcoin swap documentation uses that output to identify the refund address, so the sending address alone may not determine where a refund goes.

Check the Refund Address Before Funding

Confirm the source-chain refund destination before sending funds; these steps catch the common mismatches without adding a later recovery.

  1. Match the chain. Check that the refund address belongs to the chain holding your deposit, even when the swap destination is elsewhere.
  2. Check control. Use an address whose keys you control, or confirm that a custodian accepts protocol refunds to that address.
  3. Review the recorded value. Before funding, compare the refund address in the swap request or transaction details with the intended source-chain address. For a Bitcoin swap, check the transaction’s change output.
  4. Keep the record. Save the swap identifier and source-chain transaction ID. If the swap fails, these help you find the refund and check which address received it.

For instance, imagine sending Bitcoin while a saved swap request still names an old exchange deposit address. If the swap times out, the protocol can return BTC to that recorded address; the refund may not appear in your current wallet. Finding the transaction quickly helps, but recovery then depends on who controls the destination address and whether they can credit the return.

Recover the Refund From Its Recorded Destination

Start by checking the swap status and the source-chain transaction for the refund address and transaction ID. If the address is yours, open that wallet with the keys for the correct chain; if a custodian controls it, give them the transaction details and ask whether they can trace the incoming funds.

A refund may arrive with deductions for the protocol refund charge and the source chain’s transaction fee, so the returned amount can be smaller than the deposit. The fastest prevention is to verify the address before funding; after a refund has been sent, changing the recorded address cannot redirect it.

chainflip.org provides a way to make cross-chain swaps with Chainflip. For a broader explanation of how Chainflip swap types work, see the article covering each swap type and how it operates. My rule is simple: fund only after the refund address matches a wallet or custodian that can receive the source asset.

Comments

Popular posts from this blog

Your Cross-Chain Swap Is Pending: How to Track It

Monero remote nodes and deposit privacy explained

How Long Does Cross-Chain Liquidity Take to Deliver?