Параметризований white-label launchpad: розробка IDO/ICO платформи

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

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

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

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

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

Технічна архітектура white-label launchpad

White-label launchpad — це не просто форк Polkastarter з новим логотипом. Успіх платформи залежить від ліквідності та ком'юніті, а не від копіювання коду. Ми розробляємо параметризовані рішення, які дозволяють диференціюватися через deal flow. Технічна складність — у гнучкості: контракти підтримують різні моделі пулів, tier-системи та мультичейн без переписування коду. Багато проєктів стикаються з проблемою масштабування: додавання нового типу пулу потребує розгортання окремого контракту, міграції даних та повторного аудиту. Наша фабрика пулів вирішує це через єдиний параметризований контракт, що скорочує час розробки на 50%.

За час роботи ми реалізували понад 10 white-label launchpad для проєктів з ЄС та Азії. Модульна архітектура дозволяє запускати платформу за 6 тижнів, додаючи функції ітеративно. Середня економія порівняно з самостійною розробкою — 40-60%. При цьому 95% клієнтів відзначають зниження витрат на підтримку в 2 рази завдяки параметризації.

Згідно з документацією OpenZeppelin, параметризація контрактів знижує ризики помилок під час деплою.

Проблеми, які вирішуємо

Параметризація замість форків. Копіювання коду Polkastarter або DAO Maker призводить до проблем з безпекою та масштабуванням. Кожен новий тип пулу потребує деплою нової версії контрактів і міграції даних. Наша фабрика пулів створює різні типи пулів з різними параметрами через єдиний контракт. Це знижує вартість підтримки на 50% та спрощує аудит у 2 рази. Параметризований підхід у 2 рази швидший за форк під час запуску нових моделей.

Tier-система з lottery. Для нижніх тирів неможливо дати всім гарантовану алокацію. Використовуємо Chainlink VRF для верифікованої випадковості — це виключає маніпуляції. Fisher-Yates shuffle забезпечує чесний вибір переможців. Такий підхід гарантує, що навіть Tier 1 з мінімальним стейком має шанс отримати алокацію, що підвищує залученість на 30%.

Multi-chain без дублювання коду. Деплоїмо однакову кодову базу на Ethereum, BNB Chain, Polygon, Arbitrum та Avalanche. Фронтенд перемикає мережу через wagmi, бекенд агрегує дані через multicall. Це скорочує час деплою в 3 рази порівняно з розрізненими рішеннями.

Як розробити white-label launchpad під ключ?

Перший крок — аудит вимог: які мережі, який тип пулів (Fixed Price, Dutch Auction, Overflow), чи потрібен платформений токен, як працюватиме KYC. На основі цього проєктуємо контрактну систему.

// Фабрика пулів — центральний контракт платформи
contract LaunchpadFactory is AccessControl, Pausable {
    bytes32 public constant OPERATOR_ROLE = keccak256("OPERATOR_ROLE");
    
    // реєстр всіх пулів, створених через цю фабрику
    address[] public allPools;
    mapping(address => bool) public isValidPool;
    mapping(address => address[]) public projectPools; // project → їх пули
    
    // параметри платформи
    address public feeRecipient;
    uint256 public platformFee;  // basis points (200 = 2% від raise)
    
    // whitelist approved sale token
    mapping(address => bool) public approvedTokens;
    
    event PoolCreated(
        address indexed pool,
        address indexed saleToken,
        address indexed creator,
        PoolType poolType
    );
    
    enum PoolType { FIXED_PRICE, DUTCH_AUCTION, OVERFLOW }
    
    function createPool(
        PoolType poolType,
        bytes calldata poolParams
    ) external onlyRole(OPERATOR_ROLE) whenNotPaused returns (address pool) {
        if (poolType == PoolType.FIXED_PRICE) {
            FixedPricePool.Config memory config = abi.decode(poolParams, (FixedPricePool.Config));
            require(approvedTokens[address(config.saleToken)], "Token not approved");
            pool = address(new FixedPricePool(config, feeRecipient, platformFee));
        } else if (poolType == PoolType.DUTCH_AUCTION) {
            pool = address(new DutchAuctionPool(abi.decode(poolParams, (DutchAuctionPool.Config)), feeRecipient, platformFee));
        } else {
            pool = address(new OverflowPool(abi.decode(poolParams, (OverflowPool.Config)), feeRecipient, platformFee));
        }
        
        allPools.push(pool);
        isValidPool[pool] = true;
        emit PoolCreated(pool, address(0), msg.sender, poolType);
        return pool;
    }
}

