14 December 2023. An attacker took over the npm account of a former Ledger employee, reportedly using a stolen session token that bypassed two-factor authentication, on access rights that had never been revoked.
They published malicious versions of Ledger Connect Kit, a JavaScript library that decentralised applications embed in their front ends so that wallets can talk to them.
Anyone visiting an affected site got served a wallet drainer. The affected sites included front ends of SushiSwap, Kyber, revoke.cash and Zapper. Yes, including revoke.cash, which is the tool people use to undo exactly this kind of problem.
Ledger shipped a fix within about 40 minutes. At least $600,000 was taken in that window.
Now the part that makes this the opening autopsy for a taxonomy lesson.
The victims were using hardware wallets, and the hardware wallets worked perfectly. No private key was exposed. No device was compromised. The secure element did precisely what it is built to do.
What was compromised was a JavaScript dependency in a web page, several layers away from any key. The device was shown a transaction and it signed it, faithfully, as designed.
Where your key lives and how large your attack surface is are two different questions. The product category only ever answers the first one.
"Buy a hardware wallet" is the first advice most people receive, and it gets repeated as though hardware were the security and software were the danger. Neither is true, and the honest version is more useful.
Three axes, not a list of products
Stop sorting by brand and sort by properties. Every wallet is a point in a space with three axes.
Axis 1: who holds the key. Custodial or self-custodial. F103-03 settled this one, and it is the axis that determines whether you own an asset or a claim.
Axis 2: where the key is during signing. Hot means the key is in the memory of a general-purpose, networked computer at the moment it signs. Cold means it is not.
Axis 3: how many keys are required. Single signature, or multiple, which J-level courses develop and which matters here only as a category.
A product name tells you almost nothing about these. "Wallet" is applied to custodial exchange accounts, browser extensions, phone apps, USB devices and multi-party arrangements. Ask the three questions and the marketing stops mattering.
What hardware actually is
The difference between a hardware and a software wallet is one sentence: where the private key lives at the moment of signing.
In software, the key is loaded into the memory of a machine that also runs your browser, your email, and everything you have ever installed. Any malware on that machine is, in principle, in a position to read it.
In hardware, the key lives on a small device that does one thing: hold keys and produce signatures. The computer sends a request, the device signs internally, the signature comes back. The key never crosses.
That is real, it is the right answer for any meaningful balance, and it is the only thing hardware does that software does not. Everything else follows from that one property.
What it does not do
This is where the modern losses live, and it is worth being blunt because the marketing is not.
A hardware wallet does not protect you from:
Being persuaded to type your seed somewhere. The device has no idea what you are doing on your laptop. The course autopsy is fifty people with hardware wallets typing their recovery phrase into a fake application, and the device's key never left it because it never needed to.
Signing a transaction you did not read. The device signs what it is shown. F105 is a whole course on this and Connect Kit is what it looks like when the thing showing you the transaction is hostile.
Sending to a lookalike address. The device has no opinion on whether the destination is the one you meant.
Losing the device with no backup. Broken, lost, burned. Without the seed backed up, identical to never having had it, which is F104-04.
The single most common mistake with a hardware wallet is treating its screen as packaging.
That screen exists so you can verify, on a device the attacker cannot reach, exactly what you are about to authorise. It is the one display in your entire setup that a compromised laptop cannot lie on.
Read the address. Read the amount. Read the contract call. If you sign without reading, you own a hardware wallet with the security model of a software wallet, plus friction. In the Connect Kit attack, the transaction shown on those small screens was not the transaction the users thought they were making.
Key location is not attack surface
This is the sentence to take from the lesson.
Key location is one question: where does the signing secret sit. Hardware answers it well.
Attack surface is a different question: everything that can influence what gets signed. Your browser. Extensions. The dApp's front end. Every JavaScript dependency in that front end, and every dependency of those. The companion application. The npm account of somebody who left the company two years ago.
Connect Kit compromised the second while the first was untouched, and the funds still left.
Which produces the honest ranking. Hardware moves you decisively out of one threat category, the one where malware reads your key. It leaves you fully exposed to the categories that F106-01's taxonomy shows are more common: conversation and authorisation. Those are procedures, not products, and no purchase closes them.
Four types, four jobs
Custodial account. Someone else's key. Right for money you intend to trade or spend within weeks, and only if F103-03's ownership clause reads acceptably.
Hot software wallet. Your key, on a networked device. Right for small balances, frequent activity, experimentation and learning. A reputable software wallet holding an amount you would shrug at is a far better starting point than a hardware wallet that intimidates you into staying on an exchange.
Hardware wallet. Your key, off the networked device. Right for anything you would be upset to lose. Buy direct from the manufacturer, which F104-03 explains at length.
Air-gapped software cold storage. A general-purpose device deliberately run offline, treated as the cold store, often with multi-signature. This trades dependence on one manufacturer's supply chain for dependence on your own ability to run and verify an offline system. Done well it is comparable; done badly it is worse. XDRIP's own XColdPro is one implementation of this category, and there are independent alternatives, and this course is not going to tell you which to use.
Matching tool to job
The rule underneath all of it: if you are holding more than you can comfortably lose, your private key should not be in the memory of your everyday computer when it signs.
The form is flexible. Hardware device, air-gapped software, multi-signature. The property is not.
And once you have the property, the remaining work is unchanged, because the remaining threats were never in the category the property addresses.
A hardware wallet is a safe. Once my funds are on it, they are locked away.
The vault metaphor is the source of most hardware wallet losses, so it is worth replacing precisely.
A hardware wallet is not a safe. It is a rubber stamp in a locked room. Nobody can steal the stamp. But you carry documents into the room and stamp them yourself, and the stamp does not read what it is stamping.
Every incident in this course fits that picture. The Connect Kit victims carried in a document that had been altered. The course autopsy's victims were persuaded to hand over the machinery for making stamps. In no case was the room breached.
Which reframes the whole of F105 correctly: once you own hardware, your remaining risk is almost entirely about what you carry into the room, and that is a discipline rather than a device.
Classify by three axes rather than by product name: who holds the key, where it sits when it signs, and how many keys are needed. A hardware wallet does exactly one thing, keeping the key off your general-purpose computer, and leaves untouched the four threats that cause most modern losses: being talked into typing your seed, signing what you did not read, sending to a lookalike address, and losing the device with no backup. Key location and attack surface are different questions, which is why Connect Kit drained hardware wallet users through a JavaScript dependency without any key ever being exposed. Match the tool to the job, then keep doing the work, because the work is what the tool does not do.