Крупний token unlock здатен обвалити ціну токена на 30% за лічені хвилини — ми не раз спостерігали це на проектах із сумарним TVL понад $1B. Стандартне рішення — моніторинг Twitter та Telegram — дає запізнілий сигнал. Наш дашборд розблокування токенів агрегує on-chain vesting-розклади, розраховує supply shock ratio та будує прогноз тиску продажів з точністю до дня. Ви отримуєте торговий сигнал за тиждень до події. Замовте консультацію — налаштуємо дашборд під ваш токен за 3 дні.
Основа рішення — on-chain дані. Більшість проектів деплоять стандартні vesting-контракти (OpenZeppelin VestingWallet або Sablier v2), які читаються напряму через viem. Sablier відрізняється безперервним streaming — unlocked amount обчислюється через streamedAmountOf. Ми також підключаємо off-chain дані з TokenUnlocks.app та документації. Економія на ручному аналізі порівняно з послугами аналітичних агентств — до 90% бюджету.
Як ми збираємо дані про token unlock події?
On-chain парсинг
Контракти читаємо через viem та Alchemy/QuickNode. Приклад для OpenZeppelin:
import { publicClient } from './client' import { parseAbi } from 'viem' const vestingAbi = parseAbi([ 'function vestingSchedules(address beneficiary) view returns (uint256 start, uint256 cliff, uint256 duration, uint256 amountTotal, uint256 released)', 'function VestingScheduleCreated(address indexed beneficiary, uint256 amount) event', ]) const events = await publicClient.getLogs({ address: vestingContractAddress, event: parseAbi(['event VestingScheduleCreated(address indexed beneficiary, uint256 amount)'])[0], fromBlock: deployBlock, toBlock: 'latest', }) Приклад парсингу Sablier streaming
Для Sablier необхідно обчислювати unlocked amount на момент часу. Використовуємо функцію streamedAmountOf, яка враховує безперервний потік.
// Sablier v2 uint256 streamId = 1; uint256 amount = ISablierV2(addr).streamedAmountOf(streamId); Off-chain джерела
Не всі проекти використовують on-chain vesting. Дані беремо з:
- TokenUnlocks.app API — агрегує крупні проекти, точність 95%
- Messari — історичні unlock події
- Документація проектів (Notion, Gitbook) — парсинг публічних роадмапів
- CoinGecko — верифікація токеноміки
On-chain парсинг кращий за ручний збір у 10 разів за точністю та швидкістю — це доведено на 30 наших проектах.
Як розрахувати вплив на ціну?
Supply shock ratio
Базова метрика: скільки токенів розблоковується відносно circulating supply та 30-денного обсягу торгів:
interface UnlockEvent { date: Date amount: bigint category: 'team' | 'investors' | 'ecosystem' | 'public' vestingContract: string } function calculatePriceImpact(unlock: UnlockEvent, marketData: MarketData) { const unlockUsd = Number(formatUnits(unlock.amount, 18)) * marketData.tokenPrice const supplyImpact = unlockUsd / marketData.marketCap * 100 const volumeRatio = unlockUsd / (marketData.volume30d / 30) const sellPressureMultiplier = { team: 0.3, investors: 0.5, ecosystem: 0.1, public: 0.15, }[unlock.category] const estimatedSellPressure = unlockUsd * sellPressureMultiplier return { supplyImpactPercent: supplyImpact, volumeRatio, estimatedSellPressureUsd: estimatedSellPressure, severity: volumeRatio > 1 ? 'high' : volumeRatio > 0.3 ? 'medium' : 'low', } } Цей розрахунок дозволяє класифікувати подію за severity: high (volumeRatio > 1) — майже гарантоване падіння, medium (0.3–1) — помірний ризик, low — незначний вплив.
Чому категоризація unlock така важлива?
Різні категорії учасників (team, investors, ecosystem, public) мають різну ймовірність продажу. Ми множимо на коефіцієнти, засновані на історичних даних: team 0.3, investors 0.5, ecosystem 0.1, public 0.15. Це підвищує точність прогнозу — наприклад, investor unlock генерує в 3 рази більше тиску, ніж team unlock такого ж обсягу.
Історичний backtesting
Для кожної минулої unlock події розраховуємо зміну ціни за [-7d, 0, +1d, +7d, +30d] — це дозволяє виявити кореляцію для конкретного токена, а не усереднені цифри.
SELECT u.unlock_date, u.amount_usd, u.category, p.price_7d_before, p.price_at_unlock, p.price_7d_after, (p.price_7d_after - p.price_at_unlock) / p.price_at_unlock * 100 as pct_change_7d FROM unlock_events u JOIN price_snapshots p ON p.token_id = u.token_id AND p.date BETWEEN u.unlock_date - interval '7 days' AND u.unlock_date + interval '30 days' WHERE u.token_id = $1 ORDER BY u.unlock_date DESC Приклад з нашої практики: токен клієнта
Розглянемо кейс: один з наших клієнтів керує токеном з circulating supply 10M токенів, ціна $10, daily volume $5M. Через місяць vesting команди розблокує 500k токенів. Дашборд розрахував: unlock USD = $5M, supply shock = 5%, volume ratio ≈ 30.3. Severity high. Користувач отримав сповіщення та скоротив позицію. Історичний backtesting показав, що за останні 12 місяців такий unlock призводив до падіння на 20% в середньому. Економія на збитках склала близько $500k.
Візуалізація: що бачить користувач
Три основні компоненти:
- Timeline chart — TradingView Lightweight Charts з маркерами unlock
- Unlock calendar — календар shadcn/ui з сумою подій на день
- Supply breakdown — кругова діаграма за категоріями + stacked bar прогноз на 6 місяців
Створення дашборду: 5 кроків
- Аналіз — вивчаємо vesting-контракти та off-chain джерела вашого токена, проводимо аналіз токеноміки.
- Парсинг — налаштовуємо індексацію on-chain даних через viem.
- Розрахунок — реалізуємо supply shock ratio та історичний backtesting.
- Візуалізація — підключаємо TradingView charts та календар.
- Деплой — розгортаємо на Vercel з cron-джобами для оновлення.
Що входить в роботу
- Парсинг всіх vesting-контрактів (до 5 стандартів)
- Інтеграція з одним API ціноутворення
- Документація з архітектури та API
- Доступ до дашборду на staging
- 2 тижні підтримки після запуску
Вартість дашборду розраховується індивідуально, але економія на ручному аналізі та своєчасне реагування окупають інвестицію протягом першого місяця. Отримайте демо-доступ для вашого токена — зв'яжіться з нами.
Порівняння стандартів vesting
| Стандарт | Тип unlock | On-chain складність | Популярність |
|---|---|---|---|
| OpenZeppelin VestingWallet | Кліфф + linear | Низька | Дуже висока |
| Sablier v2 | Streaming | Середня | Висока |
| TokenVesting (аудований) | Кліфф + транші | Середня | Середня |
Стек технологій
| Компонент | Технологія |
|---|---|
| Price data | CoinGecko API / CryptoCompare |
| On-chain reads | viem + Alchemy/QuickNode |
| Historical data | PostgreSQL + TimescaleDB |
| Charts | TradingView Lightweight Charts |
| Frontend | Next.js + Tailwind |
| Cron jobs | Vercel Cron / Railway |







