Skip to content
A small crisp teal block set against a vast red striated volume that runs past the frame, a size comparison between a short secured window and a far longer unwatched one
exploitsJuly 30, 20263 min read

Triple-A's $11.8M Hot Wallet Drain: Seven Chains, and 31 Hours Nobody Closed the Tap

Dmitry Serdyuk
Dmitry SerdyukCo-Founder & CDO

Updated on July 30, 2026

TL;DR

On July 24, 2026, hot wallets belonging to Singapore payment gateway Triple-A began emptying across seven blockchains. On-chain investigator Specter flagged the outflows publicly that evening at roughly $9.3 million; PeckShield amplified the alert at more than $9.7 million, listing TRON, Ethereum, Polygon and Arbitrum among the networks hit, with 5,227 ETH pooling at a single address beginning 0x01F8. By Sunday the figure had reached $11.8 million as fresh deposits kept being swept. Triple-A confirmed unauthorized access to wallets holding its own assets, said client funds sat untouched in third-party trust accounts, and put the loss against its treasury reserves. No root cause has been published. The $11.8 million is the headline; the 31 hours during which money kept walking into addresses the attacker already controlled is the actual story.


What Actually Happened to Triple-A?

Triple-A is a payment gateway, not a protocol. Merchants accept crypto, Triple-A settles them in fiat, and the company absorbs the volatility between. That business runs on hot wallets by necessity: a rail needing a human to approve every settlement is not a rail. The company is licensed by the Monetary Authority of Singapore as a Major Payment Institution, holds EU registration, and serves more than 20,000 businesses.

The first large outflows landed at 20:35 UTC on Friday, July 24. Assets on each chain were swapped into liquid tokens on decentralized exchanges, bridged to Ethereum, and consolidated into one address across eight transfers ending at 5,226.67 ETH, about $9.73 million at the time.

Specter's first estimate covered TRON, Ethereum, TON and Solana. PeckShield's alert added Polygon and Arbitrum. A day later Specter found another $1.8 million gone across Bitcoin and TRON, putting the count at seven networks and $11.8 million.

Bitcoin is the detail worth sitting with. No approvals, no proxy contracts, nothing to abuse. To move a Bitcoin UTXO you must produce a valid signature over it. Whatever the attacker got hold of gave them spend authority on Bitcoin and six programmable chains at once.


The Attack, Step by Step

Times are UTC. The transfer sequence, the eight-transfer count and the 5,226.67 ETH total come from FinanceFeeds' on-chain summary linked above; row 5's time is the publication time on PeckShield's post. Inferred steps say so.

#WhenStepStatus
1Before 20:35, Jul 24Attacker obtains transaction-signing authority over Triple-A hot wallets on seven chains. Method undisclosed.Unconfirmed
220:35, Jul 24First large outflows leave the hot wallets. Stablecoins and liquid assets prioritized.On-chain
320:35 to 03:03, Jul 25Assets swapped on DEXes per chain, bridged to Ethereum, consolidated into 0x01F8...53b1 across eight transfers totalling 5,226.67 ETH.On-chain
4Evening, Jul 24Specter publishes the first public alert at more than $9.3 million, within about an hour of the first large outflow.Reported
5~01:54, Jul 25PeckShield amplifies at more than $9.7 million and names the consolidation address.Reported
6Jul 25Triple-A places some services into maintenance mode for approximately three hours and secures affected infrastructure.Company statement
7Through ~03:35, Jul 26New merchant deposits continue arriving at the compromised addresses and are swept on receipt, 31 hours after the first large outflow.Reported
8Jul 26A further $1.8 million identified on Bitcoin and TRON. Total reaches $11.8 million.Reported
9Jul 27Triple-A publishes its statement. Loss absorbed by treasury reserves; Singapore Police Force engaged.Company statement

The path branches, which is why it is worth drawing. Seven chains drained in parallel, funnelled into one address, while a second process kept feeding the same compromised wallets from the front end of the business:

rendering diagram…

What Is a Hot Wallet Compromise, and Why Does an Audit Miss It?

A hot wallet keeps its signing capability online so software can spend without a human present. Give a payment processor one and it settles a merchant in seconds. Give an attacker the same signing path and they settle themselves.

No smart contract bug appears anywhere in that sentence. There was no vulnerable function to find. An audit certifies the code you showed it, on the day you showed it. It says nothing about who can reach your signing service at 20:35 on a Friday.

