Base vault loses $6m in six transfers
A Base vault lost about $6m on 4 October 2026. Three Safe owners signed calls naming the draining contract; $3.37m entered pending Ethereum withdrawals.

A vault on Base lost 1,783.067 aBaswstETH, worth about $6.00m, through six outflows on 4 October 2026. Blockaid described a newly approved contract using the vault’s borrowing path to drain its funds. ExVul subsequently identified all six transfers and the redemption of the proceeds into wrapped staked ETH. Blockaid’s alert, ExVul’s analysis.
The transaction record adds a significant detail: the vault’s controlling Safe accepted three owner signatures on each of two calls naming the contract that drained it. The second call succeeded 70 seconds before the first outflow. By 16:33 UTC, about $2.63m remained on Base and $3.37m was committed to two pending withdrawals to Ethereum.
The transfer table and holdings use the Chainlink ETH/USD price at 16:17 UTC on 4 October 2026, multiplied by Lido’s stETH-per-wstETH conversion at the 16:33 UTC snapshot. The incident-time comparison below uses the price and conversion recorded when the drain ended. Both valuations assume stETH is worth the same as ETH. The dollar figures estimate token holdings; the transfers themselves moved tokens.
The vault held receipts for deposited wstETH
The drained Base vault is 0xD1895f…FCABC. It held aBaswstETH, the Aave receipt token for deposited wstETH on Base. Aave’s aTokens represent supplied assets and accrue interest. A holder can redeem the receipt tokens for the underlying asset through the lending pool. Aave’s token documentation.
wstETH is Lido’s wrapped form of stETH, which represents staked ETH and its rewards. The wrapper keeps token balances fixed while the amount of stETH represented by each wstETH grows. Here, the roughly $6.00m receipt-token position could be redeemed into the corresponding wstETH position. Lido’s wstETH documentation.
The vault was described as unnamed in the initial Blockaid and ExVul alerts. Its address identifies the affected contract precisely. The aBaswstETH name identifies the asset held inside it.
A Tornado Cash withdrawal funded the attack wallet
At 06:43:59 UTC on 4 October, an Ethereum address received 0.09788487625145 ETH, about $264, from Tornado Cash’s fixed 0.1 ETH pool, whose deposit denomination was about $270 at the dated valuation. The withdrawal event names 0x707877…366EF as the recipient; the difference between the pool denomination and the payment was the relayer fee. Withdrawal transaction.
That address then sent 0.05 ETH, about $135, through the Ethereum-to-Base bridge at 06:46:47 UTC, specifying 0x0B5126…dB034 as the recipient. The corresponding Base transaction delivered that amount at 06:49:43 UTC. This was the wallet later used to call the draining contract and redeem the transferred receipts. Ethereum deposit, Base delivery.
The withdrawal recipient, bridge sender and Base recipient form a proven public funding route. Tornado Cash conceals the link to the original deposit, so the depositor’s identity remains unresolved. The relayer served the withdrawal and sits outside the attribution of the attack wallets.
Three Safe owners signed the preceding permission calls
At 08:52:23 and 08:53:51 UTC on 4 October, the vault’s controlling Safe at 0x6b2751…9f42C4 executed two calls to the vault. Both named 0xcdFE91…F569d, the contract later used to pull out the receipt tokens. The calls used the same function selector, 0x38edc837, with a final flag of zero and then one. Both emitted the Safe’s successful-execution event. First call, second call.
The execution traces show three accepted signing addresses on each call:
| Safe owner address | Accepted on both calls |
|---|---|
0x2ca169d83540dba97585244667ef4c8d7e752108 |
Yes |
0xc750f80c4c7d987a9dabe6b2470da684c0c533c3 |
Yes |
0xffa0f0ea096a90e495d4b202c305511ba682cb89 |
Yes |
Safe verifies signatures against its owner addresses before executing a transaction. At the cutoff, this Safe had seven owners and a three-signature threshold. Its transaction history shows these as its latest two executions. Safe’s signature-verification documentation.
The contract that subsequently received the funds had already been initialised with 0x0B5126…dB034 as its owner at 08:10:53 UTC. That links control of the draining contract to the wallet that later redeemed the receipts. Initialisation transaction.
Blockaid describes the intervening calls as whitelisting the contract. The chain establishes that the Safe accepted the signatures and successfully called the vault immediately before the drain. How those owners came to sign the calls remains unresolved. The address that broadcast the Safe transactions is recorded separately from the three signing owners.
Six outflows removed about $6m
Between 08:55:01 and 09:12:37 UTC on 4 October, six transactions moved 1,783.067 aBaswstETH, about $6.00m, from the vault to the draining contract. Each transaction began with a call from 0x0B5126…dB034 to that contract, which then called the vault and received the receipt tokens.
| Time, UTC | aBaswstETH transferred | Estimated value | Transaction |
|---|---|---|---|
| 08:55:01 | 1 | $3,362 | First outflow |
| 09:08:13 | 100 | $336,248 | Second outflow |
| 09:09:21 | 500 | $1.68m | Third outflow |
| 09:10:19 | 500 | $1.68m | Fourth outflow |
| 09:11:11 | 500 | $1.68m | Fifth outflow |
| 09:12:37 | 182.067 | $612,197 | Sixth outflow |
The draining contract passed the receipts to its owner wallet. ExVul’s six-transfer total and the token events agree on the amount removed. Blockaid’s earlier alert reported about $2.02m while the activity was continuing; it was an earlier count of the same drain. Blockaid, ExVul.
The loss valued just above $6m when the drain ended
At 09:12:35 UTC on 4 October 2026, two seconds before the last outflow, the transferred position valued at an estimated $6,001,045. Ethereum block 26,118,015 records a Chainlink ETH/USD answer of $2,702.23830086 and Lido’s conversion of 1.245476556811719249 stETH per wstETH. Multiplying those by the 1,783.067-token principal produces the estimate. The later 16:33 UTC valuation puts the same principal at $5,995,531. Changing the valuation time moves this loss across the $6m boundary. Historical Ethereum block, Chainlink feed, Lido conversion contract.
YFarmX’s reconciliation of the vault’s positive token-transfer events from the start of 4 October through 18:08:27 UTC, Base block 52,173,980, finds the six aBaswstETH outflows listed above. Their total is exactly 1,783.067 tokens, about $6m. The subsequent redemption, transfers and withdrawal requests are successive stages of those proceeds and count once in the loss. Vault’s token-transfer record.
The receipts became wstETH at Aave
At 09:23:13 UTC on 4 October, 0x0B5126…dB034 called Aave’s Base pool to redeem its transferred receipts. The transaction burned the aTokens and delivered approximately 1,783.067 wstETH, about $6.00m, to the same wallet, including a small amount of accrued interest. This was the conversion of the drained position into its underlying asset. Redemption transaction.
The wallet then sent the proceeds to 0xC73448…297f8D: 1 wstETH, about $3,362, at 09:24:15 UTC, followed by the remaining 1,782.067 wstETH, about $5.99m, at 10:47:23 UTC. Both transfers used the genuine Base wstETH contract. First transfer, remaining proceeds.
The proven proceeds route is therefore vault → draining contract → owner wallet → Aave redemption → second receiving address. Aave supplied the redemption mechanism described in its documentation.
About $3.37m entered withdrawals to Ethereum
On 4 October, the second receiving address submitted two wstETH withdrawals through Lido’s Base token bridge and Base’s cross-chain messaging system, naming itself as the Ethereum recipient. The Base transactions burned 1 wstETH, about $3,362, at 09:27:29 UTC and 1,000 wstETH, about $3.36m, at 12:10:59 UTC. First withdrawal, larger withdrawal.
Matching withdrawal hashes were subsequently proven on Ethereum:
| Withdrawal position | Estimated value | Ethereum proof, 4 October | Proof delay ends, 5 October |
|---|---|---|---|
| 1 wstETH | $3,362 | 10:43:11 UTC | After 10:43:11 UTC |
| 1,000 wstETH | $3.36m | 13:44:11 UTC | After 13:44:11 UTC |
The deployed Ethereum portal returned a proof-maturity delay of 86,400 seconds, or 24 hours, at the cutoff. Its checks for both withdrawals returned the proof-too-young condition. Each withdrawal’s proof therefore has to age past the time shown, and the portal’s other validation conditions must also pass before finalisation.
At 16:33 UTC, both withdrawal records were pending and the Ethereum recipient’s wstETH balance was zero. Together, the requests represented 1,001 wstETH, about $3.37m, in transit. The second address still held 782.067 wstETH, about $2.63m, on Base. The pending withdrawals and the remaining balance account for the redeemed position, with accrued interest carried through the transfers.
The Safe’s signed calls preceded the drain
On 4 October, the Safe accepted three owner signatures and called the vault with the draining contract’s address; that contract began receiving the vault’s assets 70 seconds after the second call. The proceeds were then redeemed and split between a Base holding and pending Ethereum withdrawals.
The signing records identify the specific authorisation events that require investigation. They give the vault’s operators a concrete starting point for examining what each owner was asked to approve and how the contract address was checked. The immediate fund position is equally specific: about $2.63m on Base and $3.37m in withdrawals awaiting the portal’s proof delay, as of 16:33 UTC on 4 October 2026.
Sources
- Blockaid's initial Base vault alertx.com
- ExVul's six-outflow analysisx.com
- PeckShield's drain alertx.com
- Safe transaction preceding the first vault outflowbasescan.org
- Redemption of the transferred aTokensbasescan.org
- Ethereum proof for the larger withdrawaletherscan.io
- Deployed Base withdrawal portaletherscan.io
- Safe signature verificationdocs.safe.global
- Aave's interest-bearing receipt tokensaave.com
- Lido's wrapped staked ETHdocs.lido.fi
- Chainlink's Ethereum ETH/USD feedetherscan.io


