Розробка системи керування гаманцями для airdrop-фармінгу

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Розробка системи керування гаманцями для airdrop-фармінгу
Складний
~1-2 тижні
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1358
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1250
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    956
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1188
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    646
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    929

Розробка системи керування гаманцями для airdrop-фармінгу

Airdrop-фармінг — це професійна діяльність, яка потребує керування сотнями гаманців, систематичних on-chain транзакцій та одночасної роботи з десятками протоколів. Ручне керування сотнями гаманців вимагає сотень годин на місяць і неминуче веде до помилок: забуті транзакції, неоптимальний gas, кореляція патернів, яка призводить до sybil-банів. За статистикою, при ручному керуванні близько 30% фармерів стикаються з sybil-детектом хоча б раз. Автоматизація вирішує ці проблеми, дозволяючи зосередитися на стратегії, а не на кліках. Наш досвід у цій сфері дозволяє уникнути типових помилок, які ведуть до втрати airdrop-кваліфікації. Система автоматизації — обов'язковий інструмент для серйозного фармера. Зв'яжіться з нами, щоб обговорити ваші завдання та отримати індивідуальний проєкт автоматизації.

Що таке професійний airdrop-фармінг

Аналіз великих airdrop-кампаній (Arbitrum, Optimism, ZkSync, LayerZero, EigenLayer) показує патерни, які винагороджувались: регулярна активність протягом багатьох місяців, різноманітність протоколів, нативні транзакції (не тільки bridging), тримання токенів, участь у governance. Система має автоматизувати саме ці патерни, зберігаючи органічність активності.

Архітектура системи

Ієрархія гаманців

Професійний фармер працює з кількома рівнями ключів:

Master wallet — холодний гаманець (Ledger/Trezor або air-gapped machine). Зберігає основний капітал. Ніколи не використовується напряму в протоколах.

Fund wallets (2-5 штук) — проміжні гаманці для розподілу коштів. Отримують ETH/USDC від master, розподіляють по farming wallets.

Farming wallets (50-500 штук) — робочі гаманці, які безпосередньо взаємодіють з протоколами. Кожен генерується як окремий HD-шлях від однієї або кількох seed фраз.

Master Wallet
    ↓ (manual transfers)
Fund Wallets [1-5]
    ↓ (automated distribution)
Farming Wallets [50-500]
    ↓ (automated interactions)
DeFi Protocols

Важливо: farming wallets не повинні мати прямих on-chain зв'язків з master wallet. Ланцюжок fund wallet → farming wallet з різними часовими інтервалами знижує кореляцію.

Генерація та зберігання ключів

