Skip to main content
You hit “withdraw” on Intention, the balance on the exchange went down, but the funds have not landed in your external wallet yet. This page explains why that gap exists and when the gap has grown long enough to escalate.

The withdrawal lifecycle

A withdrawal from Intention to an external chain has three stages, and each one has its own latency.
  1. Request. Your signed withdrawal message is accepted by IntentionKernel and included in a block. At this point your internal balance has already been reduced by the withdrawal amount. This happens at the same speed as any other on-chain action — sub-second on a healthy network.
  2. Validator attestation. Once the Intention block containing the withdrawal is finalized by IntentionBFT, validators observe it and sign an attestation that authorizes a payout on the destination chain. A stake-weighted 2f+12f+1 quorum of attestations is what the destination-chain contract requires before it will release funds. See the Bridge page for the full protocol.
  3. Destination chain settlement. Someone — any relayer, including you — submits the aggregated attestation to the destination-chain contract, which validates it and executes the payout. The time for this stage is whatever the destination chain itself requires for inclusion and confirmation.

Where the time goes

Two latency components dominate, and they are independent.
  • The Intention-side finality component is bounded and small. IntentionBFT finalizes blocks within the consensus pipeline rather than waiting for probabilistic confirmations.
  • The destination-chain component is whatever that chain’s blocks and finality rules demand. A fast chain adds seconds. A slower chain can add minutes.
In addition, there is a small operational delay between “attestation quorum reached on Intention” and “aggregated proof submitted to the destination contract.” Under normal conditions this is a matter of seconds because automated relayers pick it up immediately; during network stress it can stretch.

When to worry

Each supported destination chain has a documented worst-case budget for the full flow, published on the Bridge page. Wait until that budget has elapsed before you open a support ticket. Before the budget expires, your withdrawal is almost certainly still in-flight and opening a ticket will not speed it up. If the budget has elapsed, you should:
  1. Check your own destination wallet on a block explorer to confirm the funds have not already arrived and been missed by the wallet UI. UIs sometimes lag the chain.
  2. Check the bridge contract on the destination chain to see whether the withdrawal has been marked as settled there. The Bridge page points at the canonical contract addresses.
  3. Check the API (link at API reference) for the withdrawal status as reported by Intention itself.
If all three of those agree that the withdrawal is stuck, escalate.

What to include in a ticket

Send the following to support@intention.xyz:
  • The Intention account address that initiated the withdrawal.
  • The Intention block or transaction where the withdrawal was recorded.
  • The destination chain and the destination address.
  • The asset and amount.
  • The UTC time at which you submitted the withdrawal.
  • Any status strings you observed at each of the three checks above.
With those fields we can find the specific attestation record and tell you whether it is stalled at the quorum step, at the relay step, or at the destination settlement step.