Blog
Tracking Token Migration and Contract Upgrades on Solscan: When Projects Move Liquidity
Token projects on Solana frequently migrate from one contract address to another for legitimate reasons: security audits require redeployment, liquidity pools need consolidation, or an upgraded contract offers better functionality. But migration is also a common vector for theft. A project founder may announce a new contract address while quietly draining liquidity from the old one, or may fail to migrate token holder balances correctly, leaving users unable to access their holdings. The difference between a successful migration and a scam often comes down to whether the old contract’s liquidity actually reached the new one.
Identifying what happened requires more than trusting a project’s announcement. A blockchain explorer provides the evidence: transaction records, contract interactions, token transfers, and liquidity pool states. Solana’s transparent ledger makes it possible to trace exactly where funds moved and whether they arrived. The challenge is knowing which data points matter and how to read them correctly.
How to identify a token migration on the blockchain
A token migration announcement often includes a new contract address, a deadline, or instructions to swap old tokens for new ones. Before moving any funds, verify that the announcement comes from an official source: the project’s verified Twitter account, their primary website domain, or their official Discord channel. Scammers create near-identical accounts and send direct messages pointing to fraudulent contracts. A contract address itself is the authoritative record on Solana: if tokens are not actually transferring into it, the migration is not happening.
On Solscan, navigate to the old contract address and check its token supply and recent transaction history. A real migration typically involves a burn or transfer of a significant portion of tokens from the old contract to the new one. Look for transactions marked as «Transfer» or «Burn» in the transaction log. The old contract’s supply should decrease as tokens move out. If the supply remains unchanged weeks after the announced migration date, funds are not being transferred, and token holders still holding old tokens are not receiving the promised swap.
The timing of these transactions is also revealing. A legitimate migration may happen in a single transaction or a series of transactions over hours or days as liquidity is systematically moved. A project that announces a migration but then delays or never executes the actual blockchain transactions is a sign of either incompetence or intentional deception. Because Solscan provides real-time updates, you can track the exact moment liquidity leaves the old contract and follow it to its destination.
Search for both contract addresses on Solscan to compare their transaction tracking patterns. The old contract should show outbound transfers near the migration date. The new contract should show corresponding inbound transfers of the same tokens and amounts. If the new contract receives nothing, but the old contract’s supply decreases, the tokens may have been sent to an unannounced address, burned, or destroyed—none of which benefits token holders waiting for a swap.
Verifying liquidity pool migration using Solscan analytics
Decentralized exchanges on Solana like Raydium and Orca maintain liquidity pools that allow trading between token pairs. When a project migrates, its liquidity pool must move from the old token to the new one. This is not automatic. A project team must manually withdraw liquidity from the old pool, receive the paired tokens (usually USDC or SOL), and then deposit that capital into a new pool using the new token contract.
Check the old pool’s current state by searching for it on Solscan. Liquidity pools have distinct addresses that you can find by navigating to the old token’s contract page and looking for «Associated Programs» or querying Raydium or Orca directly. On Solscan, view the pool’s transaction history and liquidity events. A major withdrawal—marked as a transfer of the liquidity provider tokens from the pool—should occur during the migration window. The size of this withdrawal should roughly match the total liquidity that was in the pool.
After the withdrawal, check the project team’s wallet to see if it received the USDC, SOL, or other paired assets. Then verify that a new liquidity pool was created using the new token contract. The timing and amounts should align: if 1 million USDC was withdrawn from the old pool, approximately 1 million USDC should appear in a new pool. If the amounts do not match, or if the liquidity was withdrawn but no new pool was created, the project has not actually migrated. This is a red flag for either abandonment or fraud.
Solscan also allows you to track the DEX transactions directly. On the old token’s page, review the «Token Activity» section for large transfers to DEX programs or zero-address burns. On the new token’s page, look for the creation of new pools and deposits of liquidity. The blockchain data will show the exact sequence of events and help you determine whether the project followed through on its migration promise.
Checking whether token holder balances were properly transferred
Some migrations require token holders to manually swap their old tokens for new ones using a bridge contract. Others promise an automatic airdrop or balance transfer. Both approaches have different risk profiles, and Solscan can help you verify which actually happened.
If the migration required a manual swap, look at the old token’s transaction history and search for large transfers to the swap contract or bridge address. These transfers represent token holders reclaiming their balances. If weeks have passed and you see very few transfers, adoption is low—possibly because the swap interface was buggy, poorly advertised, or the new token is not trading, making the swap pointless. A successful migration usually shows a burst of transfer activity concentrated around the migration date.
If the project promised an automatic airdrop, the new contract’s transaction history should show a large number of transfer transactions from a team-controlled wallet to individual holder addresses. You can verify your own balance by searching your wallet address on Solscan and checking whether the new token appears in your «Tokens» section. If you held old tokens but the new token does not appear, and no swap was available, the migration likely failed or was never completed.
You can also verify this by comparing the old token’s holder count before the migration with the new token’s holder count after. A legitimate migration should result in a similar or greater number of token holders on the new contract, since all old holders should receive new tokens. If the new token has significantly fewer holders, many token holders were left behind, which indicates either a failed migration or an intentional exclusion.
Detecting liquidity extraction disguised as migration
One sophisticated scam uses migration as cover for liquidity theft. A project announces a «strategic migration,» instructs token holders to swap to a new contract, but the project team does not actually migrate the old pool’s liquidity. Instead, they create an entirely new liquidity pool with minimal capital, then sell their team tokens into it, crashing the price. Meanwhile, token holders who swapped their tokens are left holding worthless new tokens with no underlying liquidity support.
To identify this, compare the liquidity in the old pool immediately before migration with the liquidity in the new pool immediately after. On Solscan, you can view historical pool states by examining the transaction log. A legitimate migration should preserve liquidity: if the old pool had $500,000 in value, the new pool should have roughly $500,000 at the time of its creation. If the new pool has only $50,000, the missing $450,000 was extracted by the project team.
Another warning sign is inconsistency in the token supply. If the old token contract shows a total supply of 1 billion tokens and the new contract also shows 1 billion tokens, but only 200 million new tokens appear in the new pool, where did the other 800 million go? They may have been minted to the team’s wallet and are waiting to be dumped. On Solscan, search for transactions that move large amounts of the new token to a single wallet address shortly after the contract was created. This is a strong indicator of a team preparing to rug the liquidity pool.
Using wallet address tracking to follow fund flows
Solscan’s wallet exploration tools allow you to monitor the project team’s actual movements, not just their announcements. Search for the wallet address listed as the contract owner or administrator. Track all of its transactions during and after the migration period. Legitimate projects show clear fund flows: liquidity withdrawn from the old pool, new pool created, liquidity deposited into the new pool, and then minimal further activity from that wallet.
Fraudulent projects show different patterns. A team wallet that receives liquidity from the old pool but then immediately transfers it to an exchange or a new address outside the project is extracting value. Similarly, if the team wallet creates the new contract but never deposits any liquidity into the new pool, the migration is incomplete or abandoned. These patterns are not opinions; they are blockchain data visible on Solscan platform, available for anyone to audit.
You can also set up alerts by bookmarking critical contract and wallet addresses and checking them regularly. If you are considering investing in the new token, monitor whether the project team continues to add liquidity, or whether they begin selling their holdings. A team that believes in its project typically adds to the liquidity pool over time. A team that does not will often extract capital and disappear.
Red flags that indicate a failed or fraudulent migration
Several patterns on Solscan should trigger immediate caution. The first is a migration announcement without corresponding blockchain transactions. If the project has announced a migration but Solscan shows no transfers out of the old contract after three days, the migration has not actually begun. The second is a discrepancy between announced and actual timelines. If the project said the migration would complete on day one, but Solscan shows no significant liquidity movement until day fourteen, the project is either disorganized or deliberately delaying to give themselves time to extract value.
The third red flag is incomplete liquidity. If the old pool had significant liquidity and the new pool has very little, ask publicly on social media or Discord where the missing liquidity went. A legitimate project will provide a clear explanation, ideally with a transaction hash from Solscan that proves the funds are in a secure multisig wallet or locked via a protocol like Marinade. If the project provides no explanation, the liquidity was likely extracted.
The fourth is rapid dumping by the team. Search for the team wallet on Solscan and check whether tokens from the new contract are being sold into the new liquidity pool immediately after creation. If the team is buying on the new contract but selling on a DEX simultaneously, they are using the migration to distribute their tokens to unsuspecting new buyers while extracting liquidity.
The fifth is a missing or revoked audit. Some projects claim to have undergone a security audit as justification for migration. Verify this by checking the auditor’s website or searching Solscan for the audit contract address. If no audit exists or the audit was revoked, the migration may be a pretext for launching a new scam with improved social engineering.
Step-by-step verification workflow for any token migration
When you encounter a migration announcement, follow this sequence. First, verify the official announcement source and the new contract address. Do not trust messages from anyone except the project’s verified social media accounts or official website. Second, search both the old and new contract addresses on Solscan. Record the supply, holder count, and transaction date for both.
Third, identify the liquidity pool addresses for both contracts by looking for «Associated Programs» or by searching the old token and checking which Raydium or Orca pools reference it. Fourth, check the old pool’s withdrawal history. A legitimate migration should show a large withdrawal near the announced migration date. Fifth, check the new pool’s creation and initial liquidity deposit. The amount should be comparable to the old pool.
Sixth, search the project team’s wallet and verify that it received the liquidity withdrawn from the old pool and deposited it into the new pool. Seventh, check your own wallet on Solscan to see whether you received the new tokens. If you did not and the project promised an automatic airdrop, the migration is incomplete. Eighth, monitor both wallets and pools over the following week for any unusual activity: rapid dumping, sudden liquidity removals, or transfers to exchange addresses.
This workflow takes fifteen minutes and costs nothing. Solscan provides all the data free of charge and requires no login. A small amount of verification on the blockchain is significantly less expensive than the loss from a failed migration or rug pull.
Why developers and traders should audit migrations themselves
Many token holders trust project announcements without verifying them on-chain. This trust is often misplaced. Even honest projects can have execution errors: a migration that leaves some token holders behind, or liquidity that is inadvertently locked in the wrong address. Developers can use Solscan’s APIs to automate migration tracking, comparing the old contract’s holder list with the new contract’s and identifying discrepancies programmatically.
Traders should treat migrations as volatility events and verify that the new contract has actual liquidity before attempting to buy. A large price spike on a low-liquidity pool can be reversed instantly when true price discovery occurs. By auditing the migration on Solscan before trading, you can avoid catching a falling knife.
The fundamental principle is that blockchain transparency is only useful if it is actually used. A project’s integrity is not determined by its website design, its social media follower count, or how many times the team promises accountability. It is determined by whether the blockchain transactions match the announcements. Solscan makes this audit accessible and free, putting the responsibility—and the power—in the hands of token holders, developers, and anyone interested in understanding what actually happened to their capital.
Frequently asked questions
How can I tell if a token migration is legitimate on Solscan?
A legitimate migration shows liquidity withdrawn from the old contract’s pool and deposited into a new pool with a comparable amount. The old contract’s supply should decrease as tokens transfer to the new contract. The project team’s wallet should show clear transaction trails: withdrawals from the old pool matched by deposits into the new pool. Verify the official announcement source before trusting any contract address.
What should I do if I held tokens in the old contract but do not see the new token in my wallet?
First, verify that the migration actually completed by checking both contract addresses on Solscan for transfer activity near the announced migration date. If the migration happened, check whether it required a manual swap. If so, use the swap contract to exchange your old tokens for new ones. If the migration promised an automatic airdrop and you received nothing, the migration likely failed or you were excluded. Contact the project team with evidence from Solscan.
How do I check whether the project team extracted liquidity instead of migrating it?
Compare the old pool’s liquidity value immediately before migration with the new pool’s liquidity value immediately after on Solscan. If the new pool has significantly less liquidity than the old pool, the missing capital was extracted. Search the project team’s wallet for transactions showing where the liquidity went. If the team withdrew liquidity but did not deposit it into the new pool, they extracted the funds.