Разработка системы алертов о предстоящих token unlock
Token unlock — один из самых предсказуемых источников давления на цену в крипто. Когда команда, инвесторы или advisors видят, как к ним на кошелёк идёт крупный клифф — это заранее известное событие. Проблема в том, что большинство участников рынка узнают об этом постфактум, из новостей, когда цена уже упала.
Система алертов о предстоящих unlock решает простую задачу: дать подписчику информацию до события, а не после.
Что мониторим и откуда берём данные
Основных источника три: on-chain данные из vesting-контрактов, off-chain расписания из баз данных (TokenUnlocks, Vesting.vc, CryptoRank) и аналитика from первичных документов (whitepaper, tokenomics sheets).
On-chain мониторинг — наиболее надёжный способ для проектов с прозрачными vesting контрактами. Стандартные паттерны: OpenZeppelin VestingWallet, TokenVesting от Gnosis, кастомные реализации с release() функцией.
// Пример отслеживания VestingWallet событий через ethers.js
const vestingABI = [
"event ERC20Released(address indexed token, uint256 amount)",
"function releasable(address token) view returns (uint256)",
"function end() view returns (uint256)"
];
async function checkUpcomingUnlocks(vestingAddresses, tokenAddress, provider) {
const alerts = [];
const now = Math.floor(Date.now() / 1000);
const sevenDaysFromNow = now + 7 * 24 * 3600;
for (const addr of vestingAddresses) {
const contract = new ethers.Contract(addr, vestingABI, provider);
try {
const endTime = await contract.end();
const releasable = await contract.releasable(tokenAddress);
// Если есть разблокируемый объём и он скоро
if (releasable > 0n && Number(endTime) <= sevenDaysFromNow) {
alerts.push({
vestingContract: addr,
unlockAmount: ethers.formatUnits(releasable, 18),
unlockTimestamp: Number(endTime),
daysUntilUnlock: (Number(endTime) - now) / 86400
});
}
} catch (e) {
// Контракт не реализует интерфейс — пропускаем
}
}
return alerts;
}
Структура алертов и каналы доставки
Алерт содержит минимально необходимый контекст: проект, объём unlock в токенах и долларах (по текущей цене), категория получателей (team/investors/ecosystem), дата и время по UTC, ссылка на on-chain источник.
Каналы доставки: Telegram bot (самый массовый), Email, Discord webhook, REST API для интеграции в сторонние dashboards. Приоритет канала задаётся пользователем при подписке.
Пороги значимости стоит настраивать по % от circulating supply, а не по абсолютному объёму — unlock 1M токенов для проекта с 10B circulating supply незначителен, тот же объём при 50M circulating supply — это 2%, серьёзное событие.
Сроки разработки
MVP с мониторингом топ-100 проектов по рыночной капитализации, Telegram + Email алертами и веб-интерфейсом для управления подписками занимает 6–8 недель. Полноценная платформа с API, поддержкой кастомных vesting-контрактов и аналитикой влияния unlock на цену — 3–4 месяца.







