No. 25 · 13 November 2026 · Security · Supply Chain

The Binance heist, Part Two: the route to the signing service, and where the assets went

Binance says a tampered install, a fake job interview and an internal AI tool led to its signing service. Part Two tests the one detail that public source code can check, and follows the stolen assets two hops on chain.

On 29 October 2026 an attacker took control of Binance's hot wallet "Binance14", using 50 valid signatures from that wallet's key 1. Binance says the attacker reached an internal wallet signing service, and gives no mechanism 2. A hot wallet is an exchange account kept online so it can pay customers quickly. Part One measured how those signatures worked on the Ethereum blockchain. Part Two asks two other questions: how the attacker reached the signing service, and where the assets went. The first is known only from Binance's self-reported initial report, which describes a tampered software install, a fake job interview and an internal AI tool, and gives no mechanism for the last step 2. We test the one part of it that can be checked against public source code, a file size, and find it consistent with a clean install by our arithmetic, untested on a real machine 1. For the second question, our own measurements from the replies of two public Ethereum data providers follow the assets two hops from the wallets that received them. Before the theft, the attacker's fuel money that we traced came through a mixer. After it, at the addresses we followed, we saw speed, fresh addresses and waiting, and no mixer on our incomplete list 1. We compute no dollar values. Sources are read through 12 November 2026.

"We" is hwtn.io's research pipeline. AI models read the sources, ran the measurements and drafted this text. Three AI models from three different labs fact-checked the text it was split from, and a person, the author, made the rulings.

