Unilateral mistake and algorithmic trading
Read the PDF edition (2 pages)
The doctrine in Singapore
Singapore's law of unilateral mistake is set by Chwee Kin Keong v Digilandmall. The Court of Appeal held there that a contract is void at common law where one party knows that the other is mistaken as to a fundamental term. It may be set aside in equity where the non-mistaken party has constructive knowledge of the mistake and has acted unconscionably.1 Quoine argued that B2C2's trades at 250 times the market rate were the product of a mistake of this kind. The difficulty was that neither party had a human mind at the moment of contracting. Both sides traded through deterministic algorithms that executed their programming without human intervention.
The Court of Appeal's majority held that in such a case the relevant state of mind is that of the programmer, assessed from the time of programming up to the formation of the contract. The question is whether the programmer, when writing the algorithm, knew or ought to have known that an offer at the price in question would only ever be accepted by a party under a mistake. A second question is whether the algorithm was designed to exploit such a mistake.2 B2C2's programmer had set a deep "fail-safe" price of 10 bitcoin per ether so that his algorithm would never sell for nothing if the market data failed. He did not know that Quoine's platform would malfunction in a way that made those orders execute. The mistake defence therefore failed at common law for want of actual knowledge and in equity for want of constructive knowledge and unconscionability.3 Mance IJ dissented on this issue. His view was that the law should ask what a reasonable person in the position of the parties would have understood at the time the contract was formed. On that approach a trade at 250 times market in circumstances of obvious platform failure was vitiated by mistake.4
Consequences for platforms and traders
The majority view is the law in Singapore. Three consequences follow. A platform cannot reverse an executed trade on the ground that the price was absurd unless its terms give it that right in clear words incorporated into the contract. A trader whose algorithm profits from another party's malfunction keeps the profit unless the algorithm was written to exploit mistakes. And a programmer's design choices, including documented fail-safe prices, become evidence in litigation, so that code comments and design documents should be written with that possibility in mind. Platforms responded to Quoine by introducing express "erroneous trade" or "clearly erroneous transaction" policies modelled on those of traditional exchanges, under which trades outside a defined band around the reference price may be cancelled within a short window. Such clauses are enforceable if properly incorporated. They shift the risk of malfunction from the platform to the counterparty of the malfunctioning trade, which traders should know when they choose a venue.
Example
A Singapore proprietary trading firm runs a market-making algorithm on a licensed exchange. At 03:14 Singapore time the exchange's price feed fails for ninety seconds. The firm's algorithm, following its fail-safe logic, buys 400 ether at 0.1 per cent of the market price from a retail customer whose stop-loss order has been triggered against a collapsing order book. The exchange's terms, accepted at onboarding and unchanged, contain a clause allowing cancellation of trades executed more than 20 per cent away from the reference price within thirty minutes. The exchange cancels. The firm has no claim. If the terms contained no such clause, Quoine would entitle the firm to keep the ether unless the retail customer could show that the firm's programmer designed the algorithm to exploit feed failures. The retail customer's remedy would be against the exchange for any breach of its own duties in operating the stop-loss mechanism.
Notes
- Chwee Kin Keong v Digilandmall.com Pte Ltd [2005] SGCA 2 at [30]–[80], the laser-printer mispricing case. ↩
- Quoine [2020] SGCA(I) 02 at [97]–[99] and [103]–[109]. ↩
- Quoine [2020] SGCA(I) 02 at [128]. ↩
- Quoine [2020] SGCA(I) 02, dissenting judgment of Jonathan Mance IJ on the mistake issue. ↩
For general information only. This article does not constitute legal or tax advice, does not replace advice on an individual case and creates no lawyer-client relationship. It reflects the legal position as of October 2026.