DEV Community

Jerome Barton
Jerome Barton

Posted on

Estimating Cross-Chain Swap Completion Time

A cross-chain swap is complete when the destination asset has been delivered at the settlement level you need. The main timing variable is usually how much confirmation the route requires on the source chain before it risks releasing value on the destination.

Completion has three separate stages

Track the source deposit, the swap execution, and the destination payout as separate events. A source transaction can be included in a block while still too easy to reverse; after it passes the route’s acceptance threshold, the service or protocol executes against available liquidity and broadcasts a new transaction on the destination chain.

Execution inside a liquidity network can take seconds once the deposit is accepted, but that is only the middle stage. The payout still needs to land on its chain, and a transaction hash means it was broadcast—not necessarily included, finalized, or credited at the commitment level your next action requires.

For a BTC-to-ETH example, a thor swap starts with a Bitcoin deposit and ends with an Ethereum payout. A thor swap service handles those cross-chain legs as one routed action; the underlying settlement still depends on Bitcoin’s deposit confirmations and Ethereum’s payout status.

Source-chain risk usually sets the wait

On Bitcoin, each block added after the deposit increases its confirmation count, reducing—but never mathematically eliminating—the chance that a competing chain reorganizes it. Six confirmations is a common high-value benchmark and takes about an hour on average at Bitcoin’s roughly 10-minute block interval; routes may accept fewer for smaller deposits, since the economic cost of a double-spend rises with the amount at risk.

Ethereum has a different clock. A transaction may be included within a block after a short wait, while consensus finality typically takes around 15 minutes under normal conditions. If the route accepts an included transaction before full finality, it can finish sooner, but its risk model is then relying on Ethereum’s short-reorg resistance rather than its strongest settlement guarantee.

On Solana, processed, confirmed, and finalized are distinct commitment levels. Processed is the newest view and can be rolled back; confirmed means a supermajority of stake has voted for the block, while finalized is the strongest commitment. A route choosing confirmed can reduce latency, but the user should not equate it with finalized settlement.

Estimate the slow leg and verify the payout

Before sending, identify the route’s source acceptance policy and the commitment level expected for the destination asset. For a BTC-to-ETH route, budget for the required Bitcoin block depth first, then allow time for execution, Ethereum inclusion, and—if your next action is high value—Ethereum finality. Adding those stages is more useful than relying on a single “average swap time.”

Consider a $500 BTC deposit and a $50,000 deposit. If a route accepts one confirmation for the smaller transfer but requires more confirmations for the larger one, the second transfer can take much longer even when both transactions reach the same Bitcoin block. The trade-off is deliberate: waiting reduces reorganization exposure, while accepting earlier improves speed.

After submission, record the source transaction ID and check that it is on the canonical chain with the expected amount and destination details. Then follow the payout transaction separately. If the source is confirmed but there is no payout, check whether the route is still waiting for its threshold or has reported a failed execution; if the payout hash exists, inspect its status and destination address before retrying. Repeating a deposit while the first route is pending can create a second independent swap.

For L2 destinations, distinguish sequencer confirmation from the chain’s stronger settlement on its parent network. A fast sequencer receipt may be enough to make a small trade, but withdrawals or accounting that require stronger assurance can wait for the L2’s settlement mechanism to progress. The right stopping point depends on what you plan to do with the received asset.

Answers to common settlement questions

Does a transaction hash mean the swap is finished?

No. A hash proves that a transaction was submitted and gives you a way to track it. Check whether the source deposit reached the route’s acceptance threshold, then verify that the destination payout was included and succeeded. For high-value use, wait for the destination chain’s required commitment or finality rather than treating a broadcast notification as settlement.

Why can two swaps on the same route take different times?

Source-chain congestion, transaction fees, block timing, and deposit size can all change the wait. Some routes set confirmation depth according to value or chain-specific reorganization risk. Destination congestion can also delay inclusion after the source has cleared, so identical asset pairs do not guarantee identical completion times.

When should I treat the received asset as spendable?

Use the destination transaction’s status and your next action’s risk tolerance. A low-value trade may be practical after a fast confirmation; a large transfer, exchange deposit, or irreversible payment may justify waiting for stronger finality. Completion is a settlement decision: match the confirmation level to the cost of being wrong.

Top comments (0)