We decoded the transactions ourselves from the replies of two public Ethereum data providers 1. A node is a computer running Ethereum's software with a copy of the shared record. A provider answers questions through an endpoint that may sit in front of several nodes or shared infrastructure, so two providers are not proven to be two independent nodes. We followed the attacker's funding, the two receiving addresses and the two USDT hop addresses to 12 November 2026 1. An address is the public identifier of an account on the chain, a string beginning 0x. We used no explorer for these values, except where a Blockscout read is cited. An explorer is a website that indexes the chain for searching. We computed no dollar values, so every USD figure here belongs to the party named beside it1. (If you see a dollar sign, it isn't ours.) We also measured the size of one source-code file at a published version 1.

The admission rule is short. A factual point appears only if it rests on a primary source, a legitimate secondary source marked for what it is, or two weak sources that do not derive from each other. Our own readings stay in, labeled as readings. The claim register at the end gives each claim's status.

Binance's 3 November report is the victim's own account, and it calls itself "our initial report" 2. Our copy is text saved on 11 November 2026, not compared with the live page. We have read no later Binance statement. Chain times are UTC. Binance gives no time zone for its reported deployment interval of 17:15 to 19:56.

A reading note. This is Part Two of two, and each part is meant to stand alone. If a term is new, it is in bold where it first appears and again in the glossary at the end. The long strings beginning 0x are addresses and transaction IDs. They are there so anyone can check our work. You are allowed to skip them.

Part One measured the theft itself on Ethereum. You need five facts from it here, and a little vocabulary to carry them. A smart contract is a program stored on the chain. Under EIP-7702, a 2025 change to Ethereum, an ordinary key-controlled account can sign a short authorization letting it run a contract's code as its own. That arrangement is called a delegation3. At 20:20:59 UTC on 29 October, one transaction carried 50 such authorizations, every one carrying a valid signature from Binance 14's key, and one took effect 1. Binance 14 then ran the attacker's sweeper, a contract for moving everything out of an account, until Binance cleared it 3 hours 49 minutes 36 seconds later 1. The assets went to two receiving addresses, the attacker's first destinations, of which 0x5227f603…

2f8c

took most 1. A token issuer can blacklist an address, which freezes the issuer's tokens there. Tether did so to that address at 21:01:35 1.

One party tells the story of how the attacker reached the signing service, and that party is the victim. Only one detail of the story can be checked against public code. Everything attributed to Binance here is self-reported. Binance does not say how each event led to the next, so we do not treat the series as an established chain of cause and effect 2. Four dated events follow. Read them as a list of things Binance says happened, in order, and no more than that.

The Witness

June 2026. Engineer A "downloaded a tampered Homebrew installation". Homebrew is a popular tool for installing software on Macs. Binance says it "detected the anomaly, replaced the device, and rotated all related credentials", and that his role "was exposed to the hacker" 2. Palo Alto Networks, a security vendor, goes further and states without hedging that the engineer clicked a poisoned search ad that delivered MacSync Stealer, a password-stealing program. Binance's report links to a write-up of that chain without saying it applies 132.

September 2026. A fake recruiter approached Engineer B through "a legitimate job-hunting platform" and, after two interviews, he ran an "assignment" on his work computer2. Fortune reports that Binance executives named LinkedIn 16. Binance does not say whether June's exposure led to September's approach. We ask.

20 October. The attacker "used an internal AI tool to gain control over" Engineers A and C, and found a container deployment token on A's computer 2. A container deployment token is a credential that lets someone launch software on a company's servers. A hypothesis, and only that: if the tool held standing access to engineers' machines, it acted as a privileged go-between. Binance gives no mechanism.

29 October. "between 17:15 and 19:56", a container was deployed from C's computer with A's credentials 2. Then: "The attacker exploited unauthorized access to an internal wallet signing service to initiate transactions outside the normal withdrawal process" 2. A signing service is the internal system that produces the cryptographic signatures a company's wallets need. Again, Binance gives no mechanism.

The Interview

The pyenv trace. This is the one detail we can check, so it gets the slow treatment. pyenv is a tool developers use to manage versions of the Python programming language. Its main program is a short script at libexec/pyenv. When Homebrew installs it, Homebrew writes its own install location, the install prefix, into the file. The prefix is /opt/homebrew on Apple Silicon (M-series) Macs and /usr/local on older Intel Macs. Binance's September account lists pyenv file operations on Engineer B's work computer. A file .../libexec/pyenv of 3,344 bytes was deleted and replaced by a 3,414-byte file, 70 bytes longer, which was created as /opt/homebrew/Cellar/pyenv/2.8.0/libexec/pyenv_ and renamed into place 2. The Cellar is the folder where Homebrew keeps installed programs. The report shortens the deleted file's path, and we take it to be the same Cellar directory.

The Long Label

Now the arithmetic, which is short. libexec/pyenv at version 2.8.0 is 3,341 bytes, and Homebrew's recipe for 2.8.0, its install instructions for pyenv (commit bf0434b5e824, one recorded change in the recipe's history), replaces the file's one /usr/local with the install prefix 156. /opt/homebrew is three characters longer, so that adds 3 bytes. Does Binance's number match? By our arithmetic, yes: a clean Homebrew install of pyenv 2.8.0 on an Apple Silicon Mac would be 3,344 bytes, matching Binance's figure. We have not tested a real install 1. pyenv 2.8.0 was released on 13 July 2026, and Homebrew carried it until 18 July 18. Homebrew's documented install records include no per-file fingerprints that would show a later change to the file 7. The short version: by our arithmetic, the deleted file was the size an ordinary install would produce. That is consistent with it being untouched. It is not proof.

Binance calls the malware "0-day malware" without defining the phrase. A zero-day usually means a flaw or tool unknown to defenders when it is first used. Binance says its endpoint protection, the security software on employees' computers, did not detect the malware at the time. That is a statement about detection. It does not establish whether the malware or any exploited vulnerability was previously unknown 2. Binance also reports that it "detected and prevented 57 suspected North Korea-linked cyber threat cases" in 2026, a count with no denominator 2. (Fifty-seven of how many? The report doesn't say.) It lists remediation steps. StepSecurity, a security vendor, notes "These remediation steps have not yet been independently verified", and we found no verification 212.

By Binance's account the route ran through developers' own machines, and the one detail we could check against public code, a byte count, is consistent with a clean install, not proof of one.

