Automated Wallet Management for Airdrop Farming
Airdrop farming requires managing hundreds of wallets, executing systematic on-chain transactions, and interacting with dozens of protocols simultaneously. Manual management of hundreds of wallets takes hundreds of hours per month and inevitably leads to errors: missed transactions, suboptimal gas, and pattern correlation that triggers sybil bans. Our team has over 5 years of experience in DeFi automation and has successfully completed more than 50 projects in this space. An automation system is a must-have tool for any serious farmer. Contact us to discuss your tasks and get a custom automation project.
What Professional Airdrop Farming Entails
Analysis of major airdrop campaigns (Arbitrum, Optimism, ZkSync, LayerZero, EigenLayer) reveals the patterns that were rewarded: regular activity over many months, diverse protocol usage, native transactions (not just bridging), token holding, and governance participation. The system must automate precisely these patterns while maintaining organic-looking activity.
System Architecture
Wallet Hierarchy
A professional farmer works with multiple key levels:
- Master wallet — cold wallet (Ledger/Trezor or air-gapped machine). Holds the main capital. Never used directly in protocols.
- Fund wallets (2-5) — intermediate wallets for fund distribution. Receive ETH/USDC from master, distribute to farming wallets.
- Farming wallets (50-500) — working wallets that directly interact with protocols. Each generated as a separate HD path from one or more seed phrases.
Master Wallet
↓ (manual transfers)
Fund Wallets [1-5]
↓ (automated distribution)
Worker Wallets [50-500]
↓ (automated interactions)
DeFi Protocols
Important: farming wallets must not have direct on-chain links to the master wallet. The chain fund wallet → worker wallet with varying time intervals reduces correlation.
Key Generation and Storage
All worker wallets are generated deterministically from mnemonic phrases according to BIP44:
import { HDNodeWallet, Mnemonic } from "ethers";
function generateFarmingWallets(
mnemonic: string,
count: number,
startIndex: number = 0
): WalletInfo[] {
const masterNode = HDNodeWallet.fromMnemonic(
Mnemonic.fromPhrase(mnemonic)
).derivePath("m/44'/60'/0'/0");
return Array.from({ length: count }, (_, i) => {
const wallet = masterNode.deriveChild(startIndex + i);
return {
index: startIndex + i,
address: wallet.address,
privateKey: wallet.privateKey,
derivationPath: `m/44'/60'/0'/0/${startIndex + i}`,
};
});
}
Key storage: never store private keys in plaintext. Options include AES-256-GCM encryption with a password (KDF: Argon2id), storing only the seed phrase + on-demand derivation, or using HashiCorp Vault for team use.
Wallet and Activity Database
CREATE TABLE wallets (
id SERIAL PRIMARY KEY,
address VARCHAR(42) UNIQUE NOT NULL,
derivation_path VARCHAR(64),
wallet_group VARCHAR(64),
created_at TIMESTAMPTZ DEFAULT NOW(),
last_active_at TIMESTAMPTZ,
total_gas_spent NUMERIC(30, 18) DEFAULT 0,
notes TEXT,
tags TEXT[]
);
CREATE TABLE protocol_interactions (
id BIGSERIAL PRIMARY KEY,
wallet_id INTEGER REFERENCES wallets(id),
protocol VARCHAR(128) NOT NULL,
chain_id INTEGER NOT NULL,
tx_hash VARCHAR(66),
action_type VARCHAR(64),
amount NUMERIC(30, 18),
gas_used NUMERIC(30, 18),
executed_at TIMESTAMPTZ DEFAULT NOW(),
status VARCHAR(16) DEFAULT 'pending',
metadata JSONB
);
CREATE TABLE farming_tasks (
id BIGSERIAL PRIMARY KEY,
wallet_id INTEGER REFERENCES wallets(id),
task_type VARCHAR(128) NOT NULL,
protocol VARCHAR(128) NOT NULL,
chain_id INTEGER NOT NULL,
parameters JSONB NOT NULL,
scheduled_at TIMESTAMPTZ,
executed_at TIMESTAMPTZ,
status VARCHAR(16) DEFAULT 'pending',
retry_count INTEGER DEFAULT 0,
error_message TEXT
);
How We Automate Interactions
Task Runner
The task execution system mimics human behavior: random delays between transactions, varying times of day, different gas prices.
class FarmingTaskRunner {
async executeTask(task: FarmingTask): Promise<TxReceipt> {
const wallet = await this.walletManager.getWallet(task.walletId);
const provider = this.getProvider(task.chainId);
// Случайная задержка 30с - 5 мин перед транзакцией
const delay = randomBetween(30_000, 300_000);
await sleep(delay);
// Случайное изменение gas price в пределах ±10%
const gasPrice = await this.getGasWithVariance(provider, 0.1);
const handler = this.handlers.get(task.taskType);
if (!handler) throw new Error(`Unknown task type: ${task.taskType}`);
return handler.execute(wallet, task.parameters, { gasPrice });
}
private async getGasWithVariance(provider: Provider, variance: number) {
const feeData = await provider.getFeeData();
const base = feeData.maxFeePerGas!;
const multiplier = 1 + (Math.random() * 2 - 1) * variance;
return base * BigInt(Math.round(multiplier * 100)) / 100n;
}
}
Protocol Handlers
Each protocol has its own handler. Example for Uniswap V3:
class UniswapV3SwapHandler implements ProtocolHandler {
async execute(
wallet: Wallet,
params: SwapParams,
options: ExecutionOptions
): Promise<TxReceipt> {
const router = new Contract(UNISWAP_V3_ROUTER, ROUTER_ABI, wallet);
const deadline = Math.floor(Date.now() / 1000) + 1800; // 30 мин
const tx = await router.exactInputSingle({
tokenIn: params.tokenIn,
tokenOut: params.tokenOut,
fee: params.fee,
recipient: wallet.address,
deadline,
amountIn: params.amountIn,
amountOutMinimum: params.minAmountOut,
sqrtPriceLimitX96: 0,
}, {
maxFeePerGas: options.gasPrice,
maxPriorityFeePerGas: options.maxPriorityFeePerGas,
});
return tx.wait();
}
}
Similar handlers are created for Curve, AAVE, GMX, Stargate, Wormhole/LayerZero bridge, Pendle, and other protocols.
How We Protect Against Sybil Detection
Modern airdrop systems actively combat sybil attacks. We account for several factors:
- Activity uniqueness. Patterns are not copied between wallets: different amounts, different protocols, different timing patterns.
- IP rotation: each wallet operates through a separate proxy/VPN. A shared IP is a strong sybil signal.
- Source of funds: the funding chain should not be traceable to a single source. CEX withdrawals to different wallets are good; direct transfers are bad.
- Wallet age: older wallets are valued more. The system creates wallets ahead of time and gives them a history before the target deadline.
According to Nansen analytics, IP address correlation is one of the main factors in sybil detection in major airdrop campaigns.
Monitoring and Analytics
For each wallet, the system shows: on-chain activity by protocol (with dates), gas spent (in USD), current positions, score based on known metrics (volume, transaction count, unique protocols, days active), and current balance across chains. The system automatically calculates an estimated airdrop score for each tracked project and provides recommendations.
Example of airdrop score calculation
Score may include weighted metrics: volume (35%), transaction count (25%), unique protocols (20%), days active (20%). Weights are customizable per project.Why Gas Optimization Is Critical
With 200 wallets making 3–5 transactions per day each, gas optimization is vital. Transactions on L2 (Arbitrum, Base, Optimism) are 10–50 times cheaper than mainnet: average gas cost on L2 is $0.02–0.05 per transaction versus $2–5 on L1. We use batching where multicall is supported, monitor gas prices to pick low periods, and automatically calculate the minimum ETH balance needed on each wallet.
| Parameter | Ethereum L1 | Arbitrum L2 | Optimism L2 | Base L2 |
|---|---|---|---|---|
| Average transaction cost | $2–5 | $0.02–0.05 | $0.01–0.03 | $0.02–0.04 |
| Transactions per 1 ETH | 200–500 | 10 000–25 000 | 15 000–30 000 | 12 000–20 000 |
Development Process
- Analysis — gather requirements: number of wallets, protocols, budgets, RPC.
- Design — architecture, database schema, stack selection.
- Implementation — wallet generation, handler development, scheduler, dashboard.
- Testing — simulation on testnet, anti-sybil metric verification.
- Deployment and launch — deployment, monitoring setup, documentation.
Our team brings 5+ years of experience in DeFi and automation, having completed numerous projects. Get a consultation — we'll design the optimal architecture and stack.
What's Included
- Full documentation set (architecture, operations manual).
- Source code access with a usage license.
- Operator training.
- Support during launch phase (up to 2 weeks).
- Guarantee of no backdoors in code (audit of key parts).
Tech Stack
Our engineers have years of experience in DeFi and automation. The system is built on a production-ready stack with fault tolerance and monitoring.
| Component | Technology |
|---|---|
| Backend | Node.js + TypeScript, Fastify |
| Task queue | Bull + Redis |
| Database | PostgreSQL + TimescaleDB |
| Blockchain | ethers.js v6, viem |
| RPC | Alchemy, Infura (with failover) |
| Proxy | SOCKS5 rotation (Bright Data, Oxylabs) |
| Frontend | React + TanStack Query |
| Monitoring | Grafana + Prometheus |
If you need airdrop farming automation, contact us for a consultation and project assessment.







