A Dormant Key Nobody Had Used in Six Months Minted $216 Million
Gala Games did the hard part right. The mint function had access controls. The problem was who was still on the list: a deployer account nobody had touched in six months, whose key somebody else now had.

The Gala Games exploit is the one in this section that ends well, and the reason it ends well is worth more than the reason it happened.
GALA's token contract did have access controls on its mint function. This was not PlayDapp, where anybody with the right call could add themselves to the minter list. Gala had restricted minting to a specific set of privileged addresses, which is what you are supposed to do.
The failure was that one of those privileged addresses was a deployer account that had gone untouched for roughly six months. Nobody was using it. Nobody had revoked it. It sat on the permission list as a leftover from setup, and at some point an attacker got hold of its private key. In May 2024 they used it to mint approximately 5 billion GALA tokens, worth around $216 million at prevailing prices, and began moving them.
What happened next is the part other protocols should study. Gala's team noticed quickly, and GALA's contract included a blocklist function allowing specific addresses to be frozen. They blocklisted the attacker's address. With the destination frozen, the stolen tokens could not be moved or sold, and the funds were subsequently returned to the deployer account they had come from. The overwhelming majority of the $216 million came back.
The attacker did realise something before the door closed, reported in the low tens of millions, but against a $216 million mint that is a rounding error. Compared to PlayDapp three months earlier, where $290 million walked out and never came back, Gala's outcome is close to the best available in the circumstances.
Two things made the difference, and neither was luck. The contract had a blocklist, which is a design decision made long before an incident and one that plenty of protocols reject on principle because it means someone can freeze your tokens. That objection is philosophically coherent and it is also why several projects in this database recovered nothing. The second was speed. Blocklisting works only in the window before the attacker distributes into liquidity pools and exchanges, and Gala moved inside that window.
The dormant key is the failure worth carrying forward. Access control is not a thing you configure once. It is a list that accumulates entries, and every entry that stays on it past its usefulness is an attack surface that nobody is watching precisely because nobody is using it. A deployer account six months idle is not a live risk anyone thinks about at a standup. It is exactly the sort of thing that gets found in a leaked environment file, an old laptop, or a compromised developer machine, and it works perfectly because nothing about it ever changed.
Nobody was ever identified. No arrest has been reported. Gala's users were largely unharmed, which is the outcome that matters, and the deployer account's permissions were revoked afterward.
The Aftermath
The overwhelming majority of the minted GALA was recovered after Gala blocklisted the attacker's address and the tokens were returned to the deployer account. A smaller amount was realised before the freeze took effect. The dormant deployer account's mint permissions were revoked. No attacker has been identified and no arrest has been reported. Gala's users were largely unaffected, an outcome most protocols in this database did not achieve.
COMMENTS