When a Swap Fails, Where Does the Refund Land?
When a cross-chain swap fails, the refund auto-returns to your SOURCE address — the exact address your deposit came from, traced on-chain from the deposit transaction. That mechanism is safe when you sent from a wallet you control, and a quiet trap when you did not: if the source is an address you cannot reach, the refund lands somewhere you cannot reach it. Four source-wallet types break this — a centralized-exchange withdrawal / hot wallet, a single-use exchange deposit address, a Gnosis Safe not deployed on the refund chain, and a counterfactual (undeployed) ERC-4337 smart account. On UpSwap you do NOT set a refund address; it goes to source automatically (model confirmed 2026-06-11). The one rule that prevents almost every lost-refund ticket: never start a swap directly from a CEX withdrawal — withdraw to a self-custody wallet you control first, then swap from there.
Key takeaways
- ·A refund goes to your SOURCE address automatically — the address your deposit transaction came from, traced on-chain. On UpSwap you never set a refund address; it returns to source by default (model confirmed 2026-06-11).
- ·The single most useful rule: never start a cross-chain swap directly from a centralized-exchange withdrawal. If it fails, the refund traces back to the exchange's shared hot wallet, which does not auto-credit your account — you would need a manual recovery ticket that is reviewed case-by-case and is explicitly not guaranteed.
- ·Four source-wallet types break the refund: (1) CEX withdrawal / hot wallet, (2) single-use / rotated exchange deposit address, (3) Gnosis Safe not deployed on the refund chain, (4) ERC-4337 smart account that is counterfactual (undeployed).
- ·UpSwap's fallback differs by chain family: across UpSwap's coverage of 24+ chains, 111+ tokens, and 166 pairs, 14 EVM chains share one distributor wallet that can receive stranded refunds automatically; non-EVM chains (Bitcoin, Solana, Tron, Sui, NEAR, Cardano, Stellar, XRP) have no controllable distributor wallet and rely on manual Telegram coordination — prepare your orderId and source txHash.
- ·Before any swap, run the 5-item source-address check: it is an address you fully control, it can receive an inbound transfer, it is a plain EOA (or a smart account confirmed deployed on the refund chain), it is not a CEX-generated address, and you have the private key or signer access on that exact chain.
<p>Your swap said <em>pending</em>, then it said <em>failed</em>, and the only question that matters now is: <strong>where is my money going to come back to?</strong></p><p>The short answer is uncomfortable in its simplicity. The refund goes back to the address your deposit came from — no more, no less. It does not go to a form you filled in. It does not go to your connected wallet if that is different from the sending address. It traces the deposit transaction on-chain and sends the returned amount to whatever address signed it. That mechanism is safe and predictable when you sent from a wallet you control. It is a quiet trap when you did not.</p><p>This guide is the operational deep-dive on exactly one thing: the refund destination, and the four kinds of source wallet that make a refund unreachable. It uses UpSwap's real refund model — auto-refund-to-source first, distributor address plus manual Telegram coordination as fallback — as the worked example, and it is honest about where that fallback is automatic (EVM chains) and where it is manual (Bitcoin, Solana, Tron, and other non-EVM chains). Data current as of 2026-06-26.</p>
The 30-Second Answer: The Refund Goes to Your Source Address — So Never Swap From an Address You Don't Control
If your swap failed and you want one sentence: the refund returns to the address your deposit came from, automatically, and there is nothing for you to configure. On UpSwap the upstream vendor (NEAR Intents / Relay) traces the deposit transaction and sends the returned amount back to that same source address — the industry calls this 原路退回, refund-to-source (model confirmed 2026-06-11).
This is good news and a warning at the same time. It is good news because you do not have to trust UpSwap to hold your money or to correctly type a refund address into a form — the refund is bound to on-chain reality, not to a support agent's input. It is a warning because the mechanism is only as safe as the wallet you sent from. If you started the swap from an address you do not fully control, the refund will faithfully travel to a place you cannot reach.
The headline rule, stated up front: never start a cross-chain swap directly from a centralized-exchange withdrawal or a single-use deposit address. Withdraw to a self-custody wallet you control first, then swap from there. Everything else in this guide is a footnote to this one sentence.
Why does a swap fail and trigger a refund at all? Most commonly, no solver fills your intent at the quoted price before it expires, so the deposit is returned — the mechanism is covered in our intent-based swap explainer. For the full map of where funds physically sit during a stalled or failed order, see Guide #1 on custody and fund location. This guide zooms in on the single downstream question those two raise: which address does the money come back to, and what makes that address a dead end.
How the Refund Actually Flows: Two Paths, Primary and Fallback
UpSwap's refund has two paths, and knowing which one you are on tells you whether to wait or to open Telegram.
Path 1 — vendor auto-refund-to-source (primary). The upstream vendor traces your deposit transaction and returns the funds to the source address that signed it. This is the default and covers the large majority of failed swaps. You do nothing; the money reappears at the wallet you sent from once the vendor's refund cycle completes. Timing depends on the source chain's confirmation behavior — see Guide #3 on stuck and pending swaps for per-chain expectations.
Path 2 — distributor address + manual Telegram (fallback). If auto-refund-to-source is not possible, the vendor sends the funds to the UpSwap distributor refund address (the refundTo field in the routing call). UpSwap then contacts you via Telegram at @upswapservice using your orderId to return the funds manually. This path is the safety net for exactly the situations this guide is about — where the source address cannot cleanly receive an inbound transfer.
The critical, honest detail: the fallback is not uniform across chains. The 14 EVM chains covered (ethereum, arbitrum, base, optimism, polygon, bnb, avalanche, linea, scroll, blast, mode, hyperevm, hyperliquid, berachain) share one distributor EVM wallet (EVM_FEE_RECIPIENT, the same controllable address cross-chain), so a stranded EVM refund lands somewhere UpSwap can actually retrieve and forward. Non-EVM chains (Bitcoin, Solana, Tron, Sui, NEAR, Cardano, Stellar, XRP) currently have no controllable distributor wallet — they use a placeholder, and recovery relies entirely on manual Telegram coordination. This is verified against UpSwap's internal refund-address.ts logic dated 2026-06-11. We state it plainly because it changes what you should do before swapping from a non-EVM chain.
Why the Source Address Decides Everything in a Deposit-Address Model
Cross-chain swaps that route through NEAR Intents / Relay use a deposit-address model: you send your funds to a one-time deposit address the vendor generates, and the vendor delivers the output to your destination. There is no account, no login-bound balance, no user profile the refund can look up. The only identity the system has for you is the on-chain fact of which address funded the deposit.
So when a refund is issued, the vendor does the one thing it can: it reads the deposit transaction and sends the money back to the from address of that transaction. It has no awareness of who you are, whether that address is a personal wallet or an exchange's omnibus, whether the contract at that address exists on this chain, or whether the address will credit an unexpected inbound. It just sends. This is why the source address is not a detail — it is the refund destination, full stop.
Contrast this with how some competitors handle it, because it clarifies UpSwap's design. ChangeNOW lets you optionally specify a refund address at exchange creation, and a refund can then go to the initial source address or that pre-specified address — but never to a new address supplied afterward (per ChangeNOW terms). SimpleSwap treats the refund address as an optional field requested per trading pair, and in some cases reserves the right to offer the original address as the only option (per SimpleSwap terms). UpSwap removes the field entirely: users do not set a refund address; it always goes to source. That is simpler and eliminates the class of errors where a user fat-fingers a refund address — but it puts the full weight on choosing a safe source wallet, which the next section is about.
| Service | User sets refund address? | Refund destination |
|---|---|---|
| UpSwap | No | Your source address (traced from deposit TX); distributor + Telegram as fallback |
| ChangeNOW | Optional | Initial source address OR the refund address set at creation (only) |
| SimpleSwap | Optional | Original source address OR optional refund address |
See our UpSwap vs ChangeNOW comparison for how these refund models differ alongside fees and coverage. Data current as of 2026-06-26.
The 4 Source-Wallet Types That Can't Receive a Refund
These are the four source wallets where auto-refund-to-source either fails to credit or lands somewhere unspendable — one concrete failure mechanism each.
1. CEX withdrawal address / exchange hot wallet. When you "swap from Binance," the deposit transaction originates from the exchange's shared hot wallet, not from an address you control. An auto-refund traces that deposit and sends the returned amount back to the hot wallet. Exchanges do not auto-credit an unexpected inbound tied to your account — the funds land in an omnibus wallet with no automatic link to your balance. You must open a manual recovery ticket, reviewed case-by-case, which may carry a fee, can take days to weeks, and is explicitly not guaranteed. Binance states recovery "is not guaranteed" and processes about 4,000 recovery requests per month; a typical unlisted-token-on-supported-network case carries a 20 USDT fee and up to 30 working days (Binance blog). If you have already hit this, our wrong-network recovery matrix walks the per-exchange ticket process end to end.
2. Single-use / rotated exchange deposit address. Some exchange deposit addresses are ephemeral or rotated per deposit. If a refund arrives after such an address has been de-provisioned or is no longer mapped to your account, the inbound may not credit and again requires a manual ticket. The refund tracing sends funds to whatever the deposit source was, with no awareness of that address's lifecycle. (This is a reasoned inference from published deposit-recovery behavior rather than a directly quoted refund policy — flagged honestly.)
3. Gnosis Safe / multisig not deployed on the refund chain. A Safe is a smart contract deployed per-chain via a proxy factory. The address is deterministic (CREATE2), so it can be identical across chains, but the contract only exists where it has actually been deployed. If a refund lands on a chain where your Safe is not deployed, the address exists as a target but nothing controls it, and funds can be lost. Worse, older CREATE-based factories or attacker-triggered deployments can let the same address be deployed with different owners on another chain — demonstrated in the Optimism/Wintermute incident where an attacker controlled ~20M OP tokens meant for a multisig. Receiving assets requires no signature, so the sender gets no error: the loss is silent (Safe docs + incident writeup).
4. Smart-contract wallet / ERC-4337 account that is counterfactual. Account-abstraction wallets often use counterfactual addresses computed via CREATE2. Such an address can receive a plain token transfer before the account is deployed — but the balance sits at an undeployed contract, and the owner cannot move it until the account is deployed on that specific chain (deployment normally triggers on the first outbound UserOperation). Cross-chain, the same counterfactual address is only identical if the same factory, salt, and init parameters are used; a different factory, salt, or init can yield either the same address controlled by someone else or a different address entirely. If the refund chain is one where your smart account is not deployed or is deployed with different owners, funds are received but unspendable. For per-chain address anatomy and verification, see Guide #6 on pre-send verification (EIP-4337 + ERC-4337 docs).
| Source wallet | Why the refund fails | Fix |
|---|---|---|
| CEX withdrawal / hot wallet | Refund traces to exchange omnibus; no auto-credit to your account | Withdraw to your own EOA first, then swap |
| Single-use deposit address | Address rotated/de-provisioned; inbound may not credit | Never use an exchange deposit address as a source |
| Gnosis Safe (undeployed on chain) | Contract doesn't exist there; silent loss or look-alike owner | Confirm Safe deployed + you own it on the refund chain |
| ERC-4337 counterfactual account | Receives but can't spend until deployed on that chain | Prefer a plain EOA; or confirm deployment on refund chain |
Data current as of 2026-06-26.
The #1 Rule: Never Swap Directly From a CEX Withdrawal
Here is the single most useful sentence in this guide: never start a cross-chain swap directly from a centralized-exchange withdrawal. Not because the swap won't work when it succeeds — it usually will — but because of what happens the one time it does fail and refund. The refund goes back to the source, and the source was Binance's, OKX's, or Coinbase's hot wallet, not you. Whether the extra on-chain hop is worth it in fees and time is exactly the tradeoff our Binance-withdrawal vs cross-chain-swap break-even matrix lays out.
Worked example. You want to swap BTC to USDT. You go to your exchange, hit withdraw BTC, and — to save one step — you paste the swap's deposit address as the withdrawal destination directly. The withdrawal executes from the exchange's shared BTC hot wallet. The swap fails (no solver fills at the quote). The vendor traces the deposit transaction and refunds the BTC to the address it came from: the exchange hot wallet. That inbound is now sitting in an omnibus wallet with no automatic tie to your account. You open a recovery ticket. Coinbase, for one, states it "does not have the ability to recover funds" outside a narrow supported-network allowlist, and where it does offer discretionary recovery it charges an additional 5% fee on amounts over $100 with no guarantee (Coinbase help; this figure is from a search snippet, so re-check the live page before relying on the exact number).
The correct sequence: withdraw BTC from the exchange to your own self-custody wallet (a wallet whose keys you hold), wait for it to arrive, then start the swap from that wallet. Now if the swap fails, the refund traces back to your self-custody address — which you control and which will simply show the returned balance. One extra on-chain hop buys you a refund path that does not depend on a support agent's discretion.
If you have already swapped from a CEX withdrawal and it failed, the recovery path is the exchange's manual ticket process — which is the same territory as recovering a wrong-network deposit. Our wrong-network recovery matrix walks through the per-exchange ticket process, fees, and realistic timelines so you know what you're facing.
This rule applies to every pair, not just Bitcoin. The same trap sits behind ETH to USDT, SOL to USDT, and BTC to ETH: whatever chain you fund from, fund it from a wallet you control.
EVM vs Non-EVM: The Fallback Difference That Changes Your Prep
When auto-refund-to-source can't complete, UpSwap's safety net behaves differently depending on your source chain's family — and this is a real limitation worth stating plainly rather than papering over. Across UpSwap's coverage of 24+ chains, 111+ tokens, and 166 pairs, this EVM/non-EVM split is the single most important thing to know before you fund a swap.
EVM chains have an automatic distributor-wallet fallback. All 14 covered EVM chains share one controllable distributor wallet (EVM_FEE_RECIPIENT, the same address cross-chain). If a refund can't return to your source, it lands in that wallet, which UpSwap controls, and the team coordinates the return to you. Because the address is real and controllable, the stranded funds are recoverable by design. This covers ethereum, arbitrum, base, optimism, polygon, bnb, avalanche, and the rest of the EVM set (verified against internal refund-address.ts, 2026-06-11).
Non-EVM chains rely on manual Telegram coordination. For Bitcoin, Solana, Tron, Sui, NEAR, Cardano, Stellar, and XRP, there is currently no controllable distributor wallet — the code uses a placeholder. If a refund can't return to source on one of these chains, recovery is a manual process. This is a genuine gap, and we name it so you can prepare rather than be surprised.
If you swapped from a non-EVM chain and it failed: contact @upswapservice on Telegram and have two things ready — your orderId (from the swap confirmation) and your source txHash (the deposit transaction you sent). Those two identifiers let the team trace the deposit and coordinate the return. The stronger move is prevention: for non-EVM sources especially, make sure you are swapping from a personal wallet whose keys you hold, because auto-refund-to-source is the path you actually want to succeed on.
The practical takeaway: EVM source + controlled wallet = refund is either automatic-to-source or automatically caught by the distributor. Non-EVM source = auto-refund-to-source is your reliable path and the manual fallback is a slower human process. Choose your source wallet accordingly, and this matters for USDT TRC20 to ERC20 and USDT ERC20 to TRC20 where Tron is non-EVM.
The 5-Item Pre-Swap Source-Address Checklist
Run these five checks before you send the deposit. They take under a minute and they remove the most common cause of lost-refund tickets in this guide. One honest caveat: even a controlled source wallet is best-effort — if you fund from a non-EVM chain, the manual fallback is still a human process — so these checks maximize your odds rather than guaranteeing recovery.
- Do I fully control this address? You must hold the private key (for an EOA) or be a confirmed signer with control (for a smart account) on the exact chain you're sending from. If the answer is "it's my Binance withdrawal," stop — that's a no.
- Can this address receive an inbound transfer of the source asset? A refund is an ordinary inbound transfer. A plain EOA always can. An exchange address may not credit an unexpected one. A counterfactual smart account can receive but not spend until deployed.
- Is it a plain EOA — or, if a smart account, is it deployed on the refund chain? When in doubt, prefer a plain EOA (MetaMask, Rabby, a hardware wallet's account) as the swap source. Smart accounts are fine only when you've confirmed deployment and ownership on that chain.
- Is it definitely NOT a CEX-generated address? Not a withdrawal-origin hot wallet, not a single-use deposit address. If the address came from an exchange in any form, it fails this check.
- For a Safe or multisig: is it deployed with your owners on the refund chain? Confirm the Safe exists on that exact chain and you control the owners. Safe's own guidance: make a test transaction first to confirm control before relying on it.
If all five pass, auto-refund-to-source should return your money to a wallet you can reach if the swap fails, and you never touch the fallback path. If any check fails, fix the source wallet before swapping — do not proceed and hope. For per-chain address-verification anatomy (and how to avoid address-poisoning traps while you're at it), see Guide #6 on pre-send verification.
Frequently asked questions
My swap failed — where will the refund show up?
At your source address: the exact address your deposit transaction was sent from. On UpSwap the upstream vendor (NEAR Intents / Relay) traces the deposit TX and auto-refunds to that address (原路退回) — this is the primary path and you do not configure anything. If auto-refund-to-source can't complete, the funds go to UpSwap's distributor refund address and the team returns them manually via Telegram @upswapservice using your orderId. Check the address you sent from first; that's where a clean refund lands. Model confirmed 2026-06-11.
I swapped from my Binance withdrawal and it failed. Where's my refund now?
Almost certainly back in Binance's shared hot wallet — the address your withdrawal originated from — with no automatic link to your account balance. Exchanges do not auto-credit an unexpected inbound. Your path is Binance's self-service deposit recovery tool, and if that's ineligible, a manual support ticket reviewed case-by-case. Binance states recovery is not guaranteed, some case types carry a 20 USDT fee, and processing can take up to 30 working days. See our wrong-network recovery matrix for the full ticket process. The lesson for next time: withdraw to a self-custody wallet first, then swap from there.
Do I set a refund address on UpSwap?
No. Unlike some competitors, UpSwap does not have a refund-address field for you to fill in. The refund goes to your source address automatically, traced from your deposit transaction. This eliminates the risk of typing a wrong refund address, but it means the safety of your refund depends entirely on the wallet you swapped from being one you control. ChangeNOW and SimpleSwap, by contrast, offer an optional refund-address field — but even there the refund can only go to the source address or the pre-specified one, never a new address supplied later.
Can a Gnosis Safe receive my refund?
Only if the same Safe is deployed AND you control the owners on the exact chain the refund lands on. A Safe is a per-chain smart contract; its address can be identical across chains via CREATE2, but the contract only exists where it's actually been deployed. If a refund lands on a chain where your Safe isn't deployed, the funds can be stranded or lost — and receiving requires no signature, so the sender gets no error (silent loss). In the Optimism/Wintermute incident, a same-looking Safe address was deployed with different owners on another chain. Safe's guidance: confirm deployment and control with a test transaction before relying on it.
The refund went to an address I don't control — what now?
It depends on what that address is. If it's a CEX hot wallet or deposit address, your only path is that exchange's manual recovery ticket — reviewed case-by-case, possibly with a fee, and not guaranteed (see our wrong-network recovery matrix). If it's a Safe or smart account on a chain where it isn't deployed with your owners, recovery may not be possible at all. If your source was an EVM chain and the refund hit UpSwap's distributor fallback, contact @upswapservice on Telegram with your orderId to arrange the manual return. Have your source txHash ready in every case.
How long does the auto-refund-to-source take?
It depends on the source chain's confirmation behavior and the vendor's refund cycle, not on a fixed UpSwap timer. Bitcoin refunds wait on block confirmations (roughly 10-20 minutes for 1-2 blocks); fast EVM chains and Solana settle much quicker once the refund is issued. The variable part is the vendor detecting the failed fill and initiating the return. For per-chain timing expectations and how to tell 'still processing' from 'actually stuck,' see Guide #3 on stuck and pending swaps and Guide #1 on where funds sit during a stall.
What if I swapped from a non-EVM chain and it failed?
The primary path — auto-refund-to-source — still applies and is what you want to succeed: the funds return to your source address on Bitcoin, Solana, Tron, Sui, NEAR, Cardano, Stellar, or XRP. The honest limitation is the fallback: non-EVM chains currently have no controllable distributor wallet on UpSwap (they use a placeholder), so if auto-refund-to-source can't complete, recovery is a manual Telegram process. Contact @upswapservice with your orderId and your source txHash. Prevention matters most here: swap from a personal wallet whose keys you hold (verified against internal refund-address.ts, 2026-06-11).
Is a refund on UpSwap ever sent to a wrapped or different token?
No. A refund-to-source returns the same asset you deposited, to the same address you sent it from — it is the deposit transaction reversed, not a new swap. If you deposited native BTC, you get native BTC back; if you deposited USDT on Tron, you get USDT on Tron back. The vendor is tracing and returning your original deposit, not converting it. This is different from the swap output itself, which is the token you were swapping into. If a swap fails, nothing is wrapped or converted — the refund is your original asset on your original chain.
Swap routes referenced in this guide
Related comparisons
Other guides
- Non-Custodial vs Custodial: Where Funds Go If Swap Fails →
- Further reading: USDT ERC20 vs TRC20 vs BEP20 vs SPL: which network to send, when (2026 fee snapshot + 5-use-case decision tree) →
- Related: My cross-chain swap is stuck — diagnose by symptom and source chain (BTC / ETH / SOL / TRC20 5-minute decision tree) →
- The 5-layer fee stack of every cross-chain swap (3 routes, 2026-06-26) →
- Further reading: Binance withdrawal vs cross-chain swap: the real break-even by size, chain and asset (sampled 2026-06) →
- Related: Address poisoning and pre-send verification: per-chain anatomy + the 5-second check against the 2026 attack surge →
Ready to swap?
Pick your tokens and swap directly — non-custodial, no KYC, all-in fixed quote.