Skip to content
FORENSIAWeb3 forensicsOpen workspace
FORENSIAOpen workspace
Menu
The screening room

Watch the story.
Open the evidence.

A collection of real incident case studies. Browse the chapters, understand the mechanism and continue into the investigation.

9 films · Chapter summaries are editorial guides, not verbatim transcripts.

Watch · 1:24 ↗
Signing / February 21, 2025

Bybit: Multisig Wallet Takeover

No keys were stolen. Three signers approved what looked like a routine transfer. The call trace shows what it was: a delegatecall that ran someone else's code with the wallet's authority.

Browse 7 chapters & evidence0:00The theftAbout one and a half billion dollars leaves a single Bybit wallet. It is described as the largest crypto theft on record.Includes attributed reporting0:10The signing sessionNo keys were stolen. Three people approved what their screens showed as a routine transfer. What they signed was something else.Includes attributed reporting0:20The transactionThe transaction itself is a call into the wallet carrying no value. Inside it, the wallet checks three signatures.Includes recorded observations0:29The delegatecallThen the wallet makes a delegatecall to an unfamiliar contract. A delegatecall runs someone else's code with the caller's own authority and storage, so it can rewrite the wallet's rules.Includes recorded observations0:39The drainMinutes later the wallet is emptied and the funds fan out across dozens of addresses.Includes attributed reporting0:43The wallet todayLooked up again long after, the wallet holds nothing and its code still resolves to a contract named Sweeper.Includes recorded observations0:51Who did itThe chain shows what moved. Naming who moved it came from investigators, and the film says so.Includes attributed reporting

Attribution in the film is reported by others, not observed by Forensia.

Watch · 1:55 ↗
Bridge / September 19–20, 2026

SingularityNET: Bridge Drain and Token Mints

One signature check, then about 2.3 billion tokens minted across four projects. The headline said $16.77M. Followed sale by sale, the liquid proceeds come to roughly $2.29M.

Browse 8 chapters & evidence0:00The incidentAn attacker drains FET from SingularityNET's bridge, then spends a night minting tokens across four projects.Includes attributed reporting0:15The drainAt 20:21 UTC a single call to the bridge releases 8.72 million FET to one address. The trace shows one signature check and nothing else.Includes recorded observations0:31The saleTwo minutes and twenty-four seconds later the FET is sold.Includes recorded observations0:41The first mintAt 20:50 UTC, 408 million NTX arrive from the zero address. That is a mint: new tokens created, not existing ones transferred.Includes recorded observations0:50A night of mintingBetween 03:13 and 04:38 UTC more mints follow across three other tokens.Includes attributed reporting1:02The headline numberEarly reports valued the holdings at $16.77 million. That figure did not survive the market: one sale moved 246 million CGV for about a hundredth of an ETH.Includes attributed reporting1:28What it did to supplyMinting on this scale changes how much of each token exists.Includes attributed reporting1:35Where it standsThe main address still holds ETH. How the key was obtained and who holds the address are not known.Includes recorded observations

How the key was obtained and who holds the address are not known. No one has been named.

Watch · 2:06 ↗
Key generation / July 30, 2026

Coldcard: Bitcoin Wallet Drains

A firmware update left some hardware wallets choosing keys with weak randomness. 594 bitcoin arrived at one address, 562 moved once in a 341-input transaction, and it is still sitting there.

Browse 6 chapters & evidence0:00The theftBitcoin starts vanishing from hardware wallets, the kind people buy so this cannot happen.Includes attributed reporting0:10The causeThe cause was a bug from 2021. A firmware update left some wallets choosing their secret keys with weak randomness, so keys that should be impossible to guess could be guessed.Includes attributed reporting0:35Search one: the collection addressInvestigators published one address that collected coins. 594 bitcoin arrived there, 562 left again, and 32 is still sitting in it.Includes recorded observations0:53Search two: the transactionThe 562 left in a single transaction: 341 inputs swept into one output. The numbers match to the last digit.Includes recorded observations1:17Search three: the receiving addressThe address that received it has been funded with 562 bitcoin and has spent none. The only activity since is dust: tiny deposits from strangers.Includes recorded observations1:37The boundaryThe record shows where the money sits. It does not show whose hands it is in, and the investigators who studied the case have not named anyone either.Includes attributed reporting

A record is not proof of who owns either side.

Watch · 1:51 ↗
Exchange / September 24, 2026

