Kraken's Maker Protection: Why "Canceled" Orders May Still Fill
Kraken has recently expanded its Maker Protection system to include 61 additional perpetual contracts, introducing specific order-handling rules designed to protect liquidity providers. Under this system, certain futures limit orders are subject to a brief "hold" window before reaching the matching engine. While this mechanism is intended to provide stability, it creates a unique scenario where an order can still execute even after a trader receives a successful cancellation acknowledgment.
The Mechanics of the Maker Protection Hold
The Maker Protection system applies to selected futures markets, implementing a delay—documented as an initial 20-millisecond hold—for orders that could potentially take liquidity. This window gives traders with resting orders time to react to rapid market movements before a new order hits the matching engine. However, this delay changes how the exchange processes cancellations. If a trader submits a non-post-only limit order and then cancels it within the hold window, the system does not simply delete the order. Instead, it converts the placement into an "Immediate-or-Cancel" (IOC) order while keeping the original release time intact.
The Cancellation Paradox and Execution
The primary point of confusion for many traders is that a "successful" cancel request does not immediately terminate the order's ability to trade. Because the held placement is converted to an IOC order, it remains active until the hold period expires. At that point, the order is released to the matching engine where it can still fill against available liquidity; only the unfilled remainder is discarded. Consequently, Kraken reports these as separate events: the API may return a "success" status for the cancellation, yet the order can still report a fill or partial execution moments later.
Essential Adjustments for Automated Traders
For those utilizing trading bots and automated strategies, this behavior requires a sophisticated approach to order reconciliation. Developers must ensure their systems can handle "coexisting" statuses where a successful cancellation and a subsequent fill occur for the same order ID. Furthermore, since the hold delay is contract-specific, traders must monitor the makerProtectionMillis value in Kraken’s instrument feeds to identify which markets are affected. Notably, these rules do not apply to spot trading or Kraken’s ten most liquid linear perpetual markets, meaning traders cannot assume uniform behavior across all assets on the platform.