On Friday 18 September 2026, CoinDesk reported that Haruko, a London firm supplying portfolio, risk and trade-data infrastructure to institutional crypto desks, had been hit by a targeted attack. Fifteen clients affected. Exchange API credentials and trading data exposed. And, according to sources cited in the report, some smaller hedge funds with weaker security controls may have lost a small amount of money.
Read that sequence once more, because the industry is going to file it under “another breach” and move along. The credentials taken were read-only. They could not withdraw. They could not place a trade. Money still left.
TL;DR
- Attackers extracted a user-access token from Haruko’s infrastructure and captured data held in process memory, exposing read-only exchange API details and trading data for 15 clients.
- Read-only credentials cannot move your money. Some clients appear to have lost funds anyway, which means the permission model is measuring the wrong thing.
- Exploiting read access against a trading desk leaves no artefact on that desk’s books. Every trade was voluntary. The damage arrives as worse prices, not as an unauthorised transaction.
- Satoshie cannot hide your play from anybody and does not claim to. The claim is that read access is uniform: no private view, and no moment when a draw’s number exists and only the house can see it.
What a permission tier actually promises
Every exchange offers the same taxonomy. A key can read, a key can trade, a key can withdraw, and you tick the boxes you need. Every operational checklist in institutional crypto asks the same question about a third-party integration: is withdrawal disabled on that key? Answer yes, and the integration gets filed as low risk.
Notice what the tier is a statement about. It describes what a credential may do to your account. It is a taxonomy of verbs performed at one interface, and it says nothing about what the holder may do with what the credential shows them, because that happens somewhere else entirely, on an account that is not yours, at a venue you do not control.
Haruko’s chief technology officer Adam Carlile described “a targeted attack by a group on us” and confirmed “it was 15 clients impacted”. The platform connects to more than 100 centralised trading venues and 250 on-chain protocols, and its publicly listed clients include Bitcoin Suisse, GSR, Flowdesk and 3iQ Digital Assets. Consider what sits behind a read-only key on a desk like that: positions, sizes, venue connectivity, what is open, where, and how much of it. In any market that has ever existed, knowing what a large participant holds and what it is about to do is not information about a position. It is itself a position, and a better one than most, because it carries no directional risk.
The half everybody asked
The reaction settled within hours onto infrastructure, and fairly. CoinDesk noted that Haruko runs bare-metal servers rather than cloud services such as AWS that layer on additional protections, and Haruko’s own remediation advice was to configure IP whitelists. Self-hosting is a sovereignty claim, not a security claim, and a hyperscaler’s boring defaults are the accumulated scar tissue of failures you have not personally had yet.
Then there is the whitelist. The fifteen affected were the clients without one, so the spread of outcomes across Haruko’s client base was decided by the clients rather than by Haruko. A default is a security decision taken on behalf of everyone who does not read the documentation, and most people do not read the documentation.
The sixty-seventh unasked half of fairness
Here is the mechanism question. What is the price of read access, and who has ever charged it?
The answer is zero, and nobody. Read is the free tier, the permission you hand out without a change-management ticket, the one that does not wake anybody at three in the morning. That grading encodes an assumption never stated out loud: the only way to lose money is for somebody to move it. That has never been true in a market. It is the basis of every insider-dealing statute on earth. Traditional finance spent a century learning that reading is an action with a price, and crypto imported the access-control tooling without importing the lesson.
Look at what the two credentials demand of an attacker. Somebody holding your withdrawal key has to act against your account, and that act is loud, timestamped, unauthorised, attributable and, in the good case, insurable. Somebody holding your read key never touches your account at all. They trade their own book, with their own capital, at a venue you have no relationship with, against flow they can see coming. Nothing about that is anomalous anywhere, and it stays usable for as long as the token lives.
The loss that leaves no artefact
Ask what the evidence would even look like. A withdrawal theft produces an object: a transaction you did not authorise, at a timestamp, to an address. You can point at it, your insurer can argue about it, an analytics firm can follow it. The industry’s entire incident vocabulary is built for objects like that, which is why we can quote 207 attacks in the first half of 2026 and the $972 million they took, and cannot quote anything here.
Read-only exploitation of a trading desk produces nothing. Every trade in that book was one the desk chose to make, sized by its own risk system, routed by its own execution, signed by its own keys. The only thing that changed is the price it got, and prices move for a thousand reasons every day. The loss does not surface as a breach. It surfaces as a slightly worse fill, a strategy decaying faster than its backtest promised, a quarter where the edge narrowed and the postmortem blames market structure.
Which is why the most important sentence in the CoinDesk report is also its most hedged: some smaller funds may have lost a small amount. That is not sloppy sourcing, it is the honest shape of the finding, because it is sourced to people rather than to ledgers, and nobody can produce the number for the excellent reason that the number was never written down anywhere.
The forty-first instalment of this series split fairness into integrity, whether an outcome could be steered after money was committed, and symmetry, whether anyone already knew when they did. This one is nastier than either. It is not that somebody knew. It is that the system governing access has a tier for knowing, prices that tier at zero, and produces no record from which the harm could ever be reconstructed.
What this looks like in a casino
Every provably fair page in this industry grades the same way a permission model does, and towards the same verb. Hash commitments, server seeds, client seeds, nonces, VRF proofs: all of it is integrity machinery, aimed squarely at who can change the outcome.
Now ask who can read. Every gaming operator alive, including the provably fair ones, runs a dashboard nobody audits: deposit sizes, loss streaks, hour of day, how long after a bad night you come back, which promotion pulls you in when you were leaving. That view is read-only in the strictest sense and cannot alter a single outcome. It is also the most commercially valuable surface in the building, because it decides who is offered what and when. A fairness proof tells you the dice were honest. It is perfectly silent on a system reading you in order to price you. The integrity is real, the symmetry is absent, and the audit comes back clean.
What we can claim, and what we cannot
Start with the confession, because it is the bigger half. Being on-chain makes the read surface larger, not smaller. Every entry into a Satoshie raffle is public, every wallet, every prior draw, every payout, permanently. So the claim cannot be that nobody is watching you. It is that we do not hold a private view of you that you cannot hold of us. Read access here is uniform rather than restricted: the entrant list, the prize, the contract, the coordinator address, the proof, one copy, the same copy, with no internal version carrying extra columns.
And the one asymmetry that would actually decide a game is not a policy we promise to keep, it is prevented by construction. Randomness comes from a Chainlink VRF coordinator named in the deployed code, readable before anyone stakes, and the returned value carries a cryptographic proof that is verified on-chain before the payout callback may act. There is no window in which the number exists and only the house can see it, because before fulfilment it does not exist and after fulfilment it belongs to everyone. We cannot read it early, which is a considerably stronger thing to offer than a promise not to.
Three limits, stated plainly. A VRF proof settles randomness and nothing else, and is silent on whether a contract can be drained or a prize is funded. We run ordinary infrastructure, so Haruko’s failure class applies to us too, and our advantage is not superior hygiene but a smaller surface: the thing that decides who wins does not live on any machine we operate. And uniform read access is not privacy, so if you want your play unobservable, a public chain is the wrong venue.
Three questions worth asking
- For every credential you have issued or been issued, you know what it can do. Do you know what it can see, and have you ever valued that separately from what it can move?
- If somebody had been reading your book for six months, which artefact would tell you? If the honest answer is none, what is your confidence actually based on?
- When a platform tells you an outcome cannot be manipulated, ask it the other half: who can see the state of the game before you can, and what are they permitted to do with what they see?
Haruko fixed the vulnerability and refreshed its secrets, and that is to its credit. The tokens really were read-only, and that is true as well. Both statements survive perfect contact with the fact that money left. “Read-only” was never a promise that nothing could be taken. It was a promise that nothing could be taken by that key, and those have never been the same sentence.
Satoshie runs provably fair raffles and coinflips on Base, with every outcome decided by a Chainlink VRF proof verified on-chain before a payout can happen. Nothing to read early, and nothing we can see that you cannot.
📷 Photo by Bernard Hermant on Unsplash


