What it is
Token migration after an exploit is the process of abandoning a compromised or buggy token contract and moving holders over to a freshly deployed, fixed contract. Rather than trying to patch an immutable contract in place (usually impossible without an upgrade mechanism baked in beforehand), the project issues a new token and offers a swap mechanism so existing holders don't simply lose their balances.
How it works
- Following a hack, an exploited bug, or an unrecoverable contract flaw, the team takes a snapshot of token balances at a specific block, ideally before the exploit's effects (e.g., a hacker's minted tokens) can be included.
- A new token contract is deployed with the vulnerability removed or the tokenomics corrected, and a migration/swap contract is set up alongside it.
- Holders of the old token approve and send it to the migration contract (or the migration contract reads the snapshot directly), which burns or locks the old tokens and mints an equivalent amount of the new token, usually at a defined ratio (often 1:1, but sometimes adjusted if supply was affected by the exploit).
- The exchange rate and eligibility rules are usually made public in advance — commonly excluding balances that resulted directly from the exploit itself, so the attacker doesn't get to migrate stolen or illegitimately minted tokens.
- Exchanges, bridges, and integrated protocols are notified to update their listings and liquidity pools to reference the new contract address, and liquidity is often incentivized to move to a new pool for the new token.
- A migration deadline is typically set, after which the old contract may be considered fully deprecated (though old tokens usually remain technically transferable forever unless explicitly frozen).
Why designers use it
- It's often the only practical remedy when a live, immutable contract has a critical, actively-exploited bug that can't be patched.
- Lets the community and legitimate holders recover value and continuity rather than the project shutting down entirely after a hack.
- Gives the team a clean opportunity to also fix unrelated tokenomics issues (e.g., supply cap, minting permissions) that they couldn't have changed on the old contract.
- Draws a clear, auditable line for what counts as "legitimate" balances versus attacker-created ones, using the pre-exploit snapshot as the source of truth.
Failure modes
- Snapshot timing disputes are common: if the snapshot block is chosen even slightly wrong, either attacker-minted tokens get included or some legitimate late transactions get excluded.
- Migration windows create a race — holders who are slow, inactive, or unaware (lost keys, abandoned wallets, users on vacation) can permanently miss the swap and lose access to value.
- Liquidity fragmentation during the transition period (old token still trading somewhere, new token thin) creates arbitrage confusion and can be exploited by traders aware of the asymmetry before the broader market catches up.
- Phishing and scam contracts mimicking the "official" migration are extremely common in this exact scenario, since users are primed to interact with an unfamiliar new contract address under time pressure.
- If governance or communication about the migration is unclear, some holders migrate to the wrong pool, wrong ratio, or wrong contract, resulting in irreversible loss.
What to check before using it
- Verify the snapshot block is chosen and communicated precisely, with reasoning for why it excludes exploit-related balances.
- Confirm the migration contract has been audited independently of the original (compromised) codebase, since panic-driven redeploys are prone to new mistakes.
- Check that official migration links and contract addresses are communicated through multiple verified channels to reduce phishing risk.
- Look at whether there's a long enough (and possibly extendable) migration window, and what happens to unmigrated balances after the deadline — permanently locked vs. still swappable later.
- Confirm exchanges, bridges, and integrated protocols have a clear, coordinated plan and timeline to switch over, to avoid users trading a "dead" token unknowingly.