Community Investigation

Binance-linked wallet incident: a delegated account, 1.615B USDT and the receiver’s branches

Philippark
Philippark

October 30, 2026

Binance Ethereum funds and authority. Official Binance and Ethereum logos with ChainBounty branding on white.

On 29 October 2026, a Binance-labelled Ethereum account was associated with a delegation transaction, followed by a large transfer of ETH and tokens to one receiver. A later transaction sent USDC from a different asset-holding account to that same receiver. The important question is how signing authority reached more than one pool of assets—and what the transaction records can actually prove.

This investigation follows that narrow Ethereum route: an operator calls a delegated account; assets converge at a receiver; the receiver splits USDT into two branches, and one branch makes a further transfer. A further USDT source also sends directly to the receiver with its own transaction sender, which is a separate signing path. The account labels describe explorer annotations. They do not independently establish custody, a person’s identity or the signing system that produced the authorization.

Scope and evidence

The selected transaction records below, excluding the explicitly attributed internal call path, are direct browser observations of Etherscan overview pages and receipt logs. SentinelTX adds a bounded trace and hypotheses; statements by Binance and an external analyst remain attributed statements. “Direct” here means the explorer record was read, not that a separate Ethereum node independently reproduced it.

Measure

Verified scope

Network

Ethereum mainnet only

First selected event

29 October 2026, 20:20:59 UTC; block 26300753

Last selected direct transfer

29 October 2026, 21:52:47 UTC; block 26301210

USDT seed amount

1,615,409,498.973240 USDT; log 519

Separate USDC transfer

780,000,000.000000 USDC; log 685

SentinelTX historical token read

Block 26301950; 30 October 2026, 00:21:23 UTC

Independent explorer review

30 October 2026; official follow-up read 31 October. This is a historical transaction selection, not a live balance or restriction audit.

Excluded

All-chain valuation, full incident loss, complete onward balances and victim returns

USDT and USDC are dollar-linked tokens, while ETH is the network’s native asset. Token quantities are preserved separately. These quantities are movements in different assets, not a dollar-loss total. The 500M, 200M and 175M transfers below are later movements of USDT; adding them to the seed amount would count funds again. No balance is inferred by subtracting this selected list from an inflow.

The three findings that survive cross-checking

First, the explorer records a delegation before the sweep, but the evidence does not explain how its authorization signature was obtained. Second, the large USDC transfer starts from a different asset account, so the transaction caller and the asset sender must be kept separate. Third, USDT branches are directly visible, while a wBETH token-contract call is not proof of a custodial exchange deposit. The sections below explain each finding in time order.

Before the sweep: what changed at the account?

An Ethereum externally owned account normally authorizes actions with a signature. EIP-7702 allows such an account to delegate execution to code. That makes a signature about execution authority different from an ordinary payment: later calls can run the delegated code in the account’s context. This is the relevant mechanism described by the official EIP-7702 specification; it does not by itself establish this incident’s root cause.

At 20:20:59 UTC, the authorization transaction succeeded. The saved explorer table displays 50 authorization rows, of which one is marked True and 49 False. A nonce is an account sequence number used to prevent an authorization from being reused. The True row has nonce 18914809 and names the delegate in the appendix. These are explorer observations; signer recovery, chain-ID validation and historical account-code reconstruction have not been independently reproduced in this report.

The delegate’s current code page shows unverified runtime bytecode containing the operator address, and a creation link naming that operator. A matching byte sequence is not a complete control-flow audit or a historical proof. The analyst’s original thread describes an operator restriction and a rejection test, but those tests were not independently rerun. Key theft, signing-service misuse and a malicious authorization request remain alternative explanations, not findings.

Three minutes later: which assets actually moved?

At 20:24:23 UTC, the selected sweep transaction shows a successful outer call from the operator to the delegated account with zero ETH in the outer transaction’s value field. This does not mean no ETH moved: the explorer separately displays an internal transfer of 167,464.247856558836135296 ETH from that account to the receiver. The USDT receipt log records the same source and destination, with raw value 1615409498973240 and six token decimals.