Bitget: Exchange Wallet Drain

Twenty-seven minutes between the test transaction and the first large transfer. The film reads each one from its receipt, including a stranger's contract that wrote a thousand token events into one transaction.

Browse 8 chapters & evidence0:00The theft$387 million leaves the exchange Bitget in under three hours. This case asks what one wallet can tell you about it.Includes attributed reporting0:15The testThe wallet's very first transaction is a test: 0.84 ETH. Small enough that no alarm went off.Includes recorded observations0:25The first large transferTwenty-seven minutes later the same wallet receives about 34.7 million dollars of Tether in a single transfer. More follows: USDC, tokenised gold, thousands of ETH.Includes recorded observations0:40It starts to leaveThen it leaves, ten thousand ETH at a time.Includes recorded observations0:44The wallet todayAlmost nothing is left. Its history is already older than the tool reaches back, and the tool says so. The same address has state on five networks.Includes recorded observations1:01The strange partHours later an explorer shows this wallet sending ten thousand ETH again. It never did. A stranger's contract wrote a thousand token events into one transaction, bait in the form of a look-alike address.Includes recorded observations1:20Where the tool stopsFrom here the money crosses to other blockchains and into mixers. That is the boundary of what this lookup observes.Includes attributed reporting1:28Who did itTwo published positions disagree, and the film reports both without endorsing either.Includes attributed reporting

The trail stops at the cross-chain boundary. What happened beyond it is reported, not observed.

Watch · 2:14 ↗
Oracle / September 17, 2026

Nostra: Oracle Manipulation on Starknet

A thin pool, a ninety-nine dollar quote and an oracle that returned the midpoint. The exploit happened on Starknet, which Forensia does not read, so the film reports that part with its sources and starts its own record where the money lands on Ethereum.

Browse 12 chapters & evidence0:00The loanOn September 17 one account borrowed about 3.5 million dollars from Nostra, a lending protocol on Starknet. By one reconstruction its collateral was worth about four hundred dollars.Includes attributed reporting0:17One: a new poolThe attacker creates a new trading pool for Nostra's own token, NSTR. Thin liquidity, placed on one side.Includes attributed reporting0:25Two: the price moveA small trade in that pool moves its quoted price from under one cent to ninety-nine dollars.Includes attributed reporting0:32Three: the oracleThe price oracle had two sources that morning. One said 0.6 cents. One said ninety-nine dollars. It returned the midpoint: $49.52.Includes attributed reporting0:43Four: the borrowAbout seventy thousand NSTR is posted as collateral. Seven borrow transactions take six assets. The largest is about 939 ETH.Includes attributed reporting0:56The responseNostra paused its market and confirmed the figure. The oracle provider, Pragma, says a three-source minimum would have rejected that price.Includes attributed reporting1:05Where this record startsAll of that happened on Starknet, which Forensia does not cover. Its record starts where the money reaches Ethereum.Narrative context1:12Five: the Ethereum addressFrom 06:11 UTC funds arrive at this Ethereum address. The lookup returns thirty-two records, a balance of almost nothing, and one lead: look-alike counterparty addresses.Includes recorded observations1:26Six: it movesIt held for seventeen days. Then, on October 4, it moved. This is one of the transfers: 547 thousand DAI to a new address.Includes recorded observations1:34The other transfersThree transfers took 1.35 million DAI. A fourth took 243 ETH.Includes recorded observations1:47Seven: the new addressThe new address holds 253 ETH and has sent nothing. As of October 6 it has not moved again.Includes recorded observations1:59Not knownWho controls these addresses. Whether anything will be recovered. Nostra has promised a post-mortem.Narrative context

Everything on Starknet is reported, not observed. The record here starts at the Ethereum arrival and stops at an address that has not sent a transaction.

Watch · 2:17 ↗
Bridge / September 6, 2026

Liquid Network: Unbacked L-BTC and Reserve Drain

About four thousand bitcoin left a sidechain's reserve and no key was stolen. Four hours later a note appeared in a transaction: we are whitehats. 3,400 bitcoin came back. 598 did not, and it is still sitting at the same address.

