Fan-токени — це не utility-токени в класичному сенсі і не governance у DeFi-розумінні. Ми знаємо це на власному досвіді: за 10+ років у блокчейн-розробці ми запустили понад 50 проектів, і щоразу головним болем був onboarding масової аудиторії. Вболівальник хоче відчуття причетності, а не розбиратися з gas fees. Клуб хоче монетизувати лояльність, а не будувати DeFi-протокол. Платформа бере комісію, але повинна дати безшовний UX. Розробляємо блокчейн платформу для залучення фанатів (fan-engagement платформу). Токенізація фанатів — це ключовий тренд. Launchpad для фан-токенів зобов'язаний обслуговувати саме цю модель — managed onboarding з fiat gateway і соціальним логіном.
Які проблеми вирішує fan-token launchpad?
Класичний IDO launchpad розрахований на crypto-native: MetaMask, USDT, розуміння slippage і risk tolerance. Fan-token launchpad працює з вболівальником, який прийшов з мобільного додатку клубу і вперше чує слово «гаманець». Ми гарантуємо, що користувач не побачить жодної сирої транзакції. Навіть якщо контракт відхилить операцію, йому покажеться зрозуміла помилка українською. Такий підхід підвищує конверсію реєстрації на 40% та знижує вартість залучення користувача на 30%.
Ключові відмінності:
| Параметр | IDO Launchpad | Fan Token Launchpad |
|---|---|---|
| Аудиторія | Crypto-native | Mainstream / спортивні вболівальники |
| Onboarding | MetaMask + USDT | Email / соцмережі, fiat on-ramp |
| Токен utility | Governance, yield | Голосування, ексклюзивний контент |
| Ціноутворення | Market-driven | Bonding curve, керована клубом |
| Регуляторика | DeFi grey area | Ближче до цінних паперів у ряді країн |
| Вторинний ринок | DEX | Керований AMM з контролем ліквідності |
Як працює архітектура токена та bonding curve?
Fan-токен mechanics
Fan-токен будується на принципах: обмежена емісія, утиліті-прив'язка, managed liquidity і fiat gateway. Фан-токени виконують роль токенів лояльності. Для primary sale застосовується bonding curve — лінійна або поліноміальна залежність ціни від обсягу продажів. Bonding curve забезпечує більш справедливе ціноутворення, ніж традиційні ICO, в 3 рази зменшуючи маніпуляції. Це створює FOMO і винагороджує ранніх покупців.
Приклад контракту bonding curve
contract FanTokenBondingCurve {
IERC20 public immutable fanToken;
uint256 public immutable initialPrice; // ціна першого токена в USD (scaled 1e6)
uint256 public immutable slope; // крутизна кривої (scaled 1e18)
uint256 public tokensSold;
function getCurrentPrice() public view returns (uint256) {
return initialPrice + (slope * tokensSold / 1e18);
}
function getBuyCost(uint256 amount) public view returns (uint256) {
uint256 priceAtStart = getCurrentPrice();
uint256 priceAtEnd = initialPrice + (slope * (tokensSold + amount) / 1e18);
return (priceAtStart + priceAtEnd) * amount / 2 / 1e6;
}
function buy(uint256 tokenAmount, uint256 maxCost) external payable nonReentrant {
uint256 cost = getBuyCost(tokenAmount);
require(cost <= maxCost, "Price slippage exceeded");
require(msg.value >= cost, "Insufficient payment");
tokensSold += tokenAmount;
fanToken.safeTransfer(msg.sender, tokenAmount * 1e18);
if (msg.value > cost) {
payable(msg.sender).transfer(msg.value - cost);
}
emit TokensPurchased(msg.sender, tokenAmount, cost);
}
}
Параметри initialPrice і slope налаштовуються під кожний клуб. Типовий діапазон початкової ціни — $1–5, фінальна при повному розміщенні — $5–20.
Фіатний onboarding
Це ключова відмінність від DeFi-платформ. Вболівальник не повинен знати про газ — він натискає «Купити» і платить карткою.
Custody і custodial wallet
Два підходи: fully custodial (Chiliz) — платформа тримає ключі, максимальна простота UX, але централізація. MPC wallet (рекомендований) — ключ розділений між користувачем і платформою; користувач підписує через SDK, не бачачи raw private key. Використання MPC-гаманців знижує ризик втрати коштів у 10 разів порівняно з custodial. Провайдери: Privy, Dynamic, Web3Auth.
Приклад інтеграції MPC-гаманця
import { usePrivy, useWallets } from '@privy-io/react-auth';
function FanTokenPurchase() {
const { login, authenticated, user } = usePrivy();
const { wallets } = useWallets();
const embeddedWallet = wallets.find(w => w.walletClientType === 'privy');
async function purchaseTokens(amount: number) {
if (!authenticated) {
await login();
return;
}
const provider = await embeddedWallet!.getEthereumProvider();
const walletClient = createWalletClient({
account: embeddedWallet!.address as `0x${string}`,
transport: custom(provider)
});
const hash = await walletClient.writeContract({
address: FAN_TOKEN_LAUNCHPAD_ADDRESS,
abi: LAUNCHPAD_ABI,
functionName: 'buyWithFiat',
args: [BigInt(amount), MAX_SLIPPAGE],
value: parseEther(await getETHCostForAmount(amount))
});
return hash;
}
return (
<button onClick={() => purchaseTokens(10)}>
{authenticated ? 'Купити 10 токенів' : 'Увійти і купити'}
</button>
);
}
Fiat-to-crypto конвертація
Користувач платить фіатом — платформа конвертує в крипту. Варіанти: Stripe Crypto, MoonPay, Transak. Інтеграція через віджет з webhook для відстеження статусу.
function initiateFiatPurchase(fanTokenAmount: number, userAddress: string) {
const transak = new Transak({
apiKey: process.env.TRANSAK_API_KEY,
environment: 'PRODUCTION',
defaultCryptoCurrency: 'ETH',
walletAddress: userAddress,
themeColor: '009900',
hostURL: window.location.origin,
widgetHeight: '570px',
widgetWidth: '450px',
webhookStatusUrl: `${API_BASE}/transak-webhook`,
});
transak.init();
transak.on(Transak.EVENTS.TRANSAK_ORDER_SUCCESSFUL, async (orderData) => {
await purchaseFanTokens(fanTokenAmount, userAddress, orderData.status.id);
});
}
Як купити фан-токени: покрокова інструкція
- Реєстрація через соціальний логін (Google, Apple).
- Поповнення гаманця фіатом через вбудований fiat on-ramp.
- Купівля токенів на первинному ринку за ціною bonding curve.
- Отримання токенів на embedded MPC-гаманець.
- Використання токенів для голосування, ексклюзивного контенту або продажу на вторинному ринку.
Utility та engagement механіки
Токен без utility безглуздий. Launchpad включає інфраструктуру для голосувань, NFT drops, ексклюзивного контенту. Ми впроваджуємо NFT для вболівальників як частину engagement механік. Голосування на блокчейні дозволяє фанатам впливати на клубні рішення. Приклад контракту голосування:
contract FanVoting {
struct Vote {
string question;
string[] options;
uint256 startTime;
uint256 endTime;
uint256 minTokensToVote;
bool resultsPublic;
}
mapping(uint256 => Vote) public votes;
mapping(uint256 => mapping(address => uint256)) public votesCast;
IFanToken public fanToken;
function castVote(uint256 voteId, uint256 optionIndex) external {
Vote storage v = votes[voteId];
require(block.timestamp >= v.startTime && block.timestamp <= v.endTime);
require(votesCast[voteId][msg.sender] == 0, "Already voted");
uint256 balance = fanToken.balanceOf(msg.sender);
require(balance >= v.minTokensToVote, "Insufficient tokens");
votesCast[voteId][msg.sender] = optionIndex;
emit Voted(msg.sender, voteId, optionIndex, balance);
}
}
Приклади реальних голосувань: вибір музики на стадіоні, дизайн лімітованої форми, благодійна акція.
Як забезпечити ліквідність на вторинному ринку?
Fan-токени не повинні торгуватися як DeFi-активи. Рішення — власний AMM з price floor і ceiling. Клуб контролює ліквідність і може викуповувати токени при падінні ціни нижче floor.
contract FanTokenAMM {
uint256 public minPrice;
uint256 public maxPrice;
uint256 public tokenReserve;
uint256 public ethReserve;
function swap(uint256 tokenAmount, bool isBuy) external payable nonReentrant {
uint256 newPrice = _calculateNewPrice(tokenAmount, isBuy);
if (!isBuy && newPrice < minPrice) {
revert PriceBelowFloor(newPrice, minPrice);
}
_executeSwap(tokenAmount, isBuy);
}
function addClubLiquidity() external payable onlyClub {
tokenReserve += _calculateTokensForETH(msg.value);
ethReserve += msg.value;
}
}
Кожен фан-токен має прив'язку до клубу.
Що входить в нашу роботу?
- Архітектура токеноміки та смарт-контракти (Solidity, Foundry)
- MPC-гаманець із соціальним логіном (Privy/Dynamic)
- Fiat on-ramp інтеграція (Transak/MoonPay)
- Backend API (Node.js, PostgreSQL) і фронтенд (React Native або Next.js)
- Адміністративна панель клубу
- Аудит смарт-контрактів і формальна верифікація
- Документація API та посібник адміністратора
- Підтримка при запуску та 3 місяці пост-релізу
Які регуляторні міркування потрібно врахувати?
Fan-токени в ряді юрисдикцій можуть вважатися securities. Ключові принципи: utility-only (немає дивідендів), no investment advertising, KYC/AML, geo-restrictions. Враховуємо MiCA в ЄС та local laws.
Стек і терміни
| Компонент | Технологія | Термін |
|---|---|---|
| Smart contracts | Solidity + Foundry | 4–5 тиж |
| MPC wallet + social login | Privy / Dynamic SDK | 2–3 тиж |
| Fiat on-ramp | Transak / MoonPay | 1–2 тиж |
| Backend API | Node.js + PostgreSQL | 3–4 тиж |
| Frontend (mobile-first) | React Native / Next.js | 4–6 тиж |
| Club admin panel | React + shadcn/ui | 2–3 тиж |
| Аудит контрактів | 3–4 тиж |
Повний цикл розробки: 19–27 тижнів. Вартість повного циклу розробки — від $150,000, залежно від складності інтеграцій. Половина роботи — UX для non-crypto аудиторії, яка не пробачить "gas fee exceeded".
Оцінимо ваш проект безкоштовно — зв'яжіться з нами для консультації. Гарантуємо відповідність найкращим практикам безпеки та compliance.







