Why One Omnichain Swap Can Have Two Receipts

Why One Omnichain Swap Can Have Two Receipts


One cross-chain swap can leave separate records because each blockchain writes its own receipt. For an omnichain swap, the source chain records what left, while the destination chain records what arrived. To reconcile your wallet histories, match both records by chain, asset, amount, and transaction or message ID.

Why do wallet histories show different records?

Wallet histories show activity on one blockchain at a time, so a transfer between chains can appear as two separate transactions. A transaction hash is the unique code used to find one transaction on its own chain; the source and destination hashes will usually differ.

A receipt is a blockchain’s record of a transaction’s result. Ethereum’s JSON-RPC documentation says a receipt can be looked up by transaction hash and includes transaction logs, which record contract activity. A source receipt can confirm that tokens were sent, but it does not by itself prove they reached your destination wallet.

How do I match the source and destination?

Start with the source receipt, then find the destination transaction and compare the details. Check the chain, token contract address, recipient, amount, and status; a token contract address identifies the specific token, even when another token has the same ticker.

Consider two example cases. If you send a stablecoin across chains, the source record may show tokens burned, while the destination shows newly minted tokens. If you swap Token A on one chain for Token B on another, the source and destination amounts and token names will differ, but the service’s order record or message ID can connect them.

A message ID is a code that tracks a cross-chain instruction between chains. LayerZero’s V2 documentation describes a GUID, or globally unique message ID, alongside source and destination identifiers. When both wallet histories do not show a matching transfer, use that ID or the service’s transaction record to follow the handoff.

What should I do when the amounts differ?

Compare the received amount with the quoted output, allowing for the stated fees and any price movement during the swap. Check token addresses as well as tickers: a wrapped token is a version of an asset issued on another chain, and it may not be the same contract as the original.

In practice, I’d save both chain names, both hashes, token addresses, and any message ID beside the final amount. Then your records explain the full journey instead of treating the source send as the whole swap. If you are planning a similar move, the omnichain token exchange is one way to swap or move tokens across chains from one interface.

What if I see the source transaction but no destination transaction?

First check whether the source transaction succeeded and whether the destination record is still pending. Cross-chain delivery can take longer because a separate message must be verified and executed on the destination chain. If the source succeeded but no delivery appears, match the message ID or order record before assuming the funds are lost.

Why did I receive less than I sent?

The sent amount and received amount can differ because a swap changes the asset, fees reduce the output, or the token price moves before execution. Compare the received token and amount with the expected output, and confirm its contract address. A lower number alone does not show whether the swap completed correctly.

Report Page