The transaction overview counts 63 ERC-20 transfers. This report does not present an independently decoded 63-token inventory. A reverted child-call warning is also visible alongside outer success. SentinelTX reports a failed token-transfer frame inside a larger call tree; that supports checking individual subcalls rather than treating the entire sweep as reverted.

A different transaction sender appears 24 seconds later

At 20:24:47 UTC, another transaction sends 55,739,800.500000 USDT from a Binance 16-labelled address to the same receiver. The outer transaction’s From address is this asset sender itself, and its call target is canonical USDT. Receipt log 37 contains raw value 55739800500000. This is a direct token call, unlike the earlier operator calling the delegated account.

The shared receiver links the movement, but does not explain the signature. This record prevents an overly simple claim that every selected inflow came through one delegated-account execution path. It does not establish that a second key was stolen: an operational transfer, a misused signing service and other signing circumstances remain unresolved.

After receipt: the USDT split

The receiver sent 500,000,000 USDT at 20:30:11 UTC and 200,000,000 USDT at 20:33:23 UTC to two different addresses. Both canonical USDT Transfer logs were read directly. Following Branch A forward for one selected movement, it later sent 175,000,000 USDT to a third address at 20:59:11 UTC. This is one selected onward transfer within two transfers from the central receiver, not a complete account history.

UTC, 29 October

Movement

Evidence

20:30:11

Receiver → Branch A; 500,000,000 USDT

Transfer log 700

20:33:23

Receiver → Branch B; 200,000,000 USDT

Transfer log 916

20:59:11

Branch A → next recipient; 175,000,000 USDT

Transfer log 389

Begin Figure 1 at the central receiver. The arrows show token transfers; the separate continuation from Branch A shows only the selected 175M movement. They do not show a sale, a freeze or an exchange deposit.

Receiver splits USDT into 500M and 200M branches; a selected 175M transfer continues from the 500M branch to another recipient.

Figure 1. The 175M movement is part of the earlier 500M branch. It is not an additional incident inflow.

The split is consistent with dispersal, but round amounts do not prove a laundering intent or common control of recipients. Etherscan’s editorial Insight points to a third-party tracker describing later freezes and OTC activity. Those descriptions were not adopted as verified conclusions: a transfer alone cannot identify the consideration received, the counterparty or the legal status of funds.

Later, a separate USDC account reaches the same receiver

Returning to the other source account at 20:41:23 UTC, after the two initial USDT branches, the separate USDC transaction records 780,000,000 USDC reaching the same receiver, but from a different asset-holding address. Figure 2 selects the main delegated source and the separate USDC source for comparison; the direct-signed USDT movement described earlier is not drawn. Read from the two source cards toward the central receiver. Solid arrows represent the selected observed asset movements, not account ownership or signing permissions.

Two source accounts send selected ETH, USDT and USDC amounts to one receiver. Arrows show asset movement, not ownership.

Figure 2. Two independently checked sources converge on one receiver. ETH is rounded in this figure; exact quantities, accounts and hashes are preserved in the evidence appendix.

The independent receipt confirms the USDC asset source and amount. A function selector is the first four bytes of a contract instruction; it is not a verified function name. The final SentinelTX response additionally returns a seven-frame execution path for this exact transaction. A CALL asks another account to execute; a DELEGATECALL runs implementation code while retaining the calling account’s context. That distinction explains why an implementation address is not another recipient of the 780M USDC.

Stage in returned trace

Observed call / evidence limit

Operator → delegated account

Root selector 0x043ff9d2

Delegated account → separate USDC wallet

CALL; selector 0xb61d27f6

USDC wallet → wallet implementation

DELEGATECALL; same selector 0xb61d27f6

Wallet execution → USDC

Failed 0x01ffc9a7 interface probe, followed by 0xa9059cbb transfer through the USDC implementation

The trace comes from SentinelTX and was not independently re-executed. Its source, destination and transfer quantity match the independently read USDC receipt; that corroborates the movement, not every execution frame. Function names for the two wallet selectors, owner/executor storage and historical privilege assignments remain unknown. It would be premature to call the delegated account the wallet’s owner, or to infer an allowance exploit from the transfer alone.

Why the wBETH leg is not an exchange-deposit finding