Browse 11 chapters & evidence0:00The noteFour thousand bitcoin left a sidechain's reserve. No key was stolen. Four hours later a note was written into the blockchain: we are whitehats. 3,400 bitcoin came back. 598 did not.Narrative context0:16One: the flawOn September 6, on Liquid, a Bitcoin sidechain, a caching flaw lets about four thousand L-BTC be created with no bitcoin behind it. That is Liquid's own account.Includes attributed reporting0:30Two: the payoutThe new coins are redeemed through the normal withdrawal route. At 14:28 UTC the federation pays out on Bitcoin.Includes attributed reporting0:43The forwardBlock 965,783. One input, two outputs. Almost 3,996 bitcoin lands on a new address, in the same block as the payout.Includes recorded observations0:56Three: the first noteFour hours later that address sends its whole balance back to itself, with a note attached: we are whitehats. contact us on chain.Includes attributed reporting1:05Four: more notesMore notes follow the same way. One asks whether sending most of it back is ok. The next says to fix the bug first.Includes attributed reporting1:13Five: the returnSeptember 7, 16:09 UTC. Fifteen inputs, two outputs. 3,400 bitcoin goes to the federation's wallet, and Forensia flags the other output as likely change: 598 bitcoin, back to the sender.Includes recorded observations1:33Six: the demandSeptember 9. One more note. It demands ten percent as a bug bounty. Blockstream calls withholding the funds a crime and refuses to pay.Includes attributed reporting1:43Seven: the address today598.5 bitcoin. Still there. Nothing sent since September 9.Includes recorded observations1:53The noticeboardThe address has become a noticeboard: more than fourteen hundred transactions from strangers, nearly all carrying a message.Includes attributed reporting2:04Not knownWho controls the address. Whether the rest comes back.Narrative context

The flaw itself happened on Liquid, which Forensia does not read, so that part is reported. Forensia shows the note transactions and their amounts but does not decode the note text; the wording is read from the transactions on a public explorer.

Watch · 2:59 ↗
Balance accounting / August 22, 2026

KiiChain: Cosmos EVM Balance Exploit

KiiChain reported 18 drains exploiting shared Cosmos EVM balance accounting. Follow the film from prepared vesting accounts to the BNB Chain sales, and see why a network halt could only contain funds that had not left.

Browse 12 chapters & evidence0:00Eighteen drainsOne repeated sequence targeted wallets across KiiChain. The reported token amount is different from the money later realized by selling it.Includes attributed reporting0:12Two networksThe film follows activity on KiiChain and BNB Chain. They are separate ledgers, even where an address has the same hexadecimal spelling.Includes attributed reporting0:30Prepare an account, then deployThe attacker prepared a vesting account at a future contract address, then deployed a helper there. Vesting means some funds are locked to a schedule.Includes attributed reporting0:41The balance-accounting failureDelegating beyond the spendable balance made the EVM balance wrap to an enormous number. A second arithmetic failure let real victim balances be redirected.Includes attributed reporting0:55Repeat the sequenceThe film steps through setup, deployment, drain, sweep and bridge activity. A reconstruction of selected sequences is not an independent count of all targets.Includes attributed reporting1:10Follow the BNB sideThe next part follows reported bridge receipts on BNB Chain. Open the address on that network to inspect the records currently available.Includes attributed reporting1:28Token value versus sale proceedsSelling into a market changes the price. Multiplying every stolen token by its earlier quote does not establish what the seller received.Includes attributed reporting1:42The proceeds branch outThe film follows outgoing transfers after the sales. A recipient is a transaction counterparty; that alone does not identify the person behind it.Includes attributed reporting1:56A later, larger drainA later reconstructed sequence uses the same setup and delegation pattern against another target.Includes attributed reporting2:12What the halt containedStopping block production contained tokens still on KiiChain. Tokens already bridged away required a separate response.Includes attributed reporting2:26The shared-code responseThe vulnerability affected shared Cosmos EVM infrastructure. The film compares the disclosure and patching accounts; those are external statements.Includes attributed reporting2:40Read the available recordsThe film ends with a bounded Forensia lookup. Missing historical activity or a missing public label does not establish that nothing happened or identify an owner.Includes attributed reporting

Native KiiChain transactions and full Hyperlane settlement are not independently verified by this page. Reported recovery is separate from assets actually returned; no person is identified.

Watch · 2:47 ↗
Balance accounting / August 20, 2026

MANTRA: Cosmos EVM Balance Exploit

Two wallets lost roughly 720.9 million MANTRA through shared Cosmos EVM balance accounting. The film follows the preparation, repeated transfers and chain halt, then separates funds contained from funds recovered.

