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

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

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

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

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

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

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

Mirror.xyz зібрав $10M для незалежних авторів через NFT-based краудфандинг ще у 2021-му. Унікальність підходу: замість Kickstarter-моделі з обіцянками, автори продають частку від майбутнього revenue або випускають NFT, що дають доступ до контенту. Децентралізована платформа краудфандингу — це не просто «Kickstarter на блокчейні». Це принципово інша економічна модель: прозоре розподілення коштів через смарт-контракти, verifiable milestones, повернення грошей без посередників.

Ключові механіки та їх реалізація

Campaign контракт: escrow з milestone логікою

Наївна реалізація: собрати ETH на адресу творця. Так не працює у Web3 — користувачі не довіряють невідомій адресі. Потрібен escrow контракт, що тримає кошти й звільняє їх лише при виконанні умов.

Архітектура milestone-based escrow:

struct Campaign {
    address creator;
    uint256 goal;           // мета в ETH/токенах
    uint256 deadline;       // unix timestamp
    uint256 raised;
    bool goalReached;
    Milestone[] milestones;
}

struct Milestone {
    string description;
    uint256 releaseAmount;  // сума для виплати при досягненні
    bool completed;
    uint256 votes;          // голоси бекерів за підтвердженням
    uint256 votesAgainst;
}

Замість автоматичного передання коштів при досягненні goal — голосування бекерів за completion milestone. Якщо 50%+ бекерів (зважених по сумі взносу) підтверджують — escrow відправляє releaseAmount творцю. Якщо більшість проти — кошти повертаються пропорційно взносам.

Цей механізм був реалізований у Giveth та The DAO (до хака) — й працює, поки governance активний.

NFT як proof-of-backing та access token

Кожний взнос створює NFT (ERC-721 або ERC-1155) для бекера. NFT несе метаданні: сума взносу, дата, ID кампанії. Функції NFT:

Access control: платформа контенту перевіряє balanceOf(address, campaignId) для відкриття екслюзивного контенту. Без NFT — нема доступу.

Revenue sharing: якщо кампанія передбачає royalty від майбутніх продажів чи публікацій, NFT служить claim токеном. Контракт розподіляє поступаючий ETH пропорційно вазі NFT.

Transferability: бекер може продати позицію на вторинному ринку (OpenSea, Blur). Це створює реальну ліквідність для crowd-financing, чого немає у традиційному краудфандингу.

Стандарт: ERC-1155 переважніше ERC-721 для краудфандингу — один контракт для всіх кампаній, дешевший mint (batch), підтримка fungible tier (fungible результати при однакових взносах).

Механізм повернення без довіри

Якщо кампанія не досягне goal до deadline — кожен бекер може викликати refund() і отримати свої кошти назад. Без посередників, без запитів на підтримку.

Паттерн реалізації — pull refund (не push): контракт не відправляє кошти автоматично всім бекерам (gas griefing при тисячах учасників). Кожен бекер сам викликає refund(), контракт переводить його долю.

function refund(uint256 campaignId) external {
    Campaign storage c = campaigns[campaignId];
    require(block.timestamp > c.deadline, "Campaign active");
    require(!c.goalReached, "Goal was reached");
    uint256 amount = contributions[campaignId][msg.sender];
    require(amount > 0, "No contribution");
    contributions[campaignId][msg.sender] = 0; // CEI паттерн
    (bool success,) = msg.sender.call{value: amount}("");
    require(success, "Transfer failed");
}

Нульовий баланс перед transfer — це Checks-Effects-Interactions. Без цього: reentrancy через receive() в контракті бекера.

Платформенний рівень: factory кампаній та індексація

Factory + Clone паттерн для газ-ефективного деплою

Кожна кампанія — окремий контракт. Деплой через new Campaign() коштує 500k–800k газу. На Ethereum mainnet при $2000 ETH та 30 gwei — $30–50 за кампанію. Неприйнятно для indie авторів.

Рішення: EIP-1167 Minimal Proxy (Clone). CampaignFactory деплоїт lightweight proxy-clone у 45k газу. Proxy delegatecall в implementation контракт. Вартість створення кампанії — $3–5.

Мінус: proxy неможна апгрейдити окремо. Всі клони використовують одну implementation. Для оновлення логіки — деплой нової factory, старі кампанії залишаються на старій логіці (не баг, а фіча — immutability завершених кампаній).

The Graph субграф для індексації

Платформа з сотнями кампаній потребує ефективного пошуку та фільтрації. On-chain view функції не масштабуються. Рішення — The Graph субграф індексації подій:

type Campaign @entity {
  id: ID!
  creator: Bytes!
  goal: BigInt!
  raised: BigInt!
  deadline: BigInt!
  backers: [Backer!]! @derivedFrom(field: "campaign")
  milestones: [Milestone!]! @derivedFrom(field: "campaign")
}

Frontend робить GraphQL запити до субграфу замість прямих RPC викликів. Це дозволяє фільтрувати кампанії за автором, статусом, категорією, сортувати за сумою — усе те, що неможливо зробити ефективно on-chain.

Мультивалютний краудфандинг

Приймати тільки ETH — втрата аудиторії. Інтеграція ERC-20 (USDC, DAI) через SafeERC20 з OpenZeppelin. Одна кампанія = одна валюта (спрощує escrow логіку). Для мультивалютних кампаній — конвертація через Uniswap v3 при взносі.

Важливий нюанс: USDC має blacklist функціональність — контракт-отримувач може бути заблокований Circle. Для довгострокових escrow це рідкісний, але реальний ризик. Використовуйте DAI або USDC з оговоркою в документації.

Модерація та dispute resolution

On-chain арбітраж через Kleros

Якщо бекери й творець не можуть прийти до consensus щодо milestone — потрібна арбітраж. Kleros Protocol забезпечує decentralized court: депозит від обох сторін, випадково вибрані jurors з Kleros PNK стейкерів виносять вердикт, проигравший втрачає депозит.

Інтеграція через IArbitrable інтерфейс: campaign контракт реалізує rule(uint256 disputeId, uint256 ruling) — викликається Kleros після голосування. На основі ruling контракт або звільняє payment milestone, або ініціює refund.

Процес роботи

Проектування механік (3–5 днів): структура milestone, NFT економіка, умови refund, параметри governance (voting quorum, voting period).

Core смарт-контракти (1–1.5 тижні): Campaign, CampaignFactory (EIP-1167), MilestoneVoting, RefundEscrow.

NFT та revenue sharing (3–4 дні): ERC-1155 контракт, claim механізм, royalty розподілення.

The Graph субграф (2–3 дні): schema, mappings, деплой на Hosted Service або Decentralized Network.

Frontend інтеграція (1–2 тижні): wagmi/viem хуки, створення кампанії, сторінка бекінгу з wallet connect, дашборд творця.

Тестування (3–5 днів): unit-тести всіх сценаріїв (success, failure, milestone dispute), fork-тести на mainnet.

Деплой (2–3 дні): Foundry script, верифікація, субграф деплой.

Всього: 3 тижні — 3 місяці залежно від набору функцій. MVP з базовим краудфандингом без milestone voting — 3–4 тижні. Повна платформа з arbitration, revenue sharing NFT та frontend — 2–3 місяці. Вартість розраховується після деталізації вимог.