At 21:52:47 UTC, the wBETH transaction calls the wBETH token contract. Its receipt log transfers 29,934.013163146020067927 wBETH from the receiver to a separate recipient. The called contract and the asset recipient are different addresses. Treating the token contract’s Binance association as a deposit destination would misclassify the movement.

SentinelTX’s narrative corrects an earlier exchange-deposit classification; the independent receipt-log check supports that correction. No custodial exchange deposit has been established in the selected verified paths. That is a coverage-limited conclusion, not evidence that no such deposit occurred elsewhere. DEX interactions returned by the wider trace are also distinct from custodial deposits and do not establish fiat cash-out.

Frozen, recovered and returned are different states

In its statement published on 29 October at 23:22 UTC (30 October, 08:22 KST), Binance says its verified frozen total is USD2.54B and that an older USD1.8B figure is outdated. This is a historical company aggregate, not the latest total. It has not been reconstructed here from issuer event logs, asset quantities and a common valuation time.

In Security Incident Update #2, dated 30 October, read on 31 October, Binance reported approximately USD3B frozen on-chain. It also said it had identified additional breach points and had found no evidence at that stage that wallet private keys had leaked. These are company statements, not conclusions from this report’s selected Ethereum transactions. They neither establish how the observed authorizations were obtained nor turn a freeze into a verified return of assets.

A blacklist restriction can prevent movement of a token at an address. It does not itself prove that the assets were transferred to a recovery custodian or returned to users. The initial SentinelTX issuer-event queries failed. The final follow-up response lists prior-session blacklist events, but omits re-anchored transaction hashes and says current blacklist state was not read. It also reports only 15 of 55 Blacklisted-topic rows displayed. This incomplete list is retained as a lead, not a verified issuer inventory. Authorization signer recovery and USDC owner/executor privileges also remain unresolved. No zero-event or “not frozen” conclusion is drawn from a failed query.

Connections, alternatives and response points

The strongest links are the exact asset sender, recipient and Transfer log in each selected transaction. The same operator and called account provide additional execution context. Explorer tags, shared timing, similar amounts and token-contract branding provide weaker context and are not beneficial-ownership proofs.

Question

Evidence needed / bounded action

What authorized execution?

Recover and validate the authorization tuples; preserve signing-policy and signer audit records. A valid signature does not identify how it was obtained.

Why did another wallet send USDC?

Returned call path is available from SentinelTX; verify wallet rules and historical owner/executor storage before claiming an owner role or allowance.

Can the stablecoins move?

Read address-specific issuer events and state at explicit blocks; separate event time from a later status snapshot.

Where did ETH go?

The selected receiver inflow does not establish the onward ETH path or an exchange endpoint.

What can be called recovered?

Require a verified recovery transfer and custody/return evidence; do not equate freeze with restitution.

These are evidence-preservation and verification priorities, not proof of a person’s responsibility. No issuer, exchange or law-enforcement message has been sent as part of this investigation.

Coverage and remaining uncertainty

The original SentinelTX trace reports 525 transactions and 52 addresses. Its live graph displays 71 nodes, which is a different representation and not a verified count of recipients. One displayed call tree contains 191 of 192 frames; 17 label queries and two address-history reads were incomplete. Only selected transactions were independently cross-checked for this report. A later continuation reports 23 incompletely read addresses; that belongs to the follow-up’s different coverage and is not merged with the initial graph counts.

The original report also contains different temporal boundaries: a query window from 29 September to 30 October 00:19:56.232761 UTC, a snapshot header through block 26301901, selected displayed routing rows through block 26301699, and a later token read at block 26301950. Those records are preserved separately. They cannot be presented as one exhaustive incident cutoff.

Bitcoin, TRON, full all-chain valuation, all 63 token transfers, complete receiver balances, onward ETH movements, final incident loss and user restitution are outside the independently verified scope. The observed 204-second interval between authorization and sweep is not the full attack duration. The evidence establishes a narrow sequence of authority-related activity and asset movements; it does not yet establish the signature’s origin or the final recovery outcome.

Evidence appendix: accounts

Role on Ethereum

Full address

Outer transaction operator / sponsor

