How to verify your cross-chain swap on-chain: source tx to deposit address to destination tx
A cross-chain swap is two transactions on two chains, both already recorded on public ledgers. Paste your source tx hash into the source chain's explorer, confirm the deposit landed, then paste your destination address into the destination chain's explorer to find the payout. Read six fields on any tx: status, confirmations, from/to, native value, token transfers, and fee. The stablecoin trap: USDT shows Value 0 native because it is a Token Transfer, not a native move, and the real amount is one line lower. Verify all of this yourself across Etherscan, TronScan, Solscan and mempool.space before you ever message Telegram @upswapservice, so you arrive with a tx hash and orderId instead of a shrug.
Key takeaways
- ·A cross-chain swap is two independent on-chain transactions with no shared hash. You link the legs yourself by address, amount and timing, source tx to deposit address to destination tx.
- ·Every explorer shows the same six fields under different labels: status, confirmations, from/to, native value, token transfers, and fee. Learn them once, read any chain.
- ·A USDT transfer shows Value = 0 native (0 ETH / 0 TRX / 0 SOL). That is normal, not a failure. The real amount lives in the Token Transfers section, because a token move is a smart-contract call.
- ·Explorer says Success but your wallet is empty is almost always RPC display lag, not a lost payment. If the chain shows the credit to your address with final confirmations, the funds are yours.
- ·A block explorer is read-only and never asks for a seed phrase or wallet signature. Check the URL character by character (etherscan.io, tronscan.org, solscan.io, mempool.space) and bookmark the real one, because Etherscan clones have drained hundreds of millions.
A cross-chain swap is two transactions on two chains, and both are already recorded on public ledgers you can read for free. This guide teaches you to trace a swap yourself, source tx to deposit address to destination tx, across Etherscan, TronScan, Solscan and mempool.space, so you know where your money is before you ever contact support at Telegram @upswapservice.
The 30-second trace to run before you message support
A cross-chain swap is not one transaction. It is two separate on-chain transactions on two different chains, tied together off-chain by the solver that fills your order. That means there is no single "swap status" to look up, but it also means the chain has already recorded exactly where your money is. You do not need to wait for support to find out; you need three lookups.
Run these three steps, in order, before you open Telegram:
- Find your source tx. Paste your outgoing transaction hash into the source chain's explorer. Confirm
Status = Successand that the amount and destination match the one-time deposit address the swap quoted you. - Confirm the deposit landed. Open that deposit address on the same explorer. Your incoming transfer should show enough confirmations to be final, for example ~19 blocks (~57s) on Tron, or 1–2 confirmations (~10–20 min) on Bitcoin. This proves the solver has your funds.
- Find the destination tx. Paste your receiving address into the destination chain's explorer and look for the newest incoming transfer from the solver's payout address, matching the quoted output amount.
If all three check out, your swap is done and any "missing funds" is a wallet display problem, not a chain problem (see the "Success but empty wallet" section below). If step 3 is blank after the source leg is final, that is the point where evidence, not a support ticket, tells you what happened next. This works the same across UpSwap's 24+ chains, 111+ tokens, 166 chain-token combinations, because every leg lands on a public ledger you can read. Counts sampled 2026-06-26.
You will need three things: your source tx hash, the deposit address from your swap receipt, and your destination address. UpSwap shows all three (plus your orderId) on the order page, so copy them before you start. If you do end up needing a human, message Telegram @upswapservice with those in hand.
The 6 fields to read on any transaction
Every explorer — Etherscan, BscScan, TronScan, Solscan, mempool.space — shows the same six facts under different labels. Learn these once and you can read any chain. Sampled from official explorer docs on 2026-06-26:
| Field | What it tells you | Where to read it |
|---|---|---|
| Status | Whether the tx executed. Success = included and executed; Pending = broadcast, not yet in a block; Failed/Reverted = in a block but execution failed (on EVM, gas is still charged); Dropped = never mined. | Top of the Transaction Details page. Etherscan/BscScan call it "Status"; TronScan "Result"; Solscan "Result"; mempool.space shows unconfirmed vs confirmed. |
| Confirmations | How many blocks were mined on top of yours. Each block makes reversal exponentially less likely. 0 = still unconfirmed. | The "Block" row on EVM (Block N (X Block Confirmations)); commitment level on Solscan; confirmation count on mempool.space. |
| From / To | From = sender. To = recipient, but for a token transfer, "To" is the token contract, and your real recipient is inside Token Transfers. | The "From" and "To" / "Interacted With" rows. |
| Value | The amount of the native coin (ETH, BNB, TRX, SOL, BTC) moved. For a token-only transfer this is typically 0 in the native coin, which is normal, not an error. | "Value" on EVM; TRX amount on TronScan; native SOL under Main Actions; BTC output amounts on mempool.space. |
| Token Transfers | The ERC-20/BEP-20/TRC-20/SPL Transfer events with real from, to, token, and amount. This is where your USDT/USDC amount actually lives. | "ERC-20 Tokens Transferred" (Etherscan), token logs (BscScan), "TRC20 Transfer" (TronScan), "SPL Transfer" under Main Actions (Solscan). Bitcoin has no equivalent. |
| Fee / gas | The cost to include the tx. EVM: gas used × gas price. Tron: Energy + Bandwidth. Solana: "Fee" in SOL. Bitcoin: miner fee in sats. | "Transaction Fee" / "Gas" rows (EVM), Energy/Bandwidth (TronScan), "Fee" (Solscan), fee + fee rate (mempool.space). |
The two fields that trip up almost everyone are Value and Token Transfers, because a stablecoin swap shows Value: 0 and the money is one line lower. That trap gets its own section next. For the deeper mechanics of how each chain reaches finality, cross-reference Guide #3 on stuck and pending swaps rather than re-deriving it here.
The literacy trap: USDT is a Token Transfer, not native Value
Here is the single most common panic. You open your USDT transaction on Etherscan, the top of the page says Value: 0 ETH, and you conclude the money vanished. It did not. 0 native is exactly what a pure token transfer looks like.
Why: an ERC-20 token like USDT is a smart contract that keeps its own internal balance ledger. When you send USDT you are not moving ETH, you are calling the token contract's transfer() function. No native coin moves, so the top-level "Value" is 0 ETH. What changes is the ledger inside the contract, recorded as a Transfer event with three fields: from (sender), to (real recipient), and amount. Your 1,000 USDT is sitting under "ERC-20 Tokens Transferred," one line below the Value field (sampled from Etherscan docs, 2026-06-26).
Two more details that confuse beginners:
- The top-level "To" is the token contract, not your recipient. On Etherscan a USDT transfer shows "To" / "Interacted With" as the USDT contract address (
0xdac1...ec7). Your actual recipient is inside the Token Transfers row. Do not verify a stablecoin transfer by the top-level To; read the Token Transfers "to." - Raw amounts need decimal scaling. USDT uses 6 decimals, so a raw event value of
198000000000means 198,000 USDT (divide by 10^6). Most explorers display the human-readable amount for you, but if you ever see a giant integer, that is why.
TRC-20 (Tron) and SPL (Solana) behave the same way conceptually. On TronScan a USDT transfer often shows 0 TRX in the amount field because you are calling the token's contract; the real USDT sits in the "TRC20 Transfer" section. On Solscan the SOL movement and the "SPL Transfer" amount are listed separately under Main Actions.
The verification rule: to confirm a stablecoin swap, ignore the native Value. Read the Token Transfers row and confirm three things — the token symbol (USDT/USDC), the "to" address is yours, and the amount matches your quote. For picking the right USDT network in the first place, see Guide #2 on choosing between ERC-20, TRC-20, BEP-20, and SPL.
Per-chain walkthrough: Etherscan, TronScan, Solscan, mempool.space
Same six fields, four different layouts and quirks. Always open the canonical explorer for the chain (real URLs below, verified 2026-06-26). Bookmark them.
Etherscan — Ethereum (also BscScan for BSC) · etherscan.io / bscscan.com
- Look up a tx: paste the 66-character hash (
0x…) into the top search bar to open the Transaction Details page. - Status: the "Status" field near the top (Success / Pending / Failed). Remember: a Failed EVM tx still charges gas.
- Confirmations: the "Block" row,
Block N (X Block Confirmations). Ethereum blocks are ~12s; a single-slot soft confirmation lands in ~12–13s, while full finality (2 epochs) takes ~12.8 min. BSC is ~3s, with ~15 confirmations treated as final. - Quirk: a token transfer is a contract call, so "To" is the token contract and Value is 0 ETH. Read amounts under "ERC-20 Tokens Transferred." BscScan is the same team and same layout for BEP-20.
TronScan — Tron / TRC-20 USDT · tronscan.org
- Look up a tx: paste the hash into the search bar to open the transaction detail (sender, receiver, token, amount, block, confirmation).
- Status: the "Result" field shows
SUCCESSonce the tx executes; separately, the tx becomes CONFIRMED/solidified (irreversible) once ~19 blocks build on top of it. Execution result and finality are two different things. - Confirmations: ~3s blocks; solidified (irreversible) finality at ~19 blocks (~57s). Most exchanges want ~20 confirmations before crediting a TRC-20 USDT deposit.
- Quirk: a USDT transfer can show
0 TRXin the amount field, so read the "TRC20 Transfer" section. TronScan also shows resource use: a TRC-20 transfer burns Energy (from staked TRX) while a plain TRX transfer uses Bandwidth (a free daily allowance). Those figures don't exist on EVM chains.
Solscan — Solana · solscan.io (alt: explorer.solana.com)
- Look up a tx: paste the transaction signature (a base58 string, Solana's tx id) into the search bar.
- Status: the "Result" field (Success/Failure) plus a commitment level.
Finalized (Max confirmations)is the strongest: it means the block has been voted on and confirmed by a supermajority of the network (~32 slots deep), which under normal conditions is ~12–13s of elapsed time. - Confirmations: shown as a commitment level, not a simple integer count. Slots are ~400ms.
- Quirk: a Solana tx is built from Instructions and Inner Instructions, and one tx can bundle many transfers. Read "Main Actions", where native SOL is listed separately from "SPL Transfer" amounts for USDC/USDT. Note that SPL tokens live in per-token "token accounts" owned by your wallet.
mempool.space — Bitcoin · mempool.space (alt: blockstream.info)
- Look up a tx: paste the txid into the top-right search bar to see mempool status and confirmations.
- Status: "Unconfirmed" (still in the mempool, 0 confirmations) vs included in a block.
- Confirmations: blocks mined on top of yours. ~10 min per block; 1 confirmation ≈ 10 min, and 6 confirmations (~60 min) is the classic "settled" standard.
- Quirk: Bitcoin is UTXO-based and has no token layer, so every amount is native BTC, shown per output. A tx consumes inputs and creates outputs; "change" returns to you. Don't look for a Token Transfers section; there isn't one.
Tracing a full cross-chain swap, end to end
This is the core skill the other sections build toward. Because a swap is two independent transactions with no shared hash between the two legs, you link them yourself by address, amount, and timing. Walk it in three moves.
Move 1 — verify the source leg (your outgoing tx). Take, say, a USDT ETH→Tron swap. Paste your Ethereum tx hash into etherscan.io. Confirm Status = Success, then read the "ERC-20 Tokens Transferred" row: token = USDT, amount = what you sent, and "To" = the one-time deposit address your swap quoted. If any of those three don't match, stop, because you sent to the wrong place, and that is a Guide #7 wrong-network / wrong-address recovery situation, not a normal swap.
Move 2 — confirm the deposit address received it. Open that deposit address on the same source explorer and confirm your incoming transfer appears with enough confirmations to be final for that chain (from the counts above, e.g. ~19 blocks on Tron, ~15 on BSC, 1–2 on Bitcoin). Once it's final, the solver has your funds and owes you the destination leg. This is the moment the swap becomes the solver's responsibility.
Move 3 — find the destination leg (your incoming tx). There is no hash to paste here; you search for it. Paste your destination address into the destination chain's explorer, open the token-transfers tab (ERC20/BEP20/TRC20/SPL), and sort by newest. The credit you want is the row where "To" = your address and the token + amount match the quote, coming from the solver's payout address. Confirm Status = Success and sufficient confirmations.
| Leg | Explorer you open | What you paste | What proves it |
|---|---|---|---|
| 1. Source (you → deposit) | Source chain explorer | Your source tx hash | Success + Token Transfer "to" = quoted deposit address |
| 2. Deposit landed | Source chain explorer | The deposit address | Incoming transfer, final confirmations |
| 3. Destination (solver → you) | Destination chain explorer | Your destination address | Newest incoming transfer, token + amount match quote |
That's the entire lifecycle, visible on public ledgers, for any of UpSwap's 166 chain-token combinations. To understand why the two legs are decoupled like this, the solver/intent model rather than a locked bridge, see Guide #8 on intent-based swaps vs bridges. Practicing this trace once on a small USDT ERC-20 to TRC-20, ETH to USDT, or BTC to USDT swap makes every future swap legible; the Bitcoin leg on mempool.space and the payout leg on a token explorer teach both models at once.
Explorer says "Success" but your wallet shows nothing
You verified the destination tx. Status is Success, the tx is final, "To" is your address, the amount is right, and your wallet still shows the old balance. In almost every case this is a display lag, not a missing payment. The chain is the source of truth; your wallet is just a viewer reading it through an RPC node.
Here is how to tell display lag from a genuinely-not-arrived situation:
- Explorer shows Success + your address as recipient + final confirmations → the money is on-chain and yours. This is RPC/display lag. Fixes: pull to refresh, switch RPC endpoint in wallet settings, or re-add the token contract (a wallet often won't show a token it doesn't know about, very common with a first-time USDT/USDC receipt on a new chain). SPL tokens on Solana in particular need the token account to be recognized.
- Explorer shows no incoming tx to your address at all → the destination leg hasn't been paid yet. Recheck the source leg is final; if it is and the destination is still blank well past the expected time, that is the case for Telegram support with your source tx hash in hand.
- Explorer shows Failed on the destination → the payout reverted; funds did not leave the solver. This is a fulfillment issue, not a display issue.
The distinction that matters: "my wallet doesn't show it" and "the chain doesn't show it" are completely different problems. Always check the chain first. If the chain shows the credit, the funds are non-custodially yours regardless of what your wallet UI says; see Guide #1 on where funds actually live when a swap fails. If timing is the question — "is it just slow?" — the per-chain finality windows in Guide #3 on stuck and pending swaps tell you when "slow" becomes "stuck."
The honest limit: some cases still need a human even after you've verified on-chain. If a non-EVM leg needs a manual refund fallback, or the destination genuinely never paid, the chain has told you what happened but not who fixes it. That's when you open Telegram @upswapservice (or email support@upswap.io), but now you arrive with your source tx hash, your orderId, and a diagnosis, not a shrug.
Verify a refund on-chain, and don't get phished by a fake explorer
Verifying a refund. When a swap fails or the quote expires, you don't get a destination payout; you get a return on the source chain. On the source explorer, look for a transaction from the deposit/solver address back to your original source address, with the token and amount roughly equal to what you sent (minus network fees). Verify it exactly like any other transfer: your address as the Token Transfers "to," correct token, sane amount. Whether the refund lands at the exact address you sent from depends on your wallet type; Guide #9 on where refunds go covers the source-address behavior in detail. If you did a non-EVM swap and no refund appears after the source leg is confirmed final, that's a manual-fallback case: message Telegram @upswapservice with your orderId and source tx hash.
Don't get phished by a fake explorer. This is a real and expensive threat. Scammers clone Etherscan's interface and pair it with fake "breaking news" pages (e.g. a bogus "approvals exploit") to funnel users into connecting a wallet to a drainer contract. Etherscan-linked phishing and fake ads drove hundreds of millions in losses — roughly $300M from 324K victims in 2023 and ~$104M in early 2024 — and crypto phishing overall spiked ~215% in August 2024 (cited figures sampled 2026-06-26). Protect yourself:
- Check the URL character by character. The only canonical domains are
etherscan.io,bscscan.com,tronscan.org,solscan.io/explorer.solana.com, andmempool.space/blockstream.info. Watch for typosquats likeethersscanoretherscan.io.xyz. - Bookmark the real explorer and open only from the bookmark, never from ads, DMs, search-ad links, or a link pasted by anyone claiming to be "support."
- A block explorer is read-only. Looking up a tx or address needs nothing but the hash or address. A real explorer never asks for your seed phrase, private key, or a wallet signature for a basic lookup. If any "explorer" demands a wallet connect or a signature to "verify" or "revoke," it is a drainer, so close the tab.
Never type a seed phrase or private key into anything calling itself an explorer. There is no legitimate reason to. For the full anti-phishing and pre-send verification playbook across chains, see Guide #6 on address poisoning and phishing defense.
Frequently asked questions
My swap's Value shows 0 — did it fail?
Almost certainly not. A USDT transfer shows Value = 0 native (0 ETH / 0 TRX / 0 SOL) because sending a token is a smart-contract call, so no native coin moves. Your real amount sits in the "Token Transfers" section one line below Value. Confirm the token symbol, that "to" is your address, and the amount; if Status also reads Success, the transfer worked.
Where do I find the destination transaction?
There is no shared hash between the two legs, so you don't paste a hash. You paste your destination address into the destination chain's explorer, open the token-transfers tab (ERC20/BEP20/TRC20/SPL), and sort by newest. The credit you want is the row where "To" equals your address and the token and amount match your quote, coming from the solver's payout address. Match by address plus amount plus timing.
How many confirmations until my swap is final?
It depends on the chain (sampled 2026-06-26): Bitcoin 1–2 confirmations for light use (~10–20 min), up to 6 (~60 min) for the classic settled standard; Ethereum ~12–13s single-slot soft confirmation, full finality ~12.8 min; BSC ~15 confirmations; Tron ~19 blocks (~57s) to solidified finality; Solana "Finalized (Max confirmations)" at ~12–13s. For the full per-chain timing and when "slow" becomes "stuck," see <a href="/guides/swap-stuck-pending-troubleshoot-by-chain">Guide #3 on stuck and pending swaps</a>.
The explorer says Success but my wallet is empty — what now?
If the explorer shows Success, your address as recipient, and final confirmations, your money is on-chain and yours; this is a wallet display lag, not a lost payment. Refresh, switch your wallet's RPC endpoint, or re-add the token contract (wallets often hide tokens they don't yet recognize, common on a first receipt). If instead there's no incoming tx to your address at all, the destination leg hasn't paid, which is the time to message Telegram @upswapservice with your source tx hash and orderId. See <a href="/guides/non-custodial-vs-custodial-where-funds-go-when-swap-fails">Guide #1 on where funds actually live</a>.
What's the difference between a Token Transfer and a normal transfer?
A native transfer moves the chain's own coin (ETH, BNB, TRX, SOL, BTC) and shows in the Value field. A Token Transfer moves a contract asset like USDT/USDC: it's a call to the token's smart contract, which keeps its own ledger, so native Value is 0 and the real amount appears as a Transfer event under Token Transfers. Bitcoin has only native transfers, no token layer. For picking the right USDT network, see <a href="/guides/usdt-network-decision-guide-erc20-trc20-bep20-spl">Guide #2</a>.
How do I know I'm on the real Etherscan and not a fake?
Check the URL character by character. The only canonical explorers are etherscan.io, bscscan.com, tronscan.org, solscan.io / explorer.solana.com, and mempool.space / blockstream.info. Typosquats like ethersscan or etherscan.io.xyz are traps. Bookmark the real site and open only from the bookmark, never from ads, DMs, or a link pasted by "support." And remember: a real explorer is read-only and never asks for your seed phrase, private key, or a wallet signature. See <a href="/guides/address-poisoning-and-pre-send-verification-per-chain-anatomy">Guide #6 on phishing defense</a>.
Can I see the refund on-chain if my swap failed?
Yes. A refund is not a destination payout; it's a return on the source chain, a transfer from the deposit/solver address back to your original source address, token and amount roughly equal to what you sent minus fees. Open the source explorer, find your address as the Token Transfers "to," and confirm the amount. Whether it lands at the exact address you sent from depends on your wallet type, which <a href="/guides/where-refunds-go-source-address-wallet-types">Guide #9</a> covers. For a non-EVM swap with no refund showing after the source leg is final, message Telegram @upswapservice with your orderId for a manual fallback.
Do I need an account to use a block explorer?
No. Etherscan, BscScan, TronScan, Solscan, and mempool.space are free, read-only, public tools. Looking up a transaction or address requires nothing but the hash or address, with no login, no account registration, no wallet connection, and no signature. Any "explorer" that demands you sign in with a wallet or enter a seed phrase to view a transaction is a phishing site; close the tab.
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.