This is the class we keep writing up. Humanity Protocol lost $36 million to a key compromise with no contract flaw. AFX Trade lost $24 million through compromised bridge validator keys. B2 Network lost $3.86 million to an upgrade authority in the wrong hands. The code was fine in all three. Each attacker went after the authority to move money, and that authority lives outside the contracts an auditor reads.


What Was the Real Hole?

Nobody outside Triple-A knows, and the company has not said. What follows is what the public record supports, and where it stops.

Triple-A runs its wallet infrastructure on Fireblocks, whose case study describes MPC-based key management, customizable transaction-approval policy, and automated vault management across chains. Under MPC there is no private key file to steal; a signature is assembled from shares held separately. Early reporting noted that no evidence linked the breach to Fireblocks itself.

Those two facts together make "private key compromise," the phrase most coverage reached for, probably the wrong shape here. Simultaneous spend authority across seven heterogeneous chains, one with no smart contracts at all, is more than a single leaked key buys you. It is what happens when something above the keys starts taking instructions from the attacker: the orchestration layer that requests signatures, or the policy that approves them. Compromised operator credentials, a stolen API key with withdrawal scope, a signer device, or a policy loose enough that a valid-looking withdrawal to a new address never needed a second human. Any of those produce this footprint. We cannot say which, and neither can anyone else who has published.

What we can say plainly: the destination addresses were new, and the policy that authorized seven chains' worth of transfers to them never stopped to ask. Nobody has addressed whether those wallets carried any per-transaction or velocity cap either. A cap is the one control that throttles a 31-hour sweep regardless of how slowly anyone notices.


Why Did Deposits Keep Flowing for 31 Hours?

This is the part that generalizes furthest, and the part with nothing to do with cryptography.

Triple-A's statement describes placing some services into maintenance mode for approximately three hours while it secured affected infrastructure. Specter's on-chain observation is that merchant deposits were still arriving at the compromised addresses and being swept 31 hours after the first large outflow, which means deposits had not been disabled. The question we would ask first in a postmortem is whether Triple-A knew that during and after the three-hour window, or learned it from Specter's Sunday post. Nobody has published an answer. That distinction separates a containment gap from a detection gap, and they need different fixes.

Those describe two different jobs. Securing the signing path is an incident-response action you finish in three hours. Tearing down every published deposit address across seven chains and re-issuing them to thousands of merchants touches every integration you have.

The second job is where the money kept going. Deposit addresses are the one part of a payment gateway you cannot quietly rotate, because they are printed inside your customers' checkout flows. Once they sit under an attacker's signing authority, every merchant taking a payment routes money to the attacker on the company's behalf, and still expects settlement. The compromise stops being a theft and becomes a subscription.

It is also why the figure kept climbing. The $9.3 million, the $9.7 million and the $11.8 million are three timestamps on an event that was still running while people counted it. Treat $11.8 million as the best available on-chain estimate. Triple-A has not disclosed a total, and the sweeping continued past the last public count, so the real figure may be higher.

Where the money sits now is unresolved too. No suspected attacker has been named, no onward movement of the consolidated ETH has been confirmed, and nobody has said whether any portion is frozen. Consolidating on Ethereum made sense for the attacker because a pooled position is easier to move on from one address than assets scattered over seven chains. One gap deserves flagging: the drain started in stablecoins, and nobody has reported whether Tether or Circle were asked to freeze anything before the swaps went through. That is the most consequential unanswered question about recoverability, and a race defenders lose by default, because freeze requests go out while the total is still moving.

One timing note, offered as inference rather than fact. The first outflows hit at 20:35 UTC on July 24, which is 04:35 on July 25 in Singapore, so the company's July 25 date reconciles cleanly if it is reporting local time. That puts the attack in the small hours of a Singapore Saturday, with the on-call bench at its thinnest. Nobody has confirmed the staffing picture, but the first public alarm came from an outside researcher within about an hour of the first large outflow, which suggests the warning did not originate inside the building.


Why This Matters Beyond Triple-A

Every crypto payment processor, exchange, market maker and treasury desk shares this architecture. Signing capability online because the business requires it. Deposit addresses published to customers who cannot be re-papered in an afternoon. Balances spread across chains that each have their own dashboard and their own idea of "normal."