0x7C8601d4645b93cea45F71e118A729332e6B5CA0

Delegated account; selected ETH and USDT sender

0x28C6c06298d514Db089934071355E5743bf21d60

Central receiver

0x5227f603C1eE34CE3C06eFe6477003BDfCCB2f8c

Explorer-reported delegation target; current bytecode page read

0x63e842B054Bd624a465454D533C33F573e9c6fAe

Separate 780M USDC asset sender

0xEe7aE85f2Fe2239E27D9c1E23fFFe168D63b4055

Branch A

0x9749292D74Fd460982d0912eA9515EA24736C762

Branch B

0x0Ddf0480016e6bCb2C1F5d190D221FBA1320697e

Selected next recipient from Branch A

0x811f15855476156Ebf86ba3b84faFb8Ceaa4e84C

Called token contract; not deposit recipient

0xa2E3356610840701BDf5611a53974510Ae27E2e1

Actual wBETH Transfer recipient

0x7f9DC988B46336aD536828fAD50fa8fA1E5415E3

Direct USDT transaction sender; explorer label Binance 16

0xDFd5293D8e347dFe59E90eFd55b2956a1343963d

Wallet implementation in SentinelTX-returned USDC trace; not an asset recipient

0xd206ac7fef53d83ed4563e770b28dba90d0d9ec8

USDC implementation in returned trace; not an asset recipient

0x43506849d7c04f9138d1a2050bbf3a0c054402dd

USDT token contract; six decimals

0xdac17f958d2ee523a2206206994597c13d831ec7

USDC token contract; six decimals

0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48

Evidence appendix: transaction anchors

Record / UTC on 29 October

Full transaction hash

Delegate creation reference

Explorer creator link; event time not separately recorded in this review

0x97408e7562eb2b28efcd24ba01609607b5749bc89448d007fa8b50ecf290329c

Authorization

Block 26300753

20:20:59 UTC

Explorer authorization table; no independent signer recovery

0xad99264d5532ae0dd04b2004eebda05f25657e70dacb764f7ac8d4ccd051298b

Direct-signed USDT

Block 26300772

20:24:47 UTC

USDT log 37

0xd4e08d3ef0cb02a75922913c61984fbf7fe4bbc4b95324735ef27f908fd6c49c

Seed sweep

Block 26300770

20:24:23 UTC

USDT log 519; internal ETH displayed separately

0x53bd38b816c23e74134786c29a8c18d792777998a3b9326047b583100e88e2f3

Separate USDC

Block 26300855

20:41:23 UTC

USDC log 685

0xdc102dd89dded5a83f1008906883ffb7c81ff3b7d7965d8c7277d170b5e17481

F08

Block 26300799

20:30:11 UTC

USDT log 700

0x68d7d69deaeb9750c38020b4f8d3728146ca8d2267eba1e38cf9b56722ad659a

F09

Block 26300815

20:33:23 UTC

USDT log 916

0x1fc0ef33a767132edad434834a5555b30fcb5a171206c03b86175ef6dafac81c

F10

Block 26301210

21:52:47 UTC

wBETH log 486

0xc19a2dcc7508e45f2743558cebefa50140fe68d9450ab18d14fd34039eb4bce2

F11

Block 26300942

20:59:11 UTC

USDT log 389

0x1fb992f92a45afec23d7d5740c7958a644fb90ef0cba19ca39bd2c6534fb670b

Evidence appendix: exact token quantities

Anchor / asset

Raw value → normalized units

Direct-signed USDT

55739800500000 ÷ 10⁶ = 55,739,800.500000

Seed / USDT

1615409498973240 ÷ 10⁶ = 1,615,409,498.973240

Separate source / USDC

780000000000000 ÷ 10⁶ = 780,000,000.000000

F08 / USDT

500000000000000 ÷ 10^6 = 500000000

F09 / USDT

200000000000000 ÷ 10^6 = 200000000

F10 / wBETH

29934013163146020067927 ÷ 10^18 = 29934.013163146020067927

F11 / USDT

175000000000000 ÷ 10^6 = 175000000

post_like_sub0
post_total_comment_sub0

14 reads

0/500 bytes