Five Rules for DCA Chunking in Cross-Chain Swaps
DCA chunking divides one cross-chain swap into timed executions; integrations must size chunks, apply limits per execution and handle partial fills and refunds.
Tokenbearing Editorial3 min read#bcea16

DCA chunking divides a cross-chain swap into smaller executions scheduled over time, so an integration must account for each chunk’s size, timing and outcome. The method can reduce the market impact of a large trade, but it extends execution and creates more points where price limits or liquidity can affect completion. Treat chunking as an execution policy with explicit parameters, not as a display option added after quoting.
How should an integration choose the chunk count?
Choose a chunk count that leaves each execution large enough to trade usefully. A protocol may enforce a minimum chunk size and reduce the requested count when the deposited amount cannot support it; Chainflip documents this behavior for its swaps. Show the effective count returned by the protocol when available, rather than implying that the requested count is guaranteed. For context on where DCA fits against other execution modes, see this guide to choosing a Chainflip swap mode.
Rule 1: Size chunks against the input amount and minimums. Divide the expected deposit by the requested count, then check that each resulting amount clears the protocol’s minimum. Account for fees or other deductions if they reduce the amount available to swap. If the protocol adjusts the count, update the interface and any duration estimate to match.
Rule 2: Set the interval in the protocol’s clock. DCA intervals may be expressed in blocks, not seconds. Block production and deposit confirmation affect when the first chunk can execute, so multiplying an interval by a typical block time gives only an estimate. A wider interval spreads executions over a longer window; it also leaves more time for market conditions to change.
How do price limits affect each chunk?
When slippage protection applies per chunk, each execution must meet its own minimum price; passing the limit on the total trade does not rescue a failed chunk. Chainflip’s documented DCA flow retries a chunk that misses its minimum, delaying later chunks. If retries are exhausted, successful chunks can proceed to the destination while the remaining input is refunded.
Rule 3: Model partial completion as a normal outcome. Track completed, pending, retried and refunded amounts separately. The integration should not label the whole swap “failed” if part of it has already settled, or “complete” while input remains unresolved. Present the destination transfer and any refund as distinct outcomes.
Rule 4: Explain what the price limit guards. State whether the configured limit is checked per execution and whether retries can extend the schedule. A tighter minimum can reject more chunks; a looser one accepts a wider range of execution prices. Keep this control separate from any live-price guard the protocol offers, since the two checks may use different reference prices.
What should the quote and interface show?
A DCA quote describes an expected route and schedule, while final output depends on execution over time. Display the estimated output with the chunk count, interval, fees and expected duration that produced it. If the protocol returns revised parameters, show those instead of stale form inputs.
Rule 5: Keep the lifecycle visible after deposit. Give the user a status that can represent waiting, execution, retry, partial settlement and refund. Preserve the destination and refund details with the swap record so the user can reconcile both transfers. A single final-output number hides the key operational fact: in DCA, each chunk is a separate execution, and the overall swap can finish in more than one state.