That last one is the quiet failure. If your Ethereum balance drops, your Ethereum monitoring fires. If seven chains each drop by an amount that looks unremarkable in isolation, seven dashboards each shrug. The aggregate is the incident, and almost nobody alarms on the aggregate.

The observable moment here was not subtle: outbound transfers from operational wallets, to addresses with no prior history, on seven chains, inside one window, then bridge activity converging on a single Ethereum address. Every one of those is a rule you can write in advance. An audit would have found nothing, because nothing was wrong with the code. A runtime rule on net treasury outflow catches this at transfer three, and a rule on "deposit received, immediately swept to a non-treasury address" catches the 31-hour tail on its first iteration.

To Triple-A's credit, the parts designed to hold did hold. Client funds sat in segregated trust accounts with safeguarding institutions and stayed untouched, and the loss landed on the company's own treasury reserves. That segregation is the difference between an expensive quarter and a failed institution, and plenty of firms with better security postures have gotten it wrong. Triple-A says it remains well capitalized and able to meet its liabilities, and is working with external forensics specialists and the Singapore Police Force.


Operator Takeaways

  1. Alarm on aggregate outflow, not per-chain balances. One rule summing USD-denominated net outflow across every chain you hold, thresholded against normal hourly settlement volume. Seven small anomalies is one large anomaly, and per-chain dashboards never tell you that.
  2. Treat a first-time destination address as an event. Outbound transfers from operational wallets to addresses with no prior relationship should require a second authorization, always, regardless of amount. This control most directly matches what the public record shows here.
  3. Build the deposit kill switch before you need it. You must be able to stop generating and honoring deposit addresses in one action, across all chains, without a deploy. If your only lever is "maintenance mode," ask whether it stops inbound sweeps. At Triple-A the sweeping ran 31 hours.
  4. Write a monitoring rule for "deposit arrives, funds leave immediately." A merchant deposit swept within seconds to a destination outside your own treasury map is either your consolidation job or someone else's. Your system knows which addresses are yours. Make it check.
  5. Scope signing policy by destination, not only by amount. MPC removes the single stealable key and replaces it with a policy engine. That engine is now the asset, so withdrawal scope, allowlisted destinations and approval quorums are where the security actually lives.
  6. Rehearse the multi-chain revocation drill. Time yourself rotating hot wallets and re-issuing deposit addresses across every chain, on a Saturday, with your real on-call roster. That number is your true exposure window.
  7. Segregate customer funds structurally, in advance. Trust accounts with third-party safeguarding institutions are why this stayed a treasury loss. You cannot retrofit that during an incident.

Tripwire exists for items 1, 2 and 4: runtime rules on live transaction flow, which no audit or scan substitutes for. Items 3, 6 and 7 are yours to build.


Frequently Asked Questions

How much did Triple-A lose? On-chain investigators put it at approximately $11.8 million across seven blockchains, revised up from $9.3 million and $9.7 million as the sweeping continued. Triple-A confirmed the breach but published no total, so read $11.8 million as the best available on-chain estimate.

Were Triple-A customer funds stolen? According to Triple-A's statement, no. Client funds sit in trust accounts with safeguarding institutions that were not exposed, and the company does not provide digital asset custody for customers. The loss hit Triple-A's own treasury. Merchant deposits that arrived at compromised addresses during the window are a settlement question between Triple-A and those merchants, and the company says it can meet its liabilities.

What caused the Triple-A hack? Unknown as of July 30, 2026. Researchers describe a hot wallet compromise rather than a smart contract flaw, and Triple-A has not disclosed how the access occurred. Because the drain spanned seven chains including Bitcoin, our reading is that the failure sits in the signing orchestration or approval policy layer rather than in a single leaked private key. That is an inference from the footprint, not a confirmed finding.

Would an audit have prevented this? No. There was no exploited contract to audit. The controls that map here are runtime transaction monitoring, destination allowlisting in signing policy, and a playbook that can disable deposit addresses across every chain at once.

Why did the loss keep growing after the attack was public? Because the compromised addresses were still Triple-A's published merchant deposit addresses. New payments kept arriving and were swept on receipt for 31 hours. Deposit addresses live inside customer checkout integrations, which makes them slow to rotate and dangerous to leave live.


Sources / References

Dmitry Serdyuk
Dmitry Serdyuk

Co-Founder & CDO

Full-Stack Operator | Building across security, AI, and digital infrastructure.