Singapore court’s decision on cryptocurrency exchange’s computer error

Written on 5 Jun 2019

In March 2019, the Singapore International Commercial Court gave a ruling that sent warning signals around the region's cryptocurrency exchange communities.

A number of trades for the sale by a cryptocurrency trader on a crypto exchange's platform had been executed automatically in response to orders from the trader's algorithmic trading software. Due to an error in the way the exchange's software had been programmed, the trades were done at a highly abnormal exchange rate, significantly in the trader's favour.

When subsequently reviewed by a human at the exchange, the error was spotted and the trades were reversed. However, the trader objected to the reversal – and the dispute ended up in court.

The court's decision is interesting for a number of reasons, with the judgement highlighting two key issues:

  • First, while not being legal tender, following established principles under English law, cryptocurrencies do constitute intangibles property and are a "property right" of some nature – and consequently can equally become the subject of a trust. This was evidenced in this case by all funds being deposited with the exchange being stored in an off-line wallet as "members' assets" rather than as part of the exchange's trading assets.
  • Second, the court analysed the law of "mistake" in automated contract-making and algorithmic trading. The court found that these abnormal trades did not take place by mistake (and therefore were not void) but were simply a function of the incorrect way the exchange's computer programme had been constructed by the relevant programmer – and therefore the exchange was obliged to accept the consequences.

Although it isn’t clear whether the programmer concerned was in-house at the exchange or a third-party contractor, this element of the judgment has potentially significant consequences for all providers and users of computer-driven trading functionalities –not just in a crypto trading context.