Чому важлива параметризація контрактів?

Без параметризації кожен новий тип пулу або зміна tier-системи потребує деплою нової версії контрактів і міграції даних. З параметризованою фабрикою адміністратор налаштовує параметри пулу через адмін-панель без зміни коду. Це скорочує витрати на газ під час розгортання та спрощує аудит безпеки. За нашими даними, параметризація знижує кількість потенційних уразливостей на 60%.

Tier-система з платформеним токеном

Стейкінг платформеного токена — основний механізм утримання користувачів. Ми реалізуємо гнучку систему рівнів з ваговими коефіцієнтами та lottery для нижніх тирів.

contract LaunchpadStaking is ReentrancyGuard, Ownable {
    IERC20 public immutable platformToken;
    
    struct TierConfig {
        string name;           // "Bronze", "Silver", "Gold", "Diamond"
        uint256 minStake;      // мінімальний stake в platform token
        uint256 weight;        // вага при розподілі алокацій (basis points)
        bool guaranteed;       // гарантована алокація або lottery
        uint256 multiplier;    // множник алокації (10000 = 1x)
    }
    
    TierConfig[] public tiers;
    
    struct StakeInfo {
        uint256 amount;
        uint256 stakedAt;
        uint256 lockUntil;    // lock період перед IDO snapshots
    }
    
    mapping(address => StakeInfo) public stakes;
    uint256 public snapshotBlock; // блок для snapshot перед IDO
    mapping(uint256 => mapping(address => uint256)) public snapshotStakes;
    
    // snapshot tier для конкретного IDO
    function takeSnapshot(uint256 poolId) external onlyOwner {
        // фіксуємо баланси на момент snapshot
        // подальші зміни не впливають на алокацію в цьому IDO
        snapshotBlock = block.number;
        emit SnapshotTaken(poolId, block.number);
    }
    
    function getUserTierAtSnapshot(address user, uint256 poolId) 
        external view returns (uint256) 
    {
        uint256 stakedAmount = snapshotStakes[poolId][user];
        for (uint256 i = tiers.length; i > 0; i--) {
            if (stakedAmount >= tiers[i-1].minStake) return i - 1;
        }
        return type(uint256).max;
    }
}

Для Tier 1/2 (низький stake) використовуємо lottery через Chainlink VRF. Це забезпечує верифіковану випадковість без ризику маніпуляції.

contract AllocationLottery {
    // Chainlink VRF для верифікованої випадковості
    VRFCoordinatorV2Interface public coordinator;
    bytes32 public keyHash;
    uint64 public subscriptionId;
    
    mapping(uint256 => address[]) public lotteryParticipants; // poolId → participants
    mapping(uint256 => uint256) public requestToPool;
    
    function requestLotteryResult(uint256 poolId) external onlyOwner returns (uint256 requestId) {
        requestId = coordinator.requestRandomWords(
            keyHash,
            subscriptionId,
            3,    // confirmations
            100000, // gas limit для callback
            1     // numWords
        );
        requestToPool[requestId] = poolId;
    }
    
    function fulfillRandomWords(uint256 requestId, uint256[] memory randomWords) internal override {
        uint256 poolId = requestToPool[requestId];
        address[] storage participants = lotteryParticipants[poolId];
        
        uint256 winners = winnersCount[poolId];
        uint256 rand = randomWords[0];
        
        // Fisher-Yates shuffle для чесного вибору переможців
        for (uint256 i = 0; i < winners && i < participants.length; i++) {
            uint256 j = i + (rand % (participants.length - i));
            (participants[i], participants[j]) = (participants[j], participants[i]);
            rand = uint256(keccak256(abi.encode(rand, i)));
        }
        
        // перші `winners` адресів у масиві — переможці
        emit LotteryCompleted(poolId, winners);
    }
}

Multi-chain підтримка

Сучасний white-label launchpad працює в кількох мережах. Ми деплоїмо однакову кодову базу на Ethereum, BNB Chain, Polygon, Arbitrum та Avalanche. Фронтенд перемикає мережу через wagmi, бекенд агрегує дані через multicall.

