Key Highlights
- Kraken alters the execution logic for limit orders canceled during a latency protection hold window by converting them into immediate-or-cancel (IOC) orders.
- While cancel confirmations are acknowledged immediately with a “cancelled” status, the converted orders still wait out their initial release delay and may partially or fully fill upon reaching the engine.
- The maker protection mechanism excludes spot trading and Kraken’s ten most liquid linear perpetual markets, requiring algorithmic traders to monitor contract-level API flags.
Understanding Kraken’s Order Hold Mechanics and Cancel Logic
Cryptocurrency exchange Kraken has detailed specific order-handling behaviors surrounding its futures market-maker protection framework. When an order is subjected to a pre-trade latency delay, canceling the order within that operational window fundamentally alters how the exchange processes the remaining trade instructions. Instead of deleting the entry outright from the matching pipeline, Kraken converts the held placement into an immediate-or-cancel (IOC) order. Under this converted state, the order retains its ability to execute when finally released to the matching engine, but it is strictly barred from leaving any unfilled resting liquidity behind on the order book.
This dynamic introduces critical execution paths for participants submitting non-post-only limit orders. If a market participant cancels a non-post-only limit placement prior to the expiration of the hold window, the cancellation command itself bypasses the delay mechanism to initiate the conversion. However, the original hold expiry timestamp remains locked. When that release time arrives, the converted order still attempts to trade against existing counterparty orders. Any residual volume that cannot execute instantly upon release is immediately discarded rather than posted to the book.
API Reporting and Disconnected Order States
For programmatic and algorithmic traders, Kraken reports the lifecycles of these actions through decoupled responses across its interfaces. When a cancel request targets a held limit order, the system returns a success message reporting the order status as “cancelled.” Despite this acknowledgment, the matching engine continues tracking the underlying converted placement, which subsequently issues independent execution reports covering fills or non-execution events. For a converted limit order that finds no matching liquidity upon its delayed release, the REST v3 API returns the specific status
iocWouldNotExecute
.
Handling varies significantly when attempting to cancel other held order types. Unlike limit placements, submitting a cancellation targeted at a held immediate-or-cancel, fill-or-kill, or market order generates an
ORDER_NOT_FOUND
error. In those scenarios, the cancel command is rejected outright, and the original transaction progresses directly to the matching engine once the scheduled delay period elapses.
Contract Scope and makerProtectionMillis Identification
The protective delay framework is applied on a per-contract basis rather than across the entire platform. Kraken exposes these settings via its public instruments feed using the parameter makerProtectionMillis. According to exchange documentation, an omitted parameter or a numeric value of zero denotes that no latency hold is configured for that specific instrument. Because settings are granular, traders are unable to infer latency configurations based purely on underlying asset or coin names.
Furthermore, Kraken excludes traditional spot markets entirely from this protection mechanism. The exchange’s ten most liquid linear perpetual markets are also exempt from the delay. Traders submitting standalone post-only orders bypass the hold window entirely, as do incoming cancel commands. However, while cancel requests bypass the hold mechanism to alter the placement type, the underlying limit order must still fulfill its designated hold duration before reaching the matching engine.
Why This Matters
In high-frequency and algorithmic trading environments, managing order state consistency is paramount. Kraken’s order-handling rules mean that a received cancellation confirmation does not guarantee that no fill will occur. Automated trading desks operating in Kraken’s futures markets must adapt their reconciliation pipelines to handle dual-track status streams: tracking both the cancellation acknowledgment and the subsequent execution report. Failing to reconcile these states could lead automated systems to miscalculate open positions, inventory exposure, and cash balances, particularly since a successful cancellation notice and a later trade fill can coexist on the same transaction.
Frequently Asked Questions
Can a canceled limit order still execute on Kraken futures?
Yes. If a non-post-only limit order is canceled while held inside the maker protection window, Kraken converts it into an immediate-or-cancel (IOC) order. It will attempt to fill against available liquidity when its original release timer expires, discarding only the remaining unfilled portion.
Which markets are excluded from the maker protection delay?
The hold mechanism does not apply to any Kraken spot trading pairs. Additionally, Kraken explicitly excludes its ten most liquid linear perpetual contracts from the delay window.
How can automated systems verify if a market uses order holding?
API users must inspect the makerProtectionMillis field in Kraken’s instruments feed. If the parameter is absent or set to zero, no hold delay is active for that specific contract.




