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

Платформа Mirror.xyz зібрала мільйони доларів для незалежних авторів через NFT-краудфандинг кілька років тому. Ідея продавати частку від майбутнього доходу або ексклюзивний контент замість обіцянок — принципово нова модель. Але реалізувати її технічно складніше, ніж просто «Kickstarter на блокчейні»

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

Часті запитання

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

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

Платформа Mirror.xyz зібрала мільйони доларів для незалежних авторів через NFT-краудфандинг кілька років тому. Ідея продавати частку від майбутнього доходу або ексклюзивний контент замість обіцянок — принципово нова модель. Але реалізувати її технічно складніше, ніж просто «Kickstarter на блокчейні». Ми, команда блокчейн-інженерів з 10+ річним досвідом, створюємо децентралізовані краудфандинг-платформи під ключ. Наші рішення включають прозорий розподіл коштів через смарт-контракти, верифіковані milestones та повернення коштів без посередників. Оцінимо ваш проєкт безкоштовно.

Як забезпечити прозорий розподіл коштів?

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

struct Campaign { address creator; uint256 goal; uint256 deadline; uint256 raised; bool goalReached; Milestone[] milestones; } struct Milestone { string description; uint256 releaseAmount; bool completed; uint256 votes; uint256 votesAgainst; } 

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

Чому NFT кращий за традиційні частки?

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

  • Access control: платформа перевіряє balanceOf(address, campaignId) для доступу до контенту.
  • Revenue sharing: якщо кампанія передбачає роялті від продажів, NFT служить claim-токеном. Контракт розподіляє ETH пропорційно вазі NFT.
  • Transferability: бекер може продати позицію на вторинному ринку (OpenSea, Blur). Це створює ліквідність, недоступну в традиційному краудфандингу.
Стандарт Де застосовувати Вартість mint Управління кількома кампаніями
ERC-721 Унікальні внески (кожен NFT свій) Висока Потрібен новий контракт на кампанію
ERC-1155 Однорідні внески всередині кампанії Низька (batch) Один контракт для всіх

ERC-1155 є кращим: один контракт, дешевший mint, підтримка напівгрибка.

Refund механізм без довіри

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

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 pattern (bool success,) = msg.sender.call{value: amount}(""); require(success, "Transfer failed"); } 

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

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

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

Кожна кампанія — окремий контракт. Деплой через new Campaign() коштує багато газу (сотні тисяч gas). На Ethereum це суттєві витрати. Неприйнятно для indie-авторів. Рішення: EIP-1167 Minimal Proxy (Clone). CampaignFactory деплоїть легкий проксі-клон (~45k gas). Проксі делегує виклики імплементації. Вартість створення кампанії знижується в 10 разів. Економія газу до 90%.

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

The Graph subgraph для індексації

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

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-запити до subgraph замість прямих RPC. Фільтрація за автором, статусом, категорією — все, що неможливо зробити on-chain.

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

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

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

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

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

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

  • Документація архітектури та специфікація смарт-контрактів
  • Вихідний код з unit-тестами (Foundry) та fork-тестами
  • Інструкція з деплою та верифікації контрактів
  • Конфігурація The Graph subgraph
  • Навчання команди (1 день онлайн)
  • Технічна підтримка 1 місяць після запуску

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

  1. Проектування механік (3–5 днів): milestone-структура, NFT-економіка, умови рефанду, параметри governance.
  2. Core смарт-контракти (1–1.5 тижня): Campaign, CampaignFactory (EIP-1167), MilestoneVoting, RefundEscrow.
  3. NFT та revenue sharing (3–4 дні): ERC-1155, claim-механізм, розподіл роялті.
  4. The Graph subgraph (2–3 дні): schema, mappings, деплой.
  5. Frontend інтеграція (1–2 тижні): wagmi/viem, створення кампанії, сторінка бекінгу, дашборд.
  6. Тестування (3–5 днів): unit-, fork-тести, фаззинг.
  7. Деплой (2–3 дні): скрипти Foundry, верифікація, subgraph.

Разом: 3 тижні – 3 місяці залежно від функціональності. MVP без голосування по milestones — 3–4 тижні. Повна платформа з арбітражем та NFT — 2–3 місяці. Вартість розраховується після деталізації вимог.

Приклад конфігурації смарт-контракту Campaign
// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; contract Campaign { /// ... реалізація } 

Чому обирають нас

  • 10+ років досвіду в розробці блокчейн-рішень
  • 30+ успішних проектів (DeFi, NFT, DAO)
  • 5 років на ринку
  • Аудити контрактів провідними фірмами

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