Усі farming wallets генеруються детерміновано з seed фраз за специфікацією 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}`,
    };
  });
}

Зберігання ключів: ніколи не зберігаємо private keys у відкритому вигляді. Варіанти — шифрування через AES-256-GCM з паролем (KDF: Argon2id), зберігання тільки seed phrase + on-demand derivation або HashiCorp Vault для командного використання.

База даних гаманців та активності

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
);

Як ми автоматизуємо взаємодії?

Task Runner

Система виконання завдань імітує людську поведінку: випадкові затримки між транзакціями, варіативний час доби, різні 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

Для кожного протоколу — окремий handler. Приклад для 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();
  }
}

Аналогічні handlers створюються для Curve, AAVE, GMX, Stargate, Wormhole/LayerZero bridge, Pendle та інших протоколів.

Як захиститися від sybil-детекту?

Сучасні airdrop-системи активно борються з sybil-атаками. Ми враховуємо кілька факторів:

  • Унікальність активності. Не копіюємо патерни між гаманцями: різні суми, різні протоколи, різні часові патерни.
  • IP rotation. Кожен гаманець працює через окремий proxy/VPN. Спільний IP — сильний sybil-сигнал.
  • Source of funds. Ланцюжок фінансування не повинен простежуватися до одного джерела. CEX withdrawals на різні гаманці — добре, прямий переказ — погано.
  • Age of wallet. Старі гаманці цінуються більше. Система створює гаманці заздалегідь і дає їм «історію» до цільового дедлайну.

Згідно з аналітикою Nansen, кореляція IP-адрес є одним з головних факторів sybil-детекту у великих airdrop-кампаніях.

Моніторинг та аналітика

Для кожного гаманця система показує: on-chain активність по протоколах (з датами), витрачений gas (в USD), поточні позиції, score за відомими метриками (об'єм, кількість транзакцій, унікальні протоколи, дні активності) та поточний баланс по ланцюгах. Система автоматично розраховує estimated airdrop score для кожного відстежуваного проекту і дає рекомендації.

Приклад розрахунку airdrop score Score може включати зважені метрики: об'єм (35%), кількість транзакцій (25%), унікальні протоколи (20%), дні активності (20%). Ваги налаштовуються під конкретний проект.

Чому газова оптимізація критична?

При роботі з 200 гаманцями, 3-5 транзакціями на день на гаманець важлива газова оптимізація. Транзакції на L2 (Arbitrum, Base, Optimism) в 10-50 разів дешевші за mainnet: середня вартість газу на L2 становить $0.02–0.05 за транзакцію проти $2–5 на L1. Ми використовуємо batching, де підтримується multicall, моніторинг gas price для вибору низьких періодів та автоматичний розрахунок мінімального балансу ETH на кожному гаманці.

Параметр Ethereum L1 Arbitrum L2 Optimism L2 Base L2
Середня вартість транзакції $2–5 $0.02–0.05 $0.01–0.03 $0.02–0.04
Кількість транзакцій на 1 ETH 200–500 10 000–25 000 15 000–30 000 12 000–20 000

Процес розробки

  1. Аналітика — розбираємо вимоги: кількість гаманців, протоколи, бюджети, RPC.
  2. Проектування — архітектура, схема бази даних, вибір стеку.
  3. Реалізація — генерація гаманців, розробка handlers, планувальника, дашборду.
  4. Тестування — симуляція на тестнеті, перевірка anti-sybil метрик.
  5. Деплой та запуск — розгортання, налаштування моніторингу, документування.

Отримайте консультацію по вашому проекту — ми підберемо оптимальну архітектуру та стек.

Що входить в роботу

  • Повний набір документації (архітектура, інструкція по експлуатації).
  • Доступ до вихідного коду з ліцензією на використання.
  • Навчання операторів.
  • Підтримка на етапі запуску (до 2 тижнів).
  • Гарантія відсутності backdoors в коді (аудит ключових частин).

Стек

Наші інженери мають багаторічний досвід у DeFi та автоматизації. Система побудована на production-ready стеку з відмовостійкістю та моніторингом.

Компонент Технологія
Backend Node.js + TypeScript, Fastify
Task queue Bull + Redis
Database PostgreSQL + TimescaleDB
Blockchain ethers.js v6, viem
RPC Alchemy, Infura (з failover)
Proxy SOCKS5 rotation (Bright Data, Oxylabs)
Frontend React + TanStack Query
Monitoring Grafana + Prometheus

Якщо вам потрібна автоматизація airdrop-фармінгу — зв'яжіться з нами для консультації та оцінки вашого проекту.

Ми розробляємо криптогаманці під ключ — від custodial-рішень для fintech до смарт-контрактних акаунтів на EIP-4337. 5+ років на ринку блокчейн-розробки, 40+ реалізованих проектів. Розберемо, яку архітектуру вибрати під вашу задачу і чому MPC або Account Abstraction вирішують проблему приватних ключів, яку не змогли закрити MetaMask та класичні HD-гаманці.

Як обрати архітектуру гаманця?

Чому класичні гаманці небезпечні для бізнесу?

Seed-фраза у браузерному розширенні — єдиний спосіб відновити доступ. Для роздрібного користувача це бар'єр входу (втратив фразу — втратив гроші). Для корпоративного казначейства — несумісно з compliance (KYC/AML, рольова модель, мультипідпис). Будь-який витік одного ключа компрометує всі кошти. Ці ризики закладені в архітектуру, а не в поганий UX.

Ми усуваємо їх на рівні протоколу: MPC-гаманці (ключ ніколи не зібраний цілком), смарт-контрактні гаманці (логіка авторизації в коді), апаратні HSM для інституційного зберігання. Нижче — деталі.

Custodial vs Non-custodial: у чому реальна різниця

Custodial — провайдер зберігає приватний ключ. Користувач аутентифікується через email/password/OAuth. Відновлення тривіальне, KYC/AML вбудовані. Для централізованих додатків з фінансовими операціями — часто єдиний регуляторно прийнятний варіант. Ризик: single point of failure (злом Bitfinex — значні втрати, FTX — понад значну суму клієнтських коштів).

Non-custodial — ключі у користувача. Провайдер не має доступу до коштів. Відповідальність за зберігання лягає на користувача. Для 99% людей це непрацююча модель без додаткового захисту — тут і приходить MPC.

MPC-гаманці: ключ, якого немає

Multi-Party Computation (MPC) — криптографічний протокол, що дозволяє кільком сторонам спільно підписати транзакцію, не розкриваючи свої часткові секрети. Приватний ключ ніколи не існує в зібраному вигляді.

Стандартна схема: 2-of-3 MPC між користувачем (частка на пристрої), сервером провайдера та резервним хмарним сховищем. Транзакція підписується двома будь-якими з трьох сторін. Телефон втрачено — відновлення через сервер + хмару. Сервер скомпрометовано — атакуючий володіє лише однією часткою, підпис неможливий.

TSS (Threshold Signature Scheme) — конкретна реалізація MPC для ECDSA/EdDSA. Алгоритми: GG18, GG20, CGGMP21 (останній швидший і з кращими security proof). Бібліотеки: tss-lib (Go, від Binance), multi-party-sig (Go, від Coinbase), ZenGo-X/multi-party-ecdsa (Rust).

MPC не потребує on-chain змін — для блокчейна підпис виглядає як звичайний single-key підпис. Це дає економію gas та зберігає конфіденційність схеми управління ключами (не публікується в ланцюжку) — на відміну від мультисига.

Account Abstraction (EIP-4337): смарт-контракт як гаманець

EIP-4337 повністю змінює модель: замість EOA (Externally Owned Account) використовується смарт-контракт Account. Логіка авторизації — в коді контракту, а не в криптографії протоколу. Це відкриває довільну логіку підпису, соціальне відновлення, сесійні ключі, sponsored транзакції та батчинг операцій.

User → UserOperation → Bundler → EntryPoint contract → Account contract
                                          ↑
                                    Paymaster (optional, pays gas)

UserOperation — новий тип об'єкта (не L1-транзакція). Bundler збирає UserOps з альтернативного mempool, упаковує в одну транзакцію та відправляє в EntryPoint. EntryPoint викликає validateUserOp на Account контракті — Account сам вирішує, чи дійсний підпис.

Практичні можливості:

Соціальне відновлення. Контракт зберігає список guardian'ів (інші адреси або сервіс). Втрата ключа — guardians голосують за заміну. Argent використовує схему з 2020 року.

Сесійні ключі. Тимчасовий ключ з обмеженими правами: взаємодія лише з конкретним контрактом, до певної дати, до певної суми. Для GameFi та dApps — користувач не підписує кожну мікро-транзакцію.

Paymaster. Сторонній контракт платить газ за користувача. Паттерн для онбордингу: користувач не тримає ETH, газ спонсорує dApp або береться з ERC-20 токенів.

Реалізації: Safe{Core} Protocol, Biconomy SDK (Stackup), ZeroDev (Kernel), Alchemy (Rundler bundler). На Ethereum mainnet, Polygon, Arbitrum, Optimism EntryPoint v0.6/v0.7 задеплоєний та активний. Гарантуємо сумісність з останніми версіями контрактів.

Hardware Security Module для корпоративних гаманців

Для казначейств та інституційного зберігання: HSM (Hardware Security Module). Ключ генерується і ніколи не покидає захищений чип. Підпис — всередині HSM. Підтримується апаратна атестація. Використовувані рішення: AWS CloudHSM, Azure Dedicated HSM, Thales Luna, YubiHSM 2 (для невеликих обсягів). Інтеграція через PKCS#11 або cloud-specific API.

Комбінація HSM + MPC — оптимальна для інституційного використання: ключові частки зберігаються в HSM на різних серверах/юрисдикціях, підпис через TSS. Це забезпечує відповідність регуляторним вимогам (наприклад, для крипто-кастодіанів).

Інтеграція з dApps: WalletConnect та стандарти

Будь-який гаманець повинен вміти взаємодіяти з dApps. Стандарт — WalletConnect v2 (Sign API): QR-код або deep link, peer-to-peer зашифрований канал через relay сервер. Для браузерних розширень — EIP-1193 (Ethereum Provider API).

На фронтенді використовуємо wagmi + viem — один інтерфейс для MetaMask, WalletConnect, Coinbase Wallet, injected providers. Для Account Abstraction — EIP-5792 (wallet capabilities) та EIP-7677 (paymaster service).

Процес розробки

  1. Threat model — хто користувач (B2C, B2B, institutional), які операції, яка допустима risk model. Від цього залежить архітектура.
  2. Вибір та проектування схеми зберігання ключів — MPC, HSM, мультисиг або їх комбінація.
  3. Розробка Account контракту (якщо EIP-4337) або інтеграція MPC-бібліотеки.
  4. Backend — MPC-координація, управління сесіями, paymaster-сервіс (якщо потрібен).
  5. Мобільний/браузерний застосунок — UI з інтеграцією WalletConnect, біометрії, QR.
  6. Інтеграція з dApps — EIP-1193, WalletConnect v2.
  7. Аудит контрактів та криптографічних реалізацій — обов'язковий етап. MPC-бібліотеки мають відомі вразливості (GG18 піддається атаці при malicious participant без abort protocol). Використовуємо бібліотеки з актуальними security review (CGGMP21). Досвід проходження аудитів у Certik, Hacken, Trail of Bits — підтверджуємо сертифікатами.

Що входить в роботу (deliverables)

  • Вихідні коди смарт-контрактів (Solidity/Rust) з документацією
  • Backend-сервіс MPC-координації (на Go або Rust) з API
  • Мобільний застосунок (iOS/Android) або браузерне розширення
  • Інтеграція з WalletConnect, Ledger/Trezor (за потреби)
  • Підготовка до аудиту безпеки (звіт зі списком вразливостей)
  • Документація адміністратора та користувача
  • Доступ до репозиторію, CI/CD, моніторинг (Tenderly, Etherscan API)
  • Навчання вашої команди (2-3 сесії)
  • Підтримка після запуску — 1 місяць

Строки та вартість

Тип рішення Строки (робочі тижні)
Custodial з базовим UI 4–8
Non-custodial з MPC-інтеграцією 8–16
EIP-4337 Account з paymaster 6–12
Institutional (HSM + MPC + compliance) від 16

Вартість розраховується індивідуально під ваш проект. Оцінимо за 1 день — зв'яжіться з нами. Надаємо гарантію на код та timeline.

Типові помилки при розробці криптогаманців (і як їх уникнути)

  • Використання застарілих MPC-бібліотек — GG18 без abort protocol. Обираємо CGGMP21 або tss-lib з актуальними audit report.
  • Жорстка прив'язка до одного блокчейну — не закладають абстракцію під L2/сайдчейни. Використовуємо viem/wagmi для кросс-чейн.
  • Ігнорування MEV-атак — при використанні мультисига без таймлоків. Додаємо tx simulation (Tenderly) та sandwitching protection.
  • Відсутність fallback-механізму відновлення — для Account Abstraction не налаштовують social recovery. Закладаємо з першого релізу.

Усуваємо ці граблі на етапі проектування — під кожен проект складаємо threat model та security checklist.

Потрібен надійний гаманець без компромісів? Отримайте консультацію нашого архітектора — розберемо вашу задачу та запропонуємо архітектуру з точним кошторисом. Залишайте заявку — відповімо протягом дня.