Attribution. The FBI's alert of 31 October 2026, as reported by The Record and BleepingComputer, says North Korea "was responsible for the theft of more than $6 billion USD in virtual assets from cryptocurrency exchange Binance, on or about October 29, 2026", and calls the activity "TraderTraitor" 41415. Binance's report, as published on 3 November, relays the FBI and makes no attribution of its own 2. TRM Labs, Chainalysis and Elliptic, which sell tracing services, each attribute the theft to North Korea 91011. Elliptic hedges: its page, as read on 12 November 2026, says the FBI named a group "which Elliptic has already assessed as the likely culprit" 11. North Korea denies involvement and calls the claims "fabrication", according to Reuters citing KCNA, North Korea's state news agency, read in a syndicated copy, and SBS, read in machine translation 1718.

Tracing means following assets from address to address on the public chain. Each step from one address to the next is a hop. Follow the money, the advice goes, and it never says how far. We followed the attacker's funding backwards and the stolen assets forwards, to a limited depth.

Funding. Every Ethereum transaction pays a small fee in ETH, often called gas money, so the attacker's account needed ETH before it could act. A mixer is a service that pools many people's deposits, so that a withdrawal cannot easily be linked to the deposit that funded it. Tornado Cash is one. On 28 and 29 October the attacker's account received three payments of about 0.098 ETH, each from contract 0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc in a call to 0xd90e2f925DA726b50C4Ed8D0Fb90Ad053324F31b, and 1.082218 ETH from a second account, itself paid by that contract and by 0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936 through the same route 1. Tornado Cash's own documentation lists those addresses as its 0.1 ETH pool, router and 1 ETH pool 20. A pool holds deposits of one fixed size, and the router is the contract users call to reach the pools. The designation, or sanctions listing, that the US Treasury's sanctions office (OFAC) issued on 8 August 2022 listed all three 21, and Treasury lifted it on 21 March 2025 22. Maborak had labeled two of the payments as Tornado Cash withdrawals 19. The table below lists every rise in the two funding accounts' ETH balances that we traced before the theft.

Time (UTC)Paid toETHPaid by
28 Oct 07:39:47Attacker's account 0x7c8601d4…5ca00.098257Tornado Cash 0.1 ETH pool, through the router
28 Oct 08:53:59Attacker's account0.097893Tornado Cash 0.1 ETH pool, through the router
29 Oct 07:08:35Second account 0xe4f9070e…74cd0.097942Tornado Cash 0.1 ETH pool, through the router
29 Oct 08:23:11Attacker's account0.097943Tornado Cash 0.1 ETH pool, through the router
29 Oct 14:54:47Second account0.994396Tornado Cash 1 ETH pool, through the router
29 Oct 16:47:23Second account1.0No payer traced; received in the block in which the attacker's account called its third test account
29 Oct 18:20:47Attacker's account1.082218Second account, direct transfer

Data: Hawthorne's on-chain measurements 1: the payments into the attacker's two accounts, as measured 12 November 2026.

The Mixer

The first receiving address. It did not dawdle. 0x5227f603…2f8c sent on 700,000,000 USDT within nine minutes of the first sweep, in two transfers, 500,000,000 at 20:30:11 and

200,000,000 at 20:33:23, both before Tether's blacklist 123. USDT is Tether's stablecoin, a token designed to hold the value of one US dollar. Each transfer went to an address that had never sent a transaction, and each of those was sent 0.5 ETH a minute or two before its USDT 1. What stayed at the receiving address is frozen: on 12 November 2026 it held 1,175,464,712.88 USDT and exactly 823,000,000 USDC, Circle's stablecoin 1.

Nearly all the ETH it sent went to two more fresh addresses: 197,460 ETH to 0x8532fa14… 43d4, of which 195,460 at 20:38:47 on 29 October, and 17,260.1 ETH to 0x03b0ee5d…20ea on 30 October 1. On 12 November neither had ever sent a transaction, and they held 197,460.0169 and 17,260.1065 ETH, 214,720.12 ETH together 1. That is more than the 172,624.4046 ETH that the attacker's five sweeps took from Binance 14 directly 1. Where did the extra come from? The likeliest source of the difference is ETH the attacker got by selling other stolen tokens. That is our reading, and we did not measure the other sources1.