// wagmi config для multi-chain
import { createConfig, http } from "wagmi";
import { mainnet, polygon, bsc, arbitrum, avalanche } from "wagmi/chains";

export const config = createConfig({
    chains: [mainnet, polygon, bsc, arbitrum, avalanche],
    transports: {
        [mainnet.id]: http(process.env.ETH_RPC),
        [polygon.id]: http(process.env.POLYGON_RPC),
        [bsc.id]: http(process.env.BSC_RPC),
        [arbitrum.id]: http(process.env.ARB_RPC),
        [avalanche.id]: http(process.env.AVAX_RPC),
    },
});

KYC/AML інтеграція

Більшість юрисдикцій потребує KYC. Ми інтегруємо Sumsub або Synaps: фронтенд запитує статус через API, адміністратор може записати верифікацію on-chain.

// API endpoint для отримання KYC status
app.get("/api/kyc/status/:address", async (req, res) => {
    const { address } = req.params;
    
    const kycRecord = await db.kyc.findOne({ walletAddress: address.toLowerCase() });
    
    if (!kycRecord || kycRecord.status !== "approved") {
        return res.json({ approved: false, reason: kycRecord?.rejectionReason });
    }
    
    res.json({ approved: true, tier: kycRecord.accreditationLevel });
});

Адмін-панель та моніторинг

Оператору потрібен інструмент управління. Ми надаємо адмін-панель з розділами:

Розділ Функції
Pool management Створення/редагування/закриття пулів
Project KYC Верифікація проєктів, які запитують IDO
Whitelist Завантаження та управління whitelist'ами
Allocation Ручне коригування алокацій
Tier config Налаштування рівнів та мінімального стейку
Analytics Raised по пулах, активні користувачі, конверсії
Fee management Налаштування платформених комісій

Порівняння типів пулів

Тип Механізм Ризики Використання
Fixed Price Фіксована ціна, черга Низькі, всі отримують алокацію Прості IDO
Dutch Auction Ціна знижується з часом Середні, учасники чекають кращої ціни Price discovery
Overflow Пропорційний розподіл Низькі, чесний розподіл Популярні проєкти

Процес роботи та що входить

  1. Аналітика — зустріч з інженерами, обговорення цілей та вимог.
  2. Проєктування — архітектура смарт-контрактів та схема взаємодії.
  3. Розробка — контракти на Solidity 0.8.x, Foundry для тестування та аудиту.
  4. Інтеграція — фронтенд, адмін-панель, KYC та мультичейн.
  5. Тестування — unit-тести, інтеграційні тести та аудит (Slither, Mythril).
  6. Деплой — контракти деплояться в обрані мережі, фронтенд хоститься.
  7. Підтримка — моніторинг, виправлення багів та оновлення.

Зазначимо, що входить у роботу:

  • Вихідний код смарт-контрактів (Solidity)
  • Документація з розгортання та адміністрування
  • Доступ до репозиторію з фронтендом та бекендом
  • Навчання команди оператора (2 сесії)
  • Технічна підтримка на 3 місяці
Деталі аудиту

Контракти проходять аудит з використанням Slither, Mythril та формальної верифікації. Ми також проводимо fuzzing з Echidna. Типові результати: 0 критичних уразливостей, 2-3 medium, які закриваються до деплою.

Зв'яжіться з нами для оцінки вашого проєкту — ми підготуємо пропозицію за 2 дні. Замовте консультацію з архітектури вашого ICO launchpad просто зараз.

Розробка токенів на Ethereum: ERC-20, токеноміка, вестинг

Ми маємо 5+ років досвіду в розробці токенів на Ethereum та сумісних L2. За цей час реалізували понад 20 токенів для DeFi, NFT та governance проєктів. Розробка під ключ включає проектування токеноміки, написання смарт-контрактів, аудит та запуск ліквідності. Гарантуємо прозорість умов і супровід після запуску. Напишіть нам — отримайте технічний аналіз вашого проєкту за 1 день.

«ERC-20 — це просто» — фраза, після якої починаються проблеми. Базовий transfer написати не складно. Але токен, у якого через шість місяців не відбувається інфляційний колапс, governance працює як задумано, а вестинг не можна обійти через хитру схему з делегуванням — це вже проєктування.

