How to Claim an Airdrop From a Compromised Wallet (Before the Sweeper Does)

By Merunas Grincalaitis, founder of MEV DAO and a developer who builds MEV, sniping and trading bots on Ethereum. Last updated: October 2026.

TL;DR: You can usually claim an airdrop from a compromised wallet by sending a Flashbots bundle with three transactions in one block: a safe wallet pays the gas, the compromised wallet claims, and the same wallet transfers the tokens to a new address. Because the bundle is private and all-or-nothing, the sweeper bot never gets the ETH or the tokens. Do it as early as possible: on many airdrop contracts anyone can trigger the claim, so the attacker can race you.

Few things hurt more than learning a wallet you already wrote off is eligible for an airdrop. The key is leaked, a sweeper bot empties any ETH you send within seconds, and the claim page wants you to pay gas. The good news is that this is one of the most common rescues I see, and it's very solvable if you move before the attacker does.

This guide covers how airdrop claims work on-chain, why the claim is a race, how to build the rescue bundle step by step, and the cases where it won't work. If you need the general version for tokens already sitting in the wallet, start with my Flashbots guide to rescuing tokens from a compromised wallet.

Why can't you just claim the airdrop normally?

Because the claim needs gas, and the sweeper takes any ETH you send before you can spend it. A sweeper bot is a script that watches a compromised address and moves out incoming ETH the moment it arrives. MetaMask's guide to fighting back against sweeper bots describes exactly this trap.

Even if your claim somehow went through, the tokens would land in a wallet the attacker controls. So a normal claim either fails for lack of gas or hands the attacker your airdrop. You need the claim and the transfer out to happen together, with gas that never sits in the wallet long enough to be swept.

How do airdrop claims work on-chain?

Most airdrops use a Merkle distributor: a contract that stores one hash (the Merkle root) of the full list of eligible addresses and amounts. To claim, you submit your address, amount and a proof that your entry is in that list. Uniswap's open-source MerkleDistributor is the reference design that many projects copied.

There are two common patterns, and which one your airdrop uses changes how urgent this is:

Claim pattern Who can call claim? Where tokens go What it means for you
claim(index, account, amount, proof) (Uniswap-style) Anyone Always to account, your compromised address The attacker can trigger the claim and sweep the tokens with their own bundle
claim(amount, proof) using msg.sender Only the eligible address To the caller The claim must be signed with the compromised key, by you or the attacker
Claim through an off-chain signature or website Depends on the project Sometimes a different address Check whether the project lets you claim to a new address

In the Uniswap code, claim checks the proof and then calls safeTransfer(account, amount). There's no check on who called it. That's fine for normal users, but for you it means anyone can push the tokens into your compromised wallet, and an attacker who's watching can follow with their own transfer. Either way, whoever has the key and gets a bundle in first wins.

How do you claim an airdrop from a compromised wallet with Flashbots?