Browse 10 chapters & evidence0:00Two wallets, one accounting failureA burn address is normally treated as a destination funds cannot leave. Here, the reported exploit changed balances without the victim signing a transfer.Includes attributed reporting0:14Prepare the vesting accountVesting locks tokens for later use. The film follows a newly created vesting account before the first drain.Includes attributed reporting0:35Underflow, then overflowSubtracting more than the EVM-tracked spendable balance wrapped an unsigned number to an enormous value. A second arithmetic failure let the contract empty a victim balance within the same transaction.Includes attributed reporting0:49Follow the outgoing transfersThe reconstruction groups repeated payments by destination. A deposit to an exchange address is a visible movement; an internal exchange trade is a separate claim.Includes attributed reporting1:10A second targetA later sequence targeted a genesis-era multisig. Repeating the accounting path did not require the multisig owners to approve the drain.Includes attributed reporting1:24The halt arrivesStopping block production prevents further on-chain execution. It does not undo transactions already recorded.Includes attributed reporting1:38Containment is not recoveryAbout 94.7% had reached the reported exchange deposit address. The remaining balance and returned funds must be counted separately.Includes attributed reporting1:52Follow the patch timelineThe film compares code changes, release availability and chain response. A published fix and an installed fix are different milestones.Includes attributed reporting2:20Where Forensia can helpThe film moves to BNB Chain context for the related KiiChain incident. Open that case below to investigate its supported BNB receiving address. This is not a MANTRA bridge exit.Includes attributed reporting2:34What the evidence establishesKeep the reported token amount, exchange deposits, frozen balance and recovered assets separate. The pre-incident dollar valuation is not proof of realized proceeds.Includes attributed reporting

Forensia does not currently read native MANTRA Chain transactions. External explorer links are source reading, not workspace captures. The related KiiChain BNB lookup is a separate incident, not a bridge trail from MANTRA.

Watch · 2:50 ↗
Oracle / July 15, 2026

Ostium: Price Feed Compromise

Ostium accepted a Bitcoin price of $5,000, then roughly $60,000 inside the same transaction. The film follows the artificial profits, the vault payouts and the reported exit into ETH.

Browse 12 chapters & evidence0:00A five-minute drainA perpetuals exchange lets users trade price movements without holding the underlying asset. Here, the losses came from the pool backing those trades.Includes attributed reporting0:12The price was the inputAn oracle supplies outside prices to a blockchain. The accepted Bitcoin prices in this sequence jump from $5,000 to roughly $60,000 within one transaction. That is an input to the trades, not a real market move.Includes attributed reporting0:25Start with the small testRead the first small trade cycle before the large payout. Distinguish the deposited collateral, vault payout and returned margin rather than treating every transfer as profit.Includes attributed reporting0:39Five cycles in one batchA batch transaction groups several actions together. The film follows repeated position opens, price deliveries and closes in the main transaction.Includes attributed reporting0:53Follow the price-delivery pathThe reconstruction identifies PrivatePriceUpKeep as the price-delivery contract in this path. Public PriceUpKeep is a separate deployment.Includes attributed reporting1:07A signature is not a price checkA signature check can identify an authorized signer. It does not independently establish that the submitted Bitcoin price was economically reasonable.Includes attributed reporting1:22Keep the accounting straightCompare the small test, the main batch and the later drains. Gross vault transfers, returned collateral and net losses describe different quantities.Includes attributed reporting1:38From USDC into ETHThe reported trail moves from vault payouts to swaps, then multiple addresses and mixer deposits. Each boundary needs its own transaction evidence.Includes attributed reporting1:53The trusted-keeper boundaryA keeper is an automated actor that triggers protocol actions. Read which actions it was trusted to perform and what the bounty scope excluded.Includes attributed reporting2:10A warning and its scopeThe film contrasts prior contract reviews with the price-reporting infrastructure. Audit findings and scope statements should be checked in the original reports.Includes attributed reporting2:24What Ostium reportedSeparate the team's account of containment from the transaction record. A dated response is not a current recovery guarantee.Includes attributed reporting2:36Investigate the recordsOpen the batch, vault or payout recipient in Forensia. Read available calls, token movements and source records, preserving any missing coverage. A live lookup is a starting point for review.Narrative context

The reports do not establish exactly how price-reporting access was obtained or who controlled the addresses. A mixer deposit does not establish a matching withdrawal.