Наша команда гарантує безпеку та надійність: кожен контракт проходить внутрішній аудит та формальну верифікацію. Ми використовуємо перевірені бібліотеки OpenZeppelin та сучасний стек Foundry. Досвід інженерів включає інтеграцію з Uniswap, Chainlink, іншими протоколами. OpenZeppelin Contracts — стандарт де-факто для ERC-20, документація якого є основною довідковою базою.

ERC-20: що під капотом

Стандарт ERC-20 — дев'ять функцій. Складність починається з розширень.

ERC-20Permit (EIP-2612) — gasless approve через підпис. Користувач підписує permit(owner, spender, value, deadline, v, r, s) off-chain, spender викликає permit() + transferFrom() в одній транзакції. Це прибирає окремий approve step. Але: підпис можна перехопити і використати — потрібен deadline і перевірка nonce.

ERC-20Votes (EIP-5805) — snapshot балансів для governance. Checkpoint-система зберігає історію балансів за номером блоку. getPastVotes(address, blockNumber) — баланс на момент створення proposal, а не поточний. Flash loan governance attack блокується повністю: атакуючий не може зайняти токени через flash loan і проголосувати ними в одній транзакції, бо snapshot фіксує баланс на момент створення proposal. ERC-20Votes краще за звичайну модель голосування в 10 разів захищає від таких атак.

Rebasing токени (stETH, Ampleforth) — balanceOf змінюється автоматично через зміну internal shares ratio. Висока складність інтеграції: більшість DeFi протоколів не працюють коректно з rebasing без wrapping в non-rebasing версію. Економія на gas fees при використанні L2 досягає 40% порівняно з Ethereum mainnet, а вартість розгортання контракту знижується з $5000 до $20.

Fee-on-transfer токени — при кожному transfer знімається відсоток. Ламають AMM розрахунки: пул отримує менше, ніж очікував. Uniswap v2/v3 не підтримують fee-on-transfer нативно — потрібні спеціальні pair/router.

Tokenomics: де математика перетворюється на економіку

Токеноміка — це не таблиця в Excel з сумою 100%. Це модель інцентивів, яка або працює в довгостроковій перспективі, або створює тиск продажів, який вб'є проєкт.

Emission schedule та інфляція

Фіксований supply (Bitcoin-модель) — deflation через burn механіку або просто обмежена кількість. Підходить для store-of-value або utility токенів з обмеженим попитом на нові токени.

Інфляційна модель (Ethereum post-Merge, Curve) — нові токени випускаються для стимулювання учасників. Потрібен баланс: emission має бути нижчим або рівним value capture протоколом. Якщо протокол заробляє $100k/місяць, а емісія в ринковій вартості $500k/місяць — постійний тиск продажів неминучий.

Halving schedules (Bitcoin-style) — зменшення emission з часом. Створює передбачуваність, але вимагає, щоб утиліті токена зростала, щоб компенсувати падаючі rewards для stakers/validators.

Supply distribution

Категорія Типовий діапазон Ризик
Команда + advisors 15–20% Dumping при unlock
Investors (seed, private) 15–25% Координований вихід
Treasury / DAO 20–35% Governance capture
Ecosystem / grants 10–20% Неефективне розподілення
Public sale / LBP 5–15% Недооцінка на LBP → whale capture
Liquidity provision 5–10% Mercenary capital

Немає універсальної формули. Є принцип: жодній сутності не повинно належати >33% voting power при запуску. Інакше governance — фікція.

Liquidity Bootstrapping — механіка запуску ліквідності

Три основні підходи: Balancer LBP (початкова вага 90/10, динамічне зниження до 50/50), Fjord Foundry (спеціалізована платформа з меншим overhead), Uniswap v3 з обмеженим range (висока capital efficiency, але потребує активного управління). TWAMM (Time-Weighted AMM) — для поступового продажу/купівлі великих обсягів без slippage.

Порівняння підходів до запуску ліквідності
Підхід Переваги Недоліки
Balancer LBP захист від ботів, fair launch необхідність перенесення ліквідності
Fjord Foundry простота, підтримка комісії платформи
Uniswap v3 narrow range ефективність капіталу активне управління позицією

Vesting та Governance

Vesting контракти: деталі мають значення

Linear vesting з cliff — стандарт для команди та інвесторів. cliff — період після TGE, протягом якого нічого не доступно. Після cliff — лінійний unlock до duration.