You send a bundle: an ordered list of signed transactions that a block builder includes together, in the same block, or not at all. The Flashbots RPC docs describe eth_sendBundle for submitting it and eth_callBundle for simulating it first. Here's the process I use:

  1. Create a brand-new safe wallet on a device you trust. Never reuse anything derived from the leaked seed.
  2. Fund a separate sponsor wallet with enough ETH for the gas of every transaction in the bundle, plus a small builder tip.
  3. Get the exact claim calldata. Open the claim page with the compromised address (read-only, don't sign) or read the distributor contract on Etherscan, and get your index, amount and Merkle proof. Many projects publish the proofs in a public repo or API.
  4. Check the token is transferable. If the token can't be transferred yet (pre-launch locks, vesting, pausing), the transfer will revert and so will the whole bundle.
  5. Sign three transactions with consecutive nonces:
    • Sponsor → compromised wallet: exactly the ETH needed for the next two transactions.
    • Compromised wallet: the claim call.
    • Compromised wallet: transfer of the full claimed amount to the safe wallet.
  6. Simulate the bundle with eth_callBundle against the next block. All three must succeed.
  7. Submit with eth_sendBundle for the next block, and keep resubmitting for each new block until it lands. Bundles target one block, so a single send that misses just expires.
  8. Abandon the compromised wallet once the tokens are safe. The attacker still has the key.

If the airdrop has more claims (a second season, staking rewards, an NFT), add them to the same bundle instead of doing a second run, since every extra round gives the attacker another chance.

When a bundle won't land, the cause is almost always a wrong nonce, too little gas sent by the sponsor, a revert in simulation, or a target block that already passed. My guide to Flashbots bundles and why yours isn't landing goes through each one.

Which tools can do an airdrop rescue?

You don't have to write it from scratch. These are the realistic routes:

  • Flashbots searcher-sponsored-tx: the original open-source reference for a sponsor wallet paying gas for a compromised one. You'd adapt its transfer logic to add the claim call first.
  • BuidlGuidl Hacked Wallet Recovery: the original version let you paste a raw transaction into the bundle, which its README calls "super useful for airdrop claims". The V2 repository now batches transfers with EIP-7702 authorizations, so check what it currently supports for claims before relying on it.
  • Flashbots Whitehat Hotline: the whitehat page says they can only help with remaining assets above a minimum value and only through whitehat.flashbots.net. Impersonators exist, so use only that address.
  • A rescue tool you run yourself. Whatever you use, prefer tools where the compromised key stays on your machine, and never give your seed phrase to someone who DMs you offering help.

What if the wallet has an EIP-7702 delegation?

Check before you build anything. Since Ethereum's Pectra upgrade, an attacker with your key can attach a delegation that makes your address run their code, and that code can change how incoming ETH or calls behave. A plain bundle may then fail in ways that are hard to debug. Follow my guide to checking and removing a malicious EIP-7702 delegation and include the fix in your plan.

Also check for approvals. If the attacker already holds an approval on the airdrop token or uses a Permit2 signature, they might not need your key at all. The steps are in how to revoke token approvals and Permit2 signatures.

When can't an airdrop be rescued?

Be honest with yourself about these cases:

  • The attacker already claimed and moved it. Check the distributor's Claimed events or your address on Etherscan. Once tokens leave the address, no bundle brings them back.
  • The token isn't transferable yet. You can sometimes claim now and transfer later, but on a Uniswap-style distributor the claimed tokens sit in a wallet the attacker can also sweep the moment trading opens. Then it becomes a race at launch.
  • The claim needs a signature on a website that sends it from the wallet. You can often still capture the raw transaction and bundle it, but some flows (KYC, social linking) can't be done safely from a compromised key.
  • The claim window closed. Many distributors have a deadline after which unclaimed tokens return to the project.

Frequently asked questions

Can I claim an airdrop from a hacked wallet?

Yes, if it hasn't been claimed and moved yet and you still have the private key. Use a Flashbots bundle that funds gas, claims and transfers the tokens to a new wallet in the same block.

Will the sweeper bot steal my airdrop?

It will if the tokens reach the wallet outside a bundle. Sweepers take ETH instantly, and on airdrops anyone can trigger the claim on, attackers can claim and sweep with their own bundle, so move early.

Can I claim an airdrop to a different wallet?

Only if the project supports it. Most Merkle distributors send tokens to the eligible address, so the usual route is to claim and transfer out in one bundle.

How much ETH do I need for an airdrop rescue?

Enough for the gas of the claim and the transfer plus a small builder tip, paid from a separate sponsor wallet. Simulate the bundle with eth_callBundle to get the exact gas used.

Can Flashbots help me rescue an airdrop?

The Flashbots Whitehat Hotline may help if the remaining value is above its minimum. Requests should only go through whitehat.flashbots.net.

Should I keep using the wallet after claiming?

No. The key is permanently compromised, so move everything out and never fund that address again.

Related guides


Airdrops in compromised wallets are one of the most common rescue requests I get. MEV DAO's Token Rescue Bot uses Flashbots bundles through private builders to move tokens out of a wallet that a sweeper bot is draining, so the sweeper never sees the ETH. It's part of the MEV DAO subscription, which you can try free for 3 days. If your airdrop uses an unusual claim flow, message me on Telegram and I'll take a look.

← All articles