Крупный 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 |







