DEV Community

Cover image for How to Fully Empty a Wallet via Chrome Console Without Leaving Dust
Yuanyan Wu
Yuanyan Wu

Posted on

How to Fully Empty a Wallet via Chrome Console Without Leaving Dust

When transferring your full ETH balance from one wallet to another, most wallets leave a tiny amount of "dust" behind. This happens because they slightly overestimate gas fees to prevent transaction failure under volatile conditions.

But sometimes, you want zero balance left — no dust, no leftovers — for example, when migrating to a new wallet, shutting down an address, or sweeping all funds.

Here's how you can do it perfectly, using only MetaMask and Chrome console.


🛠 Step-by-Step Instructions

  1. Open your Chrome browser.
  2. Unlock your MetaMask extension.
  3. Transfer all valuable tokens, NFTs, and other assets
  4. Open DevToolsConsole tab (F12 or Ctrl+Shift+I).
  5. Paste and REPLACE the RECEIVER address as you intended
  6. Execute the following script:
(async () => { const sender = (await ethereum.request({ method: 'eth_requestAccounts' }))[0]; const receiver = '0xReceiverAddress'; // 🔥 Change this to your destination address const balanceHex = await ethereum.request({ method: 'eth_getBalance', params: [sender, 'latest'], }); const gasPriceHex = await ethereum.request({ method: 'eth_gasPrice', }); const gasLimit = 21000; // Standard gas for basic ETH transfer const gasFee = BigInt(gasPriceHex) * BigInt(gasLimit); const balance = BigInt(balanceHex); const amountToSend = balance - gasFee; if (amountToSend <= 0n) { throw new Error('Not enough balance to cover gas fee.'); } const txHash = await ethereum.request({ method: 'eth_sendTransaction', params: [{ from: sender, to: receiver, value: '0x' + amountToSend.toString(16), gas: '0x' + gasLimit.toString(16), gasPrice: gasPriceHex, }], }); console.log('Transaction sent! TxHash:', txHash); })(); 
Enter fullscreen mode Exit fullscreen mode

Confirm the transaction in MetaMask popup.

✅ Done! Your account will now be completely emptied.

🧠 Why Not Just Use Wallet UI?

Wallet UIs like MetaMask intentionally overestimate gas fees to reduce transaction failure risks.

This means:

  • They cannot send the full balance.
  • They must leave a small "dust" amount as a safety margin.

By manually calculating gas cost and subtracting it ourselves, we can send the maximum possible safely.

📝 Why I Care About This

When EIP-1559 was introduced, dynamic fees made gas price calculations trickier, and wallets became even more conservative.

I often found myself frustrated by the "dust problem" when I simply wanted to sweep a wallet clean. This method helped me move entire balances safely and efficiently, many times over.

Feel free to bookmark this guide for the next time you need a clean sweep. 🧹✨

Top comments (0)