The Singapore International Commercial Court (SICC) has decided the nation’s first case featuring digital tokens. In a widely-reported judgement (B2C2 Ltd v Quoine Pte Ltd [2019] SGHC(I) 03, announced 14 March 2019), the SICC found that Quoine, a Singapore-based digital token exchange operator, committed breach of contract and breach of trust when it reversed seven trades by B2C2 that were executed under unusual circumstances.
B2C2 is a market maker in digital tokens like bitcoin (BTC) and ether (ETH). B2C2 trades algorithmically; that is, its pricing and trading rules are implemented in software that places its market making orders autonomously. B2C2’s software runs 24/7 and its algorithm seeks to have live orders at all times.
In addition to operating its exchange, Quoine also acts as a market maker on its exchange. Both the exchange and Quoine’s market making activity also run autonomously. The exchange matches buy and sell orders and allows customers to trade on margin. Quoine’s market making activity operates in similar fashion to B2C2’s.
In April 2017, Quoine upgraded its market maker software. However, in a series of programming and operational errors, the software stopped working but Quoine was not aware of the problem. At the time, Quoine was providing about 98% of the liquidity to its exchange.
As pre-existing orders were filled but were not replaced with new orders from Quoine, liquidity on the exchange decreased. The thin order book triggered a margin call on two other traders’ accounts, causing the automatic placement of “forced-close” orders to buy ETH at the best available price. As the exchange’s order-matching algorithm worked through pre-existing orders to match against the forced-close orders, liquidity continued to decrease and prices predictably increased.
Eventually, the exchange’s ETH/BTC order book was virtually empty and the B2C2 algorithm placed two orders to sell ETH at prices approximately 250 times higher than the actual market price. Those prices were determined according to rules in B2C2’s algorithm to enable the company to maintain live orders while protecting against losses in abnormal market conditions. The remaining forced-close buy orders were filled in a series of seven trades against those two B2C2 sell orders when there were no other orders in the exchange’s order book. Quoine’s exchange software did not have rules to detect or prevent the unusual trading activity as it was happening.
The next day, Quoine noticed the unusual prices for those seven trades and reversed them. B2C2 sued to restore the trades, worth about S$16.5 million as at March 2019.
The SICC ruled for B2C2, finding that Quoine breached its Terms and Conditions, which stated that “once an order is filled … such an action is irreversible.” The court also found that Quoine’s practice of holding customers’ tokens in a segregated wallet was sufficient to create a trust in favour of B2C2, and that reversing the trades to take control of the BTC that had been credited to B2C2 in respect of the seven trades was a breach of that trust.
In finding that Quoine breached its own contract, the court discussed and rejected each of the defences Quoine had argued:
Although this case deals with a common breach of contract matter, it also offers several lessons for the technology community:
1. Terms and conditions matter. The court ruled that the word “irreversible” was not qualified and therefore other terms could not be implied to contradict it. The court also rejected Quoine’s evidence of an industry practice of reversing trades made at obviously incorrect prices because other exchanges had express contract provisions that permitted those reversals. Quoine’s Terms and Conditions did not have such a provision.
2. Unilateral variation of contracts must be executed carefully. The court noted that unilateral variation clauses are not unlawful per se, but that there must be clear language in the contract to define the right and that the right must be exercised so that the other party knows a variation has been made and what the variation is. In this case, it was not clear that the risk disclosure statement was intended to have contractual effect or that it could be enforced as a contract.
3. Algorithmic activity can change the legal outcome. In this case, algorithmic activity (that is, the operation of software without human intervention) played a significant role: the failures of Quoine’s market maker software, the edge case rules programmed into B2C2’s software, and the margin call triggers and lack of basic checks in Quoine’s exchange software. In considering Quoine’s unilateral mistake defences, the court ruled that the state of mind of B2C2 would need to be determined at the time the algorithm was written, not when it executed. That difference was decisive on the issue. The outcome may have been different if humans had been making decisions about prices and trades in real time.
4. Careful software design matters. B2C2’s algorithms included rules to deal with edge cases as occurred here. Quoine omitted features from its software that should have checked for basic error conditions and alerted Quoine to operational issues, any one of which would have averted the situation here. Those facts mattered in the court’s rejection of Quoine’s defences of mistake and unjust enrichment. The court said:
This is not a case of B2C2 getting an unjustified windfall, it is the inevitable result of the way the parties have chosen to trade with each other.
In a partial victory for Quoine, the court ruled that an order of specific performance to deliver the BTC to B2C2 would be unduly harsh due to the substantially higher price of BTC at the time of judgement than in April 2017 and that damages would suffice, the amount of which would be determined separately.