How Treasury Teams Reconcile Cross-Chain Swaps
Cross-chain swaps settle across separate ledgers, so treasury teams must match the instruction, source debit, route status and destination receipt before closing the books.
Merkle Street Newsroom#417f943 min read
A cross-chain swap moves value from a source asset on one blockchain to a destination asset on another, and treasury reconciliation links the instruction to both sides of that movement. The team records what it meant to swap, checks the source-chain debit, follows the route’s status, then confirms what arrived on the destination chain. A transaction hash proves that a transaction was submitted or recorded; by itself, it does not prove the full swap settled as instructed.
Start with the trade instruction: identify the sending wallet, source chain and asset, intended amount, destination chain and asset, receiving address, and expected minimum output if one was set. The route may use a bridge, a liquidity network, or several swaps and transfers. Each design produces different evidence along the way. For a fuller explanation of route selection, see chainflip.
What records make up a cross-chain swap?
A complete record joins the treasury instruction to the source debit and the destination receipt. The source transaction shows what left the wallet and what fees the source chain charged. A provider or route event can describe whether the swap is pending, completed, or failed, and may identify a destination transaction. The destination-chain receipt shows what reached the receiving address and whether that transaction succeeded.
Give each instruction an internal reference and store it alongside the evidence. Keep chain and asset identifiers explicit: a token with the same ticker on two networks may represent different contracts or balances. Record the amounts in each asset, the wallet addresses, timestamps, transaction hashes, route status, and fees. This creates a trail a reviewer can follow from approval to settlement.
Think of the records as two ends of a parcel journey: a dispatch receipt does not prove delivery. The analogy stops there; on-chain evidence comes from each network’s transactions and the route’s own status data.
How should treasury match the two sides?
Match records by the internal instruction reference first, then confirm the addresses, networks, assets, and amounts against transaction evidence. Do not pair transactions just because their timestamps are close. A route can take time to complete, and unrelated activity can occur in the same wallet meanwhile.
- Confirm the source transaction succeeded and the expected asset left the approved wallet.
- Compare actual source debit with the instruction, separating network fees from the swap amount.
- Follow the route status and link any supplied destination transaction to the same instruction.
- Confirm the destination transaction succeeded, the receiving address is correct, and the amount received is recorded.
Reconcile quantities before translating them into the reporting currency. The source amount, destination amount, and fees are different measures; preserve them separately. Apply the organization’s approved valuation method to the dated entries rather than treating the route’s quoted rate as the amount finally received.
What should happen when records do not match?
Keep an instruction open when the source debit is confirmed but destination evidence is missing. Mark it as pending and investigate using the route status and transaction references. If the route reports failure, check whether funds returned to the source wallet before recording the outcome. A source hash alone is not a reason to book the intended destination asset.
When the destination receipt differs from the estimate, record the actual amount and explain the difference with available route and fee data. Escalate an unknown destination, unexplained shortfall, or repeated status conflict under the team’s normal exception process. The close is complete when the instruction, source movement, destination movement, and ledger entry agree—or when a documented exception explains why they do not.