Розробка системи аналізу тиску продажів від unlock
Unlock schedule — один з головних джерел ціневого тиску на токен. Кожен раз, коли крупна алокація виходить з vesting, ринок або спокійно переварює це, або отримує dump на 20-40%. Різниця — в тому, наскільки хорошо команда та інвесторів розуміють структуру наступного тиску заздалегідь.
Система аналізу unlock sell pressure вирішує конкретну задачу: за N днів до события дати кількісну оцінку того, яка частина розблокованого обсягу, скоріш за все, вийде на ринок, в які часові вікна, та як це співвідноситься з поточною ліквідністю.
Джерела даних
On-chain vesting контракти
Перший джерело — самі vesting контракти. Якщо токен використовує стандартні схеми (TokenVesting від OpenZeppelin або кастомний VestingWallet), дані повністю on-chain: адреса бенефіціара, totalAmount, cliff, duration, claimed.
// Приклад читання vesting schedule через ethers.js
const vestingContract = new ethers.Contract(VESTING_ADDRESS, VESTING_ABI, provider);
async function getSchedule(beneficiary: string) {
const schedule = await vestingContract.vestingSchedule(beneficiary);
return {
totalAmount: schedule.amountTotal,
cliff: schedule.cliff.toNumber(),
duration: schedule.duration.toNumber(),
released: schedule.released,
start: schedule.start.toNumber(),
};
}
Проблема: багато проектів не публікують адреси vesting контрактів явно. Потрібен пошук через emitted события або аналіз транзакцій з деплоя токена.
Token holder snapshots
Другий джерело — snapshots крупних холдерів з Etherscan API, Covalent або The Graph. Адреси з великими балансами, заблокованими з моменту TGE, — потенціальні продавці в момент unlock.
Історичні паттерни
Третій джерело — on-chain історія транзакцій бенефіціарів. Як вел себе дана адреса в попередніх unlock-событях: продавав протягом 24 годин, тримав, переводив на CEX (майже завжди означає продажу).
Класифікація адрес за вероятністю продажі
Не всі розблоковані токени однаково небезпечні. Потрібна сегментація:
| Категорія | Ознаки | Вероятність продажі |
|---|---|---|
| Seed/Private investors | Ранній вхід, високий multiplier (10x+) | 60-85% |
| Strategic investors | Середній multiplier (3-7x) | 30-55% |
| Team | Довгострокова цікавість, публічні люди | 10-25% |
| Advisors | Часто малий vesting, висока мотивація виходу | 40-70% |
| Ecosystem/Community | Розподілені адреси, малі суми | 15-30% |
Це не точні цифри — вони калібруються під конкретний проект на основі історичних даних. Якщо команда вже проходила через unlocks (наприклад, часткові розблокування), історія дає реальну calibration.
Ліквідностний контекст
Сума тиску продажів сама по собі малоінформативна без порівняння з ліквідністю рынку. Ключові метрики:
Sell pressure ratio — розблокуваний обсяг (в USD) поділений на середньодневний обсяг торгів за останні 30 днів. Якщо SPR > 0.3 (30%), чекай турбулентності.
DEX depth analysis — реальна ліквідність в AMM пулах. Через Uniswap v3 subgraph можна отримати розподіл ліквідності по цінових діапазонах і розрахувати price impact для різного обсягу продажів.
// Запит до Uniswap v3 subgraph для аналізу глибини пулу
const POOL_QUERY = `
query GetPool($poolId: String!) {
pool(id: $poolId) {
liquidity
token0Price
ticks(first: 100, orderBy: tickIdx) {
tickIdx
liquidityNet
liquidityGross
}
}
}
`;
// Price impact при продажі X токенів розраховується
// через симуляцію swap по формулі Uniswap v3
function estimatePriceImpact(sellAmount: bigint, poolData: PoolData): number {
// симуляція через тики ліквідності
// ...
}
CEX order book depth — якщо токен торгується на Binance/OKX, потрібно аналізувати глибину bid-стакана. Менш автоматизуємо, але критично для токенів з основним обсягом на CEX.
Архітектура системи
Система складається з кількох компонентів:
Scheduler — читає всі vesting контракти, будує timeline разблокування на наступні 12 місяців. Оновлюється щоденно.
Classifier — присвоює кожному адресі-бенефіціару категорію та вероватність продажі. Використовує on-chain історію + метаданні (публічний інвестор, фонд з відомою політикою тощо).
Pressure Calculator — для кожного unlock события рахує очікуваний sell pressure в USD з доверительним інтервалом.
Liquidity Monitor — агрегує дані про ліквідність з DEX та CEX, оновлюється кожні 15 хвилин.
Alert Engine — за 7 днів та за 24 години до unlock генерує репорт: очікуваний обсяг тиску, поточна ліквідність, рекомендації (наприклад: «розглянути buyback програму» або «підготувати MM для підтримки стакана»).
Мітигація тиску
Система не лише аналізує — допомагає приймати рішення. Інструменти мітигації:
OTC договорённості з крупними інвесторами — продажа вне ринку, без ціневого тиску. Реалізуємо для адрес з сумою > $500K.
Buyback програма — якщо проект має treasury, зарезервувати частину коштів для поглинання sell pressure. Система розраховує необхідний обсяг buyback для утримання ціни в заданому діапазоні.
Unlock smoothing — якщо vesting контракт дозволяє, можна договоритися з бенефіціарами про voluntary lockup extension в обмін на додаткове вознаграження. Деякі проекти роблять це через governance голосування.
Комунікаційна підготовка — заблаговременне публічне розкриття інформації про unlock знижує панік. Система генерує дані для підготовки investor update.
Stack розробки
Backend: Node.js + TypeScript, PostgreSQL для зберігання історичних даних, Redis для кешу on-chain даних. Blockchain indexing: або власний indexer на основі ethers.js, або інтеграція з Covalent/Alchemy/The Graph.
Frontend (dashboard): React + recharts для візуалізації timeline, таблиці з детализацією по адресам, export в CSV для звітності.
Розробка займає 4-8 тижнів залежно від кількості підтримуваних мереж та глибини аналізу. Пріоритет — точність даних та надійність алертів перед красотою інтерфейсу.







