← back to blog

When A Protocol Changes Eligibility After The Snapshot

The scenario

A protocol announces a snapshot block. Farmers stop what they’re doing, check their wallets against whatever criteria has been published, and move on. Weeks later, the claim portal opens and the criteria look different from what was announced. A minimum transaction count got raised. A “must have bridged before X” clause appeared that wasn’t in the original blog post. An entire category of activity, like using a specific aggregator, got excluded after the fact.

This happens often enough that it’s worth understanding mechanically, not just complaining about it. A snapshot is a data capture. Eligibility is a rule set applied to that data. Those are two separate steps, and the second one can happen any time before the claim is finalized, including after the first one already occurred.

Why this is technically possible

A snapshot block only fixes the state of the chain at that block: balances, transaction counts, contract interactions, whatever the team decided to record. It does not fix the criteria used to filter that data into a final allocation list. The filtering logic lives off-chain, usually in a script or a database query the team runs internally, and it can be rewritten right up until the Merkle tree for the claim contract gets generated.

Put another way: the snapshot is a photograph, but eligibility is the caption someone writes underneath it later. The photograph doesn’t change. The caption can, because nothing on-chain locks it in until the claim contract is deployed with its Merkle root. Before that point, the team has full discretion to add exclusions, raise thresholds, or reclassify addresses.

Common reasons a team does this after the fact:

  • Sybil detection results come in late. Clustering analysis on a large address set takes time. A team might publish provisional criteria, then run wallet clustering afterward and add an exclusion clause for flagged clusters.
  • Legal or compliance review. Geo-restrictions or KYC-adjacent rules sometimes get bolted on late in the process, after counsel reviews the token’s classification in specific jurisdictions.
  • Budget constraints. If the qualifying address count comes in far higher than modeled, a team facing a fixed token allocation may tighten thresholds to bring the eligible pool down to a size the treasury can support.
  • Gaming discovered post-snapshot. If a team notices a spike in low-effort activity right before the snapshot block, some retroactively raise the bar for what counts as “real” usage.

None of these require bad faith. They’re closer to operational reality: eligibility criteria are a business decision, and business decisions get revised when new information shows up.

What changes in practice

The changes usually fall into a small number of buckets:

Threshold increases. “3+ transactions” becomes “10+ transactions.” Anyone sitting right at the old bar drops out.

Time-window narrowing. Activity across the full history before the snapshot gets narrowed to “must have transacted in the last 60 days before snapshot,” cutting out early users who went quiet.

New exclusion categories. A category of wallet gets carved out entirely, most commonly ones flagged by clustering analysis as connected to a larger group of addresses under common control.

Reclassification of specific interactions. Using a router or aggregator contract instead of the protocol’s own frontend sometimes gets reclassified as “not qualifying activity,” even if the on-chain effect was identical.

How this connects to wallet clustering

This is where the sybil-detection side of the story matters, and it’s worth being precise about how it works rather than treating it as a black box.

Chain analysis tools build a graph of addresses and edges between them, where an edge represents evidence of common control: funding from the same source address, gas paid from a shared hot wallet, near-identical transaction timing across addresses, identical interaction sequences (same contracts, same order, same amounts scaled by a constant), or funds consolidating back to one address after farming activity ends. None of these signals require any private information. They’re all visible directly on-chain, which is why post-snapshot exclusion is possible even for activity that already happened: the evidence was public the whole time, the team just hadn’t run the analysis yet.

A cluster doesn’t need every one of these signals to get flagged. A funding fan-out from one source wallet to fifty new wallets, followed by near-identical activity on each, is a strong enough pattern on its own. Add a common gas-payer or a common destination for consolidated funds, and it becomes close to unambiguous from an analytics standpoint.

Defensively, the goal is to avoid creating those edges rather than to hide the wallets themselves. That means:

  • Funding wallets independently, through different on-ramps or different intermediate hops, instead of one source wallet spraying out to many addresses.
  • Giving each wallet its own IP path so that network-layer correlation (shared IP or shared subnet across many wallets) doesn’t stack on top of on-chain correlation. This is the proxy and RPC layer, not the wallet layer, and it’s a separate defensive step from funding hygiene.
  • Varying transaction timing and sequence naturally rather than running every wallet through an identical script with the same delays.
  • Not consolidating farmed funds back to a single address right after the snapshot. That consolidation event is one of the easiest patterns to spot and one of the most common mistakes.

None of this guarantees a wallet stays unflagged, and nothing here is a claim that any specific technique defeats detection. Clustering models get updated too. The honest framing is that good operational hygiene reduces the number of easy signals a team has to work with, not that it makes a wallet invisible.

What to actually do when criteria change

There’s no lever a farmer can pull to force a team to honor the original criteria. Claim contracts are deployed with the eligibility list the team decides on, and that decision is theirs. What’s within a farmer’s control is how the operation is run before that point:

  • Keep records. Transaction hashes, dates, and what each wallet did. If a team’s stated criteria at snapshot time genuinely differed from what got enforced, having a timestamped record of the original announcement (a saved page, a screenshot with a timestamp, an archived blog post) is the only leverage available if a team is disputing its own past statements.
  • Treat published pre-snapshot criteria as provisional, not final. Farming activity should be driven by genuine, varied usage of a protocol rather than the minimum needed to clear one specific stated bar, since that bar can move.
  • Diversify across protocols. Concentrating effort on one protocol’s exact stated threshold is the position most exposed to a late rule change. Spreading real usage across several protocols means one retroactive tightening doesn’t zero out the effort.
  • Don’t assume a claim is coming. No published criteria, before or after a snapshot, is a promise of a token, a payout, or any specific outcome. Eligibility criteria describe who a team is currently planning to include, not a contractual entitlement.

This is not financial advice and nothing here predicts what any protocol’s token will be worth or whether any specific wallet will qualify for anything. The point of understanding the mechanics is purely operational: knowing that eligibility is a caption written after the photograph, not part of the photograph itself, changes how a farm should be run and what records are worth keeping.

Airdrop Farming covers this kind of operational detail on the site’s home page, along with wallet management, chain analysis clustering, and tested reviews of the tools involved in running a farm properly.

Get new guides and videos first — join the Telegram channel.

need infra for this today?