Worked example · 2014-03
Flexcoin Bitcoin bank closure after hot-wallet hack — Bitcoin — 2014-03-02 to 2014-03-04
Summary
Flexcoin was a small Bitcoin "bank" (launch date not established in the cited sources) that operated a custodial wallet service where users could deposit Bitcoin for safekeeping. The service branded itself as a "Bitcoin bank" — a predecessor to the custodial-wallet and centralized-exchange custody models that would dominate later years. Flexcoin stored customer deposits in two wallet tiers: a hot wallet for day-to-day withdrawals (connected to the internet) and a cold-storage wallet for long-term holdings (offline).
Flexcoin's statement says that on 2014-03-02 it "was attacked and robbed of all coins in the hot wallet" and the attacker made off with 896 BTC ([domainsflex]). A flaw in the code for transfers between Flexcoin users let the attacker send many simultaneous requests, moving coins between accounts until the sending account was overdrawn before balances updated; the attacker repeated this across accounts and withdrew the coins ([welivesecflex]). Flexcoin then announced it was shutting down; cold-storage coins were offline and users would verify identity to have them transferred out free of charge ([domainsflex]).
The claims in earlier drafts that the operator invoked terms-of-service disclaimers, that it was widely criticised for abdicating responsibility, and that the case directly motivated licensing and proof-of-reserves rules are not supported by the cited sources and should be read as unverified commentary. The closure came about two weeks after the Mt. Gox collapse ([welivesecflex]).
Timeline (UTC unless noted)
| When | Event | OAK ref |
|---|---|---|
| 2011–2014 | Flexcoin operates as a custodial "Bitcoin bank" with hot-wallet and cold-storage tiers; customer funds stored in operator-controlled wallets | (standing T11.001 surface) |
| 2014-03-02 | Transfer-code race condition exploited; 896 BTC withdrawn from hot wallet ([welivesecflex], [domainsflex]) |
T11.001 (custody compromise) |
| 2014-03-04 | Flexcoin announces it is shutting down; cold-storage coins to be returned after identity verification ([domainsflex]) |
T6.007 (trust-substrate shift) |
Realised extraction
896 BTC (~$570K per [welivesecflex]) from the hot wallet. Cold-storage coins were unaffected and to be transferred out after identity verification ([domainsflex]). Recovery of the stolen coins is not reported.
What defenders observed
- The cited sources show a transfer-code race condition: many simultaneous transfer requests moved coins until the sending account was overdrawn before balances updated (
[welivesecflex]). Earlier drafts of this section drew broader lessons (terms-of-service disclaimers, licensing and proof-of-reserves reforms, a paired Mt. Gox template); those are unsourced commentary and have been removed.
Public references
[welivesecflex]— WeLiveSecurity, "Bitcoin bank Flexcoin shuts down after attackers loot $570,000 from hot wallet" (2014-03-05): https://welivesecurity.com/2014/03/05/bitcoin-bank-flexcoin-shuts-down-after-attackers-loot-570000-from-hot-wallet[domainsflex]— TheDomains, "Flexcoin the Bitcoin bank shuts down after losing 896 bitcoins" (2014-03-04), quoting Flexcoin's statement: https://www.thedomains.com/2014/03/04/flexcoin-the-bitcoin-bank-shuts-down-after-losing-896-bitcoins