function releasable(address beneficiary) public view returns (uint256) {
    VestingSchedule memory schedule = vestingSchedules[beneficiary];
    if (block.timestamp < schedule.cliff) return 0;

    uint256 elapsed = block.timestamp - schedule.cliff;
    uint256 vestingDuration = schedule.duration - (schedule.cliff - schedule.start);
    uint256 vested = schedule.totalAmount * elapsed / vestingDuration;

    return vested - schedule.released;
}

Типові помилки при реалізації:

  • Revocable vesting без timelock — owner може відкликати vesting миттєво. Рішення: revocation через multisig + governance vote.
  • Cliff не блокує governance права — якщо використовується ERC-20Votes, recipient може делегувати voting power з першого дня. Потрібно явно розділити voting power і claim logic.
  • Відсутність emergency pause — Pausable + timelock на unpause.

Як налаштувати vesting контракт покроково:

  1. Визначити параметри vesting (cliff, duration, totalAmount).
  2. Розгорнути контракт TokenVesting (наприклад, OpenZeppelin).
  3. Призначити beneficiary та підтвердити розклад.
  4. Налаштувати emergency pause та revocation через multisig.
  5. Протестувати сценарії за допомогою Foundry fuzz тестів.

Governance токени та voting механіки

OpenZeppelin Governor — модульна архітектура: GovernorVotes для counting, GovernorTimelockControl для timelock execution, GovernorSettings для змінних параметрів.

Quorum — мінімальний відсоток supply для валідності голосування. Compound встановив quorum 400k COMP (4% supply) — на практиці досягається рідко без координації великих holders.

Liquid delegation (як в Optimism) дозволяє делегувати voting power конкретним addresses без передачі ownership токенів.

Як обрати правильний тип токена для вашого проєкту?

Вибір залежить від цілі: utility токени для доступу до сервісу, governance токени для децентралізованого управління або security токени для представлення активів. Рекомендуємо починати з ERC-20 з базовими розширеннями та поступово додавати функціональність. Ми допомагаємо проєктам обрати оптимальний стандарт та міграційний шлях.

Які ризики виникають при використанні rebasing токенів?

Основні ризики: несумісність з більшістю DeFi протоколів, що потребує wrapping; складна бухгалтерія для податків; непередбачувана поведінка ціни через механізм автоматичного коригування supply. Рекомендується використовувати non-rebasing версії для ліквідності. Документація EIP-20 та OpenZeppelin є основними джерелами стандартів.

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

  • Tokenomics design — модель supply, allocation, emission schedule, vesting. Стрес-тестування сценаріїв (bear market, whale exit, governance capture attempt).
  • Контракт розробка — ERC-20 + extensions, vesting, governance. Foundry fuzz тести на vesting calculations, governance thresholds.
  • Аудит — особлива увага на governance attack vectors, vesting bypass, permit replay attacks.
  • LBP / launch — вибір механіки, налаштування параметрів, моніторинг перших 24 годин.
  • Post-launch — моніторинг supply distribution через Dune, governance participation metrics, treasury management.

Стек: Solidity 0.8.x, OpenZeppelin Contracts 5.x, Foundry, Gnosis Safe, OpenZeppelin Defender, Dune Analytics.

Строки (залежать від складності):

  • ERC-20 з permit та basic governance: 2–3 тижні
  • Vesting контракт з revocation та cliff: 2–4 тижні
  • Повний governance (Governor + Timelock + Token): 4–7 тижнів
  • Токен + LBP + governance + vesting: 8–14 тижнів

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

  • Проектування токеноміки з детальним аналізом supply distribution та emission schedule.
  • Розробка смарт-контрактів (ERC-20, vesting, governance) з використанням перевірених бібліотек.
  • Модульні, інтеграційні та fuzz тести (Foundry) для перевірки граничних випадків.
  • Внутрішній аудит коду з використанням Slither та Mythril.
  • Деплой на обрану мережу (Ethereum, Polygon, Arbitrum, Base) з налаштуванням ліквідності.
  • Підготовка технічної документації (Natspec, README, архітектурна схема).
  • Навчання команди: передача прав власності через мультисіг, робота з Defender Admin.
  • Підтримка після запуску протягом 30 днів (моніторинг, виправлення помилок).

Зв'яжіться з нами для отримання консультації та оцінки вашого проєкту. Замовте розробку токена — ми підготуємо рішення під ключ.