DEV Community

Jerome Barton
Jerome Barton

Posted on

How to Set a Confirmation Policy for Cross-Chain Treasury Transfers

A confirmation policy for cross-chain treasury transfers defines when a sent amount may be treated as settled and spent. The key rule is to wait for the route’s required source-chain finality, then verify the destination credit and reconcile the asset before releasing payroll or supplier funds; a block count alone does not describe every bridge’s settlement.

A bridge transfer can involve source-chain settlement, message verification or liquidity, and a destination-chain transaction. That differs from a single-chain payout, where one chain’s settlement status may be enough; Biswap is a cross-chain bridge and swap service for moving and exchanging assets across networks. The same treasury policy should cover routes through Biswap and other providers.

Define settlement by the route’s actual stages

Use the route’s settlement stages—not a single universal confirmation number—to decide when a transfer is complete. Bridges differ: some wait for source-chain finality before releasing funds, while liquidity-based routes may pay the destination first and settle between providers later.

  1. Map the route. Record the sending network, destination network, asset on each side, and how the route verifies the transfer. A token with the same ticker can have different contracts or representations; confirm the recipient is expecting the intended asset.
  2. Set the source-chain threshold. Use the route’s stated requirement and your exposure limit. Ethereum.org describes Ethereum slots as 12 seconds and finality as taking about 15 minutes; a transaction appearing in a block is therefore not the same as finalized settlement.
  3. Set the destination threshold. Require the receiving transaction to succeed and reach the commitment level your policy specifies. Solana’s RPC documentation distinguishes confirmed from finalized; for a high-value treasury payment, make finalized the release condition unless your risk owner has approved a faster rule.
  4. Write down the evidence. For every transfer, retain the source transaction ID, route or provider reference, destination transaction ID, token and network, amount sent, amount received, and status checked. These fields let finance distinguish a delayed transfer from a failed one.

Match the waiting rule to the amount and purpose

Set a threshold that reflects how much the business could lose or disrupt if a transfer is reversed, delayed, or misdirected. A small test transfer can confirm the destination address and asset, but it does not prove that a larger payment will settle under the same conditions.

For example, before an illustrative $20,000 supplier payout from Ethereum to Solana, send a small test amount and confirm the recipient can identify it. Then send the balance; hold the supplier payment until the source meets the route’s required status and the destination transaction shows the expected token and amount at your chosen commitment level.

  • Routine, low-value transfers: follow the route’s stated confirmation threshold and reconcile each receipt.
  • Large or time-critical payouts: require destination finality and a second person’s review of the recipient and asset.
  • Unusual delays or conflicting statuses: pause the payout and check both transaction IDs before deciding whether action is needed.

Keep a separate timing allowance for operational planning. Ethereum finality can take around 15 minutes under normal conditions, but route processing, congestion, and destination confirmation can add time; do not promise a fixed payout arrival based only on block time.

Handle delays without creating a duplicate payment

If the source transfer appears successful but the destination credit is missing, do not immediately resend. Check the source transaction’s status and the route’s transfer record first: a bridge may still be verifying the message or waiting for its destination transaction.

For Biswap transfers, apply the same internal checks you use for any cross-chain service: reconcile the source and destination records, and escalate unresolved differences through your established process. Before acting, ask yourself: Do we have evidence that this exact amount is settled on the destination network and matches the payment we intend to release?

Top comments (0)