SEO 4 min read

Crypto Airdrop Script: Distribution Without Paying Twice

Push versus claim, the five stages of a distribution, why idempotency matters more than anything else, and how much of a typical airdrop gets farmed.

S
ShipWeb3 Admin August 22, 2026 · 11 views

The part nobody warns you about: deciding who gets tokens is easy. Actually delivering them to thousands of wallets without running out of gas, paying someone twice, or funding an army of fake accounts is the entire engineering problem.

Push or claim — decide this first

Every airdrop is one of two shapes, and the choice determines your cost, your risk and your code.

Push (you send)Claim (they collect)
Who pays gasYou, for every recipientThe recipient
Cost at 10,000 walletsTen thousand transfersOne contract deployment
Unclaimed tokensImpossible — everyone gets themTypically 40–70% go unclaimed
Failure modeA batch dies halfway and state is unclearPeople miss the window and complain
Feels likeA giftA task
Right whenSmall lists, or the gesture mattersLarge lists, or gas cost is prohibitive

Most large airdrops use claim with a merkle proof: publish a root on-chain, give each eligible wallet a proof, and let them collect. It moves the cost to the recipient and scales to any list size. Push is warmer and simpler, and it is the right answer for a few hundred people.

The five stages of a distribution

1
Snapshot
Freeze the eligibility data at a fixed block or timestamp and publish that fact. Anything you compute later is contestable.
2
Eligibility rules
Write them before you look at the data. Rules invented after seeing who qualifies always look self-serving, because they are.
3
Sybil filtering
Cluster wallets by funding source, timing and behaviour. Expect to remove a substantial share of the list.
4
Distribution
Push in batches with idempotency, or publish a merkle root and let people claim.
5
Reconciliation
Prove afterwards that what left the treasury matches what the rules said. Without this you cannot answer a single dispute.

Where distributions actually break

Failure modes, by cost when they happen
Non-idempotent batch retries — the same wallet paid twice, unrecoverable
 
Sybil farms taking most of the supply — the airdrop funds bots, not users
 
Gas exhaustion mid-distribution — half-complete, unclear state
 
Eligibility rules changed after the snapshot — reputational, and permanent
 
Claim window too short — recoverable, but noisy
 

The first row is the one that ruins projects. A distribution script must be able to answer “has this wallet already been paid?” before every single transfer, and answer it from persisted state rather than from memory. Any script that loops through a list and sends will eventually be re-run after a failure and pay a chunk of the list twice.

Sybil resistance, realistically

Published analyses of major airdrops routinely find that a large share of claimants are linked wallets rather than distinct people. You will not eliminate this. What you can do is make it expensive enough that the return is not worth it.

The signals that work in combination: funding source (many wallets funded from one address), timing clusters (accounts created within minutes), behavioural sameness (identical transaction patterns), and interaction depth (one qualifying action versus sustained use). None is conclusive alone. Scored together they remove most of the cheap farming while keeping false positives low enough to handle by appeal.

Where ShipWeb3 fits

ShipWeb3 does not sell a token-distribution contract. What it sells is the layer around it — the thing that decides who earned an allocation and pays them.

The Instant USDT Paying Telegram Bot is a working mass-payout pipeline: BEP-20 USDT sent from a wallet you own, key encrypted at rest, with batching and per-user records. The referral bot contributes the sybil scoring — account age, device fingerprint and joining velocity, with a held-for-review queue. The play-to-earn app gives you the qualifying activity itself, so allocations reflect participation rather than a wallet snapshot.

All unobfuscated PHP 8 and MySQL, one-time purchase, free lifetime updates.

Common questions

Do I need a smart contract for an airdrop?
For a claim-based distribution of an on-chain token, yes — usually a merkle distributor. For push payments of an existing token like USDT, no: a signing service and a solid batch job is enough.
How do I stop the same wallet being paid twice?
Persist a record per recipient before sending and check it before every transfer. In-memory tracking fails the moment the job restarts, which it will.
What percentage of an airdrop gets farmed?
Analyses of major airdrops routinely put linked-wallet claimants in the tens of percent. Plan for a meaningful share and filter accordingly rather than assuming a clean list.
Push or claim for a first airdrop?
Push, if the list is small enough that gas is affordable. It is simpler, warmer, and avoids the awkwardness of most of your allocation going unclaimed.
Is running an airdrop legal?
It depends entirely on what the token is and where your recipients are. Distributing something that functions as a security has real consequences. Take advice before distributing, not after.
The payout layer, already built
Mass USDT payouts from your own wallet, with batching and per-user records.
See the USDT payout bot
S
ShipWeb3 Admin

Web3 developer building Telegram Mini Apps, bots and on-chain products.

Skip the build

Want this already working?

The code behind these articles is available as complete, deployable projects.