Long Stay

The receiving address sent 729 transactions, the last at 08:17:59 on 31 October. Of those, 655 fell between 01:00 and 04:00 UTC on 30 October, and 598 were calls with swap-router selectors to five contracts 1. That sentence needs three definitions. A decentralized exchange is a set of smart contracts that swaps one token for another with no company in the middle, and a router is the contract you call to make a swap. A function selector is the first four bytes of a call's input, naming the function called, the way a menu number names a dish without saying what is in it. A selector shows which function was named, not what the call did. Our reading is that these calls sold the other stolen tokens for ETH. We have not checked the contracts' code or traced the calls to confirm it.

Counted by the hour each was sent, the address's 729 transactions show the burst.

Hour beginning (UTC)Sent
29 Oct 20:005
29 Oct 21:007
29 Oct 22:008
29 Oct 23:004
30 Oct 00:0013
30 Oct 01:00168
30 Oct 02:00338
30 Oct 03:00149
30 Oct 04:007
30 Oct 05:002
30 Oct 10:001
30 Oct 11:001
30 Oct 17:002
31 Oct 04:005
31 Oct 05:001
31 Oct 06:002
31 Oct 07:0015
31 Oct 08:001
Transactions sent by the first receiving address, by hour (UTC). 729 in all, 338 of them in the hour from 02:00 on 30 October.

Data: Hawthorne's on-chain measurements 1: the receiving address's 729 transactions, counted by hour, as measured 12 November 2026.

The two hop addresses. 0x9749292d…c762, which received the 500,000,000 USDT, sent 11 transactions, all on 29 October, including 175,000,000 USDT to one further address and 122,310 ETH to another 1. 0x0ddf0480…697e, which received the 200,000,000 USDT, sent 6, including 190,000,000 USDT and 3,552 ETH to a single further address 1. On 12 November each held under 0.001 USDT 1. How either came to hold ETH is not measured. Neither sent a swap for those amounts, and we traced neither the spenders they approved nor the ETH arriving. A token holder can approve another address to spend its tokens, and that address is then an approved spender. Chainalysis, a tracing vendor, describes a stablecoin-to-ETH swap 10. We measured none at these addresses.

The second receiving address. 0xa97bf783…8d10 received the ETH of the last two sweeps, sent 1,318 transactions, 1,147 of them calls with swap-router selectors to four contracts, and passed on 11,137.5332 ETH, nearly all to four addresses. It held no ETH on 12 November 1.

The diagram below also shows a third source wallet. It is the one Part One describes from another publisher's label, Binance 16, which sent the first receiving address 55,739,800.50 USDT at 20:24:47 1.

FromToAmountWhen (UTC)
0x5227f603…2f8c (first receiving address)0x9749292d… c762 (hop)500,000,000 USDT20:30:11, 29 Oct
0x5227f603…2f8c0x0ddf0480… 697e (hop)200,000,000 USDT20:33:23, 29 Oct
0x5227f603…2f8c0x8532fa14… 43d4197,460 ETH195,460 at 20:38:47, 29 Oct; the rest on 30 Oct
0x5227f603…2f8c0x03b0ee5d… 20ea17,260.1 ETH30 Oct
0x9749292d…c762one further address; another175,000,000 USDT; 122,310 ETH29 Oct
0x0ddf0480…697eone further address190,000,000 USDT and 3,552 ETH29 Oct
0xa97bf783…8d10 (second receiving address)nearly all to four addresses11,137.5332 ETH29 Oct onward
Held on 12 November 2026Amount
0x5227f603…2f8c1,175,464,712.88 USDT and 823,000,000 USDC (frozen)
0x8532fa14…43d4197,460.0169 ETH
0x03b0ee5d…20ea17,260.1065 ETH
Each hop addressunder 0.001 USDT
0xa97bf783…8d10no ETH
Where the assets went, as far as we followed them. The first receiving address still holds the stablecoins the issuers froze; the ETH sits in two fresh addresses that have never sent a transaction; 700,000,000 USDT left through two hop addresses before Tether's blacklist.

Data: the rows above restate figures given in this essay, from Hawthorne's on-chain walks 1 of four addresses, as measured 12 November 2026.

Mixing (our reading). As far as we followed things, the mixer was for the gas money. Before the theft, all of the attacker's gas money that we traced came through a mixer: four payments from the 0.1 ETH pool and one from the 1 ETH pool, to two accounts 120. The 1.0 ETH that reached the second account at 16:47:23 has no payer traced, so it counts neither for nor against this reading 1. And after the theft? Our list of mixer contracts has eleven entries and is not complete. None of the eleven appears at any address we followed 1. What appears instead is speed, hop addresses funded with gas beforehand, round-amount splits, apparent exchange sales, and parking, assets left untouched at fresh addresses. We followed two hops for USDT and one for ETH, to 12 November. "No mixer seen" describes these addresses in this window, not the funds' later path, and a check against eleven known contracts is weak evidence of absence. Eleven is what we had.

As far as we followed them, the gas money came through a mixer, and what moved the stolen assets was speed, fresh addresses and waiting.

A byte count is not a hunting rule. Our reading: a "not 3,344 bytes" rule would flag clean installs under other prefixes, such as 3,341 bytes under /usr/local1.

Self-reported is not established. The June, September, 20 October and 29 October events are Binance's account alone. Vendor write-ups that restate it are not independent of it 21213.

Three vendors are not three witnesses. TRM Labs, Chainalysis and Elliptic each attribute the theft to North Korea, after or alongside the FBI. They sell tracing services, and we have not established how far their attributions rest on the same evidence 91011.

A selector is not a swap. Our "sales" reading rests on function names, not traced calls 1.

Three Weather Vanes

Our recommendations are afterwit, the wisdom that arrives after it was needed, and none has been tested:

Each claim names the result that would disprove it, and you are welcome to go find one. Claims not marked as readings are measurements.

Every term below is also defined where it first appears.

libexec/pyenv

at tag v2.8.0. https://raw.githubusercontent.com/pyenv/pyenv/v2.8.0/libexec/pyenv (accessed 2026-11-11; measured 2026-11-12). Primary: source code at a tag.

bf0434b5e824

(pyenv 2.8.0). https://raw.githubusercontent.com/Homebrew/homebrew-core/bf0434b5e824/Formula/p/pyenv.rb (accessed 2026-11-12). Primary: source code at a pinned revision.

general/tornado-cash-smart-contracts.md

; title not captured. https://github.com/tornadocash/docs (archived copy read; accessed 2026-11-12). Primary: the project's own documentation of its contract addresses.

"Measured" means read or computed by us from node data on 12 November 2026. It is our own provenance label, and apart from the Blockscout read described under Limits, no second party has reproduced the values. "Stated" means the named party says it and we have not verified it. "Our reading" is editorial.

Claim (short)RefTestStatus
Recap: one transaction at 20:20:59 UTC carried 50 authorizations with valid Binance 14 signatures; one took effect; the delegation stood 3 h 49 min 36 s[1][3]primaryMeasured (Part One)
Recap: Tether blacklisted the first receiving address at 21:01:35[1]primaryMeasured (Part One)
June: tampered Homebrew, device replaced, credentials rotated, role exposed[2]primary, self- reportedStated by Binance
June vector: poisoned ad delivering MacSync Stealer[13][2]legit secondaryPalo Alto Networks' assertion; not in Binance's report
September: fake recruiter, two interviews, "assignment" on a work computer[2]primary, self- reportedStated by Binance
The platform was LinkedIn[16]legit secondaryFortune's reporting; one outlet
Did June's exposure select September's target?[2][16]editorialOpen question
20 October: internal AI tool used to gain control over A and C; token found[2]primary, self- reportedStated by Binance; no mechanism
The AI tool acted as a privileged intermediary[2][12]editorialHypothesis
29 October, 17:15 to 19:56: container deployed from C's computer with A's credentials[2]primary, self- reportedStated by Binance
Unauthorized access to an internal wallet signing service[2]primary, self- reportedStated by Binance; no mechanism
pyenv trace (September, Engineer B's work computer): 3,344 bytes replaced by 3,414; difference 70[2]primary, self- reportedStated by Binance
libexec/pyenv at v2.8.0 is 3,341 bytes; formula substitution gives 3,344 under /opt/homebrew[1][5][6]primaryMeasured (arithmetic on source)
A clean Apple Silicon install would be 3,344 bytes[1][2]editorialOur reading; not tested
A "not 3,344 bytes" rule would flag 3,341 under / usr/local[1]editorialOur reading
pyenv 2.8.0 released 13 July 2026; Homebrew carried it until 18 July[1][8]primaryMeasured
Homebrew's documented receipt fields include no per-file hashes[7]primaryRead from documentation
"0-day malware" was not detected by endpoint tools at the time; the phrase is not defined[2]primary, self- reportedStated by Binance; novelty not established
57 suspected cases "detected and prevented" in 2026[2]primary, self- reportedStated by Binance; no denominator
Remediation steps not independently verified[2][12]primary, legit secondaryBounded by what we read
FBI: North Korea "was responsible"; activity called "TraderTraitor"[4][14][15]primaryThe FBI's attribution
Binance relays the FBI and makes no attribution of its own[2]primaryTrue of the report as published 3 November
TRM Labs, Chainalysis and Elliptic attribute the theft to North Korea[9][10][11]legit secondaryEach vendor's attribution; Elliptic's own assessment is worded "likely"
North Korea denies involvement, calling the claims "fabrication"[17][18]legit secondaryReported; KCNA original not opened
Attacker's account funding: three payments of about 0.098 ETH (28 Oct 07:39:47, 28 Oct 08:53:59, 29 Oct 08:23:11) from 0x12D66f87…b8Fc through 0xd90e2f92…f31b ; 1.082218 ETH at 18:20:47 on 29 Oct from a second account paid by 0x12D66f87…b8Fc and 0x47CE0C6e…2936 the same way[1]primaryMeasured
Those three contracts are Tornado Cash's 0.1 ETH pool, router and 1 ETH pool[20][21]; two payments labeled earlier by [19]primaryEstablished from Tornado Cash's documentation; the same addresses were on OFAC's designation of 8 August 2022, which Treasury lifted on 21 March 2025 [22]
All of the attacker's gas money came through a mixer: four payments from the 0.1 ETH pool and one from the 1 ETH pool, to two accounts[1][20]primary; editorialPayments measured, for the two accounts walked; that they were all of the gas money is our reading
First receiving address sent 700,000,000 USDT in two transfers, 20:30:11 and 20:33:23, before Tether's blacklist[1][23]primaryMeasured; confirmed in Blockscout's index
The two USDT recipients had never sent a transaction; each was sent 0.5 ETH (20:29:11 and 20:31:35) a minute or two before its USDT; the 700,000,000 USDT left within nine minutes of the first sweep[1]primaryMeasured
Receiving address held 1,175,464,712.88 USDT and 823,000,000 USDC on 12 November 2026[1]primaryMeasured as of 12 November 2026
First receiving address sent 197,460 ETH to 0x8532fa14…43d4 (195,460 at 20:38:47 on 29 Oct; 2,000 on 30 Oct) and 17,260.1 ETH to 0x03b0ee5d…20ea on 30 Oct; on 12 Nov these held 197,460.0169 and 17,260.1065 ETH, 214,720.12 together, and had never sent a transaction[1]primaryMeasured as of 12 November 2026
The 214,720.12 ETH exceeds the 172,624.4046 ETH swept from Binance 14; the likeliest source of the difference is ETH from selling other stolen tokens[1]primary; editorialExcess measured; source is our reading, not measured
First receiving address sent 729 transactions, the last at 08:17:59 on 31 Oct; 655 between 01:00 and 04:00 UTC on 30 Oct; 598 calls with swap-router selectors to five contracts[1]primaryMeasured
Those contracts are decentralized-exchange routers and the calls sold the other tokens for ETH[1]editorialOur reading; selectors only; no calls traced; no exchange named
Hop 0x9749292d…c762 (500,000,000 USDT in): 11 transactions, all 29 Oct, incl. 175,000,000 USDT and 122,310 ETH to two further addresses. Hop 0x0ddf0480…697e (200,000,000 USDT in): 6 transactions, incl. 190,000,000 USDT and 3,552 ETH to one further address. Each held under 0.001 USDT on 12 Nov[1]primaryMeasured
How the hop addresses came to hold ETHnonenoneNot measured
A stablecoin-to-ETH swap[10]legit secondaryChainalysis's statement; no such swap measured by us at the hop addresses
Second receiving address 0xa97bf783…8d10 received the ETH of the last two sweeps; 1,318 transactions, 1,147 of them calls with swap- router selectors to four contracts; 11,137.5332 ETH sent, nearly all to four addresses; no ETH on 12 Nov[1]primaryMeasured as of 12 November 2026
No mixer contract on our list of eleven appears at any address we walked[1]primaryMeasured; the list is not complete
After the theft, at the addresses walked: speed, hop addresses funded with gas a minute or two ahead, round-amount splits, apparent exchange sales and parking, and no match to our eleven- contract mixer list[1]editorialOur reading; two hops for USDT, one for ETH; these addresses in this window only
Funding table: 0.097893 ETH (28 Oct 08:53:59) and 0.097943 ETH (29 Oct 08:23:11) to the attacker's account; 0.097942 ETH (29 Oct 07:08:35) and 0.994396 ETH (29 Oct 14:54:47) to the second account from the 0.1 ETH and 1 ETH pools; 1.0 ETH to the second account at 16:47:23 on 29 Oct with no payer traced[1]primaryMeasured
Hourly counts of the first receiving address's 729 transactions (table F2-3)[1]primaryMeasured
A device-bound token could have restricted replay from C's computer[2]editorialHypothetical
Treat outside "assignments" as untrusted code; do not hunt on a single byte count[1][2]editorialOur recommendations; untested

References

  1. 01Hawthorne (hwtn.io). "Hawthorne on-chain measurements, t0401, 12 November 2026: PLAN.md, measure.py, results.json, RESULTS.md." Evidence folder, measured 2026-11-12 from JSON-RPC replies of two public Ethereum data providers (eth.drpc.org, ethereum-rpc.publicnode.com). Includes the funding traces and address walks added the same day (RESULTS.md sections M8 to M13; walk_address.py, walk60.py and their output files), and the pyenv byte-count measurement. Primary (our own measurements; items we mark as readings are editorial).
  2. 02Binance. "29 October 2026 Binance Security Incident: Initial Findings and Response Update." Binance Blog, 2026-11-03. https://www.binance.com/en/blog/community/3229153443759566763 (accessed 2026-11-11). Primary, self-reported: Binance's own account of itself. Text saved to our files; not compared with the live page.
  3. 03Ethereum Improvement Proposals. "EIP-7702." https://eips.ethereum.org/EIPS/eip-7702 (accessed 2026-11-11). Primary: the specification.
  4. 04Federal Bureau of Investigation. Alert, title as recorded in our notes: "North Korea Responsible for $6 Billion+ Binance Attack." fbi.gov, 2026-10-31. https://www.fbi.gov/investigate/cyber/alerts/2026/north-korea-responsible-for-6-billion-binance-attack (archived copy read; accessed 2026-11-11). Primary: government record, cited for its own words.
  5. 05pyenv.
  6. 06Homebrew. Formula for pyenv at commit
  7. 07Homebrew. Tab class documentation. https://docs.brew.sh/rubydoc/Tab.html (accessed 2026-11-11). Primary: documentation generated from Homebrew's source.
  8. 08pyenv. v2.8.0 release page. GitHub, 2026-07-13. https://github.com/pyenv/pyenv/releases/tag/v2.8.0 (accessed 2026-11-11). Primary: the project's release record.
  9. 09TRM Labs. "North Korea Steals USD 6.36 Billion From Binance in the Largest Hack in History." https://www.trmlabs.com/resources/blog/north-korea-steals-usd-6-36-billion-from-binance-in-the-largest-hack-in-history (accessed 2026-11-11). Secondary (vendor analysis; sells related services).
  10. 10Chainalysis. "The $6.4 Billion Binance Hack: Tracing the North Korea Link." 2026-10-30, revised. https://www.chainalysis.com/blog/binance-exploit-latest-findings-and-response/ (accessed 2026-11-11). Secondary (vendor analysis; sells related services).
  11. 11Elliptic. "The largest theft in history: North Korea behind the $6.4 billion Binance hack." Headline as read on 12 November 2026; the page's browser title reads "North Korea likely behind". 2026-10-30, updated 2026-11-01. https://www.elliptic.co/insights/binance-largest-hack-in-history/ (accessed 2026-11-11). Secondary (vendor analysis; sells related services); quotes Binance.
  12. 12StepSecurity. Title not captured. 2026-10-30, updated 2026-11-03. https://www.stepsecurity.io/blog/binance-hack-developer-machine-security (accessed 2026-11-11). Secondary (vendor analysis; sells related services); reads .
  13. 13Palo Alto Networks. Title not captured. 2026-11-09. https://www.paloaltonetworks.com/blog/security-operations/how-a-developer-endpoint-became-the-path-to-binances-6-3b-heist (accessed 2026-11-11). Secondary (vendor analysis; sells related services); reads and adds its own unhedged assertion about June.
  14. 14The Record. Title not captured. https://therecord.media/fbi-blames-tradertraitor-for-binance-hack (accessed 2026-11-11). Secondary (journalism); restates .
  15. 15BleepingComputer. Title not captured. 2026-11-01. https://www.bleepingcomputer.com/news/security/fbi-links-63-billion-binance-crypto-heist-to-north-korean-hackers/ (accessed 2026-11-11). Secondary (journalism); restates .
  16. 16Fortune. Title not captured. 2026-11-03. https://fortune.com/2026/11/03/binance-hack-details-linkedin/ (accessed 2026-11-11). Secondary (journalism); Binance executives speaking to reporters.
  17. 17Reuters, via Devdiscourse. "North Korea says claims linking it to Binance heist are 'fabrication,' KCNA says." 2026-11-03. https://www.devdiscourse.com/article/international/4000913-north-korea-says- claims-linking-it-to-binance-heist-are-fabrication-kcna-says (accessed 2026-11-11). Secondary (journalism); a Reuters wire report read on a syndicating site; restates KCNA.
  18. 18SBS News. Title not captured. 2026-11-03. https://news.sbs.co.kr/english/endPagePrintPopup.do?news_id=N1008827440 (accessed 2026-11-11). Secondary (journalism); the cited English page is labeled by SBS as AI-translated and potentially containing errors.
  19. 19Maborak. Title not captured. https://www.maborak.com/blog/binance-incident-root-cause-evidence (accessed 2026-11-11). Weak: individual's blog. Cited only as prior publication.
  20. 20Tornado Cash. Documentation file
  21. 21US Department of the Treasury, Office of Foreign Assets Control. Recent actions, 8 August 2022: designation of Tornado Cash; title not captured. https://ofac.treasury.gov/recent-actions/20220808 (archived copy read; accessed 2026-11-12). Primary: government record, cited only for the addresses it lists.
  22. 22US Department of the Treasury. "Tornado Cash Delisting." Press release, 2025-03-21. https://home.treasury.gov/news/press-releases/sb0057 (accessed 2026-11-12). Primary: government record, cited only for the removal of the 2022 designation.
  23. 23Blockscout. Ethereum mainnet explorer API: USDT transfers of the receiving address. https://eth.blockscout.com/api/v2/addresses/0x5227f603C1eE34CE3C06eFe6477003BDfCCB2f8c/token-transfers?type=ERC-20&filter=from&token=0xdAC17F958D2ee523a2206206994597C13D831ec7 (accessed 2026-11-12). Primary: an explorer's index of chain data, read during fact-checking; not part of ; address labels are Blockscout's.