
Lumi Finance: $264K Approved Without A Single Signature
The account signed. The owner was never asked.
On July 13, 2026, around $264,000 left Lumi Finance users on Arbitrum through a door that was never supposed to open. Some reports put it at $270,000, which tells you how small it was and how little anybody bothered to argue. No phishing page, no fake support, no leaked seed. The wallets were Sodium smart accounts built on ERC-4337, and the stage that is only supposed to check a transaction was allowed to change one. During validation, a signature check that could be tricked produced token approvals as a side effect. An approval is permission to move your money later. The permissions were collected wallet after wallet, then used. The day before, in a separate story that landed in the same feed, ZachXBT tied wallets funded by the LABtrade team to 18.4 million LAB sold on Aster for about $18.3 million, and the price went from roughly $1.20 to $0.55 in two days. Two different failures, one shared lesson about who is allowed to act on your behalf.
What Makes This Different
Most drains we document start with a click. You approve something, you sign something, you paste an address that is not the one you copied. Here the approval was manufactured inside the plumbing of the wallet itself. The user did nothing unusual. He submitted an ordinary transaction, the smart account asked the paymaster to cover gas, and the paymaster used that moment to set an allowance in the attacker's favour. From the outside it looked like a normal, successful transaction, because it was one.
The signature you gave was real. It just paid for a second instruction you never read.
A Quiet Transaction, A Loud Balance
The first users to notice were not looking at their wallets. They were looking at a block explorer for something else and saw an allowance sitting against an address they did not recognise. It had been there for a while.
Nothing about the original transaction looked wrong. Gas paid, action executed, wallet still full. The theft happens later, in a separate transaction, when the attacker calls transferFrom and moves the tokens he was already permitted to move. An allowance is a promise, and the chain keeps promises whether you remember making them or not.
The sweep was ordinary work after that. Tokens out of several wallets, straight into swaps, out the other side as ETH, then split and moved. Total damage around $264,000. Small by the standards of a bridge hack, and much more uncomfortable, because the flaw sat in the part of the wallet that was sold as the safe part.
Cheap gas is a feature. Delegating who pays for it turns out to be a permission question.
How A Paymaster Ends Up Approving Your Tokens
ERC-4337 exists so that a wallet can be a smart contract rather than a bare private key. That buys you social recovery, batching, session keys and gasless transactions. The trade is that a transaction now runs through several parties before it lands: a bundler, an entry point contract, the account itself, and if gas is sponsored, a paymaster.
Validation is meant to be a boring, read-only stage. Check the signature, check that somebody will pay, move on. In the Sodium account implementation, validateUserOp handed the signature check to logic that could be satisfied with a crafted ERC-1271 response, and the same call path could change state. One of the state changes available was an ERC-20 approval. That is the whole bug. Not exotic cryptography. A missing wall between the part that checks a transaction and the part that can spend your tokens.
So an operation that only claimed to verify came out the other side holding a spend permission, and the user saw a successful transaction. Wallets do not warn you about approvals you did not initiate. There was nothing to decline. The interface was honest about everything it knew, and it did not know about this.
Account abstraction moved the risk from your key to your contract. Most people upgraded the wallet and kept the old mental model.
Vocabulary Decoded
Four words carry this story, and three of them are usually skipped by people who use them every week.
Smart account (ERC-4337)
What it sounds like:
A normal wallet with a nicer app around it.
What it actually is:
A contract that holds your funds and decides for itself what counts as a valid instruction. The rules live in code you probably have not read, written by a team you probably have not met. That is a fair trade when the code is audited and narrow. It stops being fair when validation is allowed to touch balances.
Paymaster
What it sounds like:
A sponsor. Somebody covering your gas so onboarding does not hurt.
What it actually is:
A contract with a speaking part in your transaction. It gets called, it runs its own logic, and if the account lets it, that logic can leave marks. Sponsored gas is a relationship, not a gift. You are letting a stranger stand next to the till while you count.
Allowance harvesting
What it sounds like:
Jargon for a phishing site collecting approvals.
What it actually is:
Collecting spend permissions across many wallets and doing nothing with them for a while. The gap between the approval and the transfer is deliberate. It separates the moment you might have noticed from the moment it mattered, and it lets one operator drain dozens of wallets in a single tidy batch.
Market maker coordination
What it sounds like:
Professional liquidity provision. Boring, necessary, invisible.
What it actually is:
The same infrastructure can absorb a large sell without the chart noticing, or it can be the reason the chart notices all at once. When tokens move from a project treasury to an exchange in blocks of millions and the terms are private, holders are left reading order books for information the deal already contains.
None of these components is malicious by design. The damage came from letting them talk to each other unsupervised.
How The Attack Runs
Four stages. Only the last one looks like a theft.
Stage 1: Find validation that writes
The attacker reads the account and paymaster contracts looking for a path where the validation step can modify state. Approvals are the prize, because an approval is quiet and durable.
This is reading, not hacking. The contracts are public.
Stage 2: Get in the payment path
The malicious paymaster has to be the one sponsoring gas. Sometimes that is a default in the app, sometimes it is offered as a promotion, sometimes it is simply the cheapest option presented in the interface.
Free gas is a marketing channel, and marketing channels get abused.
Stage 3: Collect allowances and wait
Every sponsored transaction adds another wallet to the list. Nothing is taken yet. Balances stay untouched, so nobody has a reason to check anything.
The theft was finished before it started. Only the withdrawal was pending.
Stage 4: Sweep, swap, exit
One session of transferFrom calls empties the harvested wallets, the tokens go through a DEX into ETH, and the ETH is split across fresh addresses. From first sweep to last hop, minutes.
By the time the alerts fire, the only thing left to do is write the report.
The Timeline
What is publicly established, in order.
Before the incident: the design decision
Lumi integrates Sodium smart accounts with sponsored gas on Arbitrum. The feature works. The validation path is broader than the specification intends, and no public audit flags it in time.
Every incident of this class has a quiet period where the bug is just a feature nobody has abused yet.
The harvest
Users transact normally. Allowances accumulate against an attacker controlled address across multiple wallets. Nothing appears in any interface, because approvals are not events users are shown.
Wallet software warns about approvals you sign. It says nothing about approvals that appear.
July 13: the sweep, $264K to $270K
Tokens are pulled from the affected accounts, swapped and moved out. SlowMist and Olympix put the loss near $264,000; Verichains and GoPlus report about $270,000. Same event, different clocks. No attacker address has been published.
Losses per wallet were modest. That is why several users found out from a third party rather than a balance.
July 12 to 13: the LAB dump next door
Separately, ZachXBT traces 18.4 million LAB sold on Aster for about $18.3 million by a wallet the team had funded, then 17.9 million LAB worth roughly $7.2 million routed from Bitget into a KuCoin deposit address, with 5 million pulled out again minutes later. The team blamed large market participants. The chart went from about $1.20 to $0.55.
One story is a contract flaw, the other is a governance question. They landed on the same afternoon and taught the same lesson about delegated authority.
In both cases the money moved through channels the holders had already agreed to, without being asked again.
Signals Worth Acting On
- An allowance you do not remember grantingCheck the spender address against the contracts you actually use. An unknown spender with an unlimited amount is the whole attack, sitting in plain sight.
- Gasless transactions from a paymaster you cannot nameSponsored gas is fine when you know who is sponsoring it and why. If the app cannot tell you, that is the answer.
- A wallet upgrade that arrives with new powersSession keys, batching, automation. Useful features, and each one is a standing permission that outlives the transaction that created it.
- Treasury tokens landing on an exchange in blocksLarge transfers from project wallets to exchange deposit addresses ahead of a price move are the most reliable public warning a token gives.
- Supply that is concentrated and never explainedZachXBT has alleged insider control of most of the LAB supply and put a bounty on information about the price action. Concentration you cannot verify is a position somebody else can close on you.
The uncomfortable pattern is that none of these require you to be careless. They require you to be trusting once and busy afterwards.
The Numbers
Public figures at the time of writing.
$264,000, or $270,000 depending on the report
Across multiple Sodium smart accounts on Arbitrum, taken through harvested allowances rather than stolen keys.
Zero user signatures on the theft
The transfers were authorised by approvals set during validation, not by anything a victim confirmed.
36.3 million LAB moved in about 24 hours
18.4 million sold on Aster for about $18.3 million, 17.9 million worth roughly $7.2 million routed Bitget to KuCoin. Around $25.5 million of documented flow, and a later 47.9 million withdrawal on top.
54 to 56 percent decline in two days
LAB went from roughly $1.20 to $0.55 while the explanations were still being drafted.
The Second Story: LABtrade And The Quiet Exit
The Lumi drain needed a contract flaw. The LABtrade situation needed nothing but access and silence. Both cost holders money in the same week of July.
The size of the flow
Two movements inside two days, 18.4 million LAB sold on Aster for about $18.3 million and 17.9 million worth roughly $7.2 million routed Bitget to KuCoin. Tokens sitting on an exchange are tokens prepared for sale, whoever ends up pressing the button.
The opacity of the terms
The wallet doing the selling was first funded by the team, according to ZachXBT. The team blamed large market participants. Both statements can be published, only one of them comes with transaction hashes.
The market maker question
Liquidity providers can smooth a sale or amplify it. Without disclosure, nobody outside the deal can tell which happened, and the chart becomes the only statement anyone gets.
Allegations are not findings. What is verifiable here is the flow of tokens and the shape of the price move. Treat everything else as unproven until somebody publishes the terms.
One team lost money to a bug. The other lost it to an arrangement. The holders could not vote on either.
Why Careful Users Were Exposed
None of the usual mistakes apply here, which is the part worth sitting with.
The prompt was the safety net
Users learned to read the confirmation screen. This attack never produced one, so the habit that protects most people did nothing.
Approvals are invisible by default
No wallet shows a running list of who can spend your tokens. You have to go looking, with a separate tool, for something you were never told about.
Convenience is a permission
Gasless onboarding, batching and automation all work by letting something else act for you. Each is small. Together they are a standing power of attorney.
Audits cover contracts, not combinations
A paymaster can be correct, an account can be correct, and the interaction between them can still be a hole. Scope is where audits end and incidents begin.
The point is not that account abstraction is bad. It is that a wallet which can act on its own needs the same scrutiny you would give an employee with your bank card.
What To Actually Do
In order of how much it helps.
- Audit your allowances today. Use an allowance manager, read the spender addresses, revoke anything you cannot place. Do it for every chain you have ever transacted on, not just the busy one.
- Refuse unlimited approvals. Set the amount you need for the trade you are making. It costs a little more gas and turns a total loss into a small one.
- Know who pays your gas. If an app sponsors transactions, find out which paymaster and who deployed it. If that information is not published, use a wallet where it is.
- Split funds by function. A smart account for daily activity with a working balance, a plain externally owned account or hardware wallet for holdings. New wallet technology is worth using with money you can afford to test.
- Watch the treasury, not the tweets. For any token you hold, set alerts on the project wallets and exchange deposit addresses. Large transfers are public before the announcement is.
Checks Worth Running This Week
None of these take long, and all of them are skipped.
List every active spender
Revoke.cash or your explorer's approval tab. Anything unlimited, anything unrecognised, anything from a project that no longer exists.
Read your account contract
Find out whether your smart account is a known audited implementation or a fork. A fork is not automatically worse, but it needs its own answer.
Check the paymaster address
Verified source code, a named deployer, a published audit. Two of the three is acceptable, none is not.
Set balance alerts
An alert on outgoing transfers turns a discovery into a notification. It will not stop a sweep, it will change what you can still save.
Track project wallet flows
For tokens you hold in size, a watch list of treasury and exchange addresses is the cheapest early warning available.
Owning tokens is a maintenance job. Most people bought the position and skipped the work.
Smart Account Safety Checklist
Worth keeping next to your wallet, not in a bookmark you never open.
Revoke every allowance you cannot explain, on every chain you have used.
Approve exact amounts instead of unlimited, even when it costs more gas.
Identify the paymaster before accepting sponsored gas.
Verify whether your smart account is an audited implementation or a fork.
Keep long term holdings off experimental account types.
Set alerts for outgoing transfers on wallets that only receive.
Monitor treasury and exchange addresses for tokens you hold in size.
Treat unexplained supply concentration as a risk you are carrying, not a detail.
Got a Suspicious Message?
Use our AI-powered detector to analyze potential scams instantly.
Key Takeaways
- 1About $264,000 left Lumi Finance smart accounts through approvals created during transaction validation, with no user signature on the theft.
- 2The flaw was structural: an attacker controlled paymaster could change state in a stage that should only verify.
- 3Allowance harvesting separates the moment permission is taken from the moment money moves, which is why nobody noticed in time.
- 4In the same window, about 36.3 million LAB worth roughly $25.5 million moved through exchanges while the price fell from $1.20 to $0.55.
- 5Both events came from delegated authority that holders had already granted and could not easily inspect.
- 6Revoking allowances, approving exact amounts, knowing your paymaster and separating holdings from experimental accounts are the four defences that matter here.
The account signed. You didn't.
Frequently Asked Questions
Sources & Citations
Research for this investigation compiled from publicly available blockchain data, security reports, and community documentation.
eips.ethereum.org
eips.ethereum.org
www.coinnewsspan.com
revoke.cash
Verification: All blockchain transactions and addresses referenced in this article can be independently verified through the linked blockchain explorers. We encourage readers to conduct their own verification.
Methodology: Every case requires at least three independent sources plus verifiable on-chain evidence before publication. Full standards: /methodology
Legal notice: This assessment is based on publicly available data, including on-chain records, official statements and reported incidents. It is journalistic and educational analysis, not legal advice, an accusation of criminal conduct or a court finding. Named companies, projects, domains, wallets and individuals are described as reported by the cited sources; a company name may appear because fraudsters impersonated it, not because the company did anything wrong. If you believe something is inaccurate or out of date, write to cryptostrapon@proton.me and we will correct it and log the change. Editorial policy