DeFi. Uniswap v.4. Хуки (Hooks). Часть I. Вводная
В 9 из 10 случаев пишу статью, если:
- Не нашёл ответ в сети по интересующему меня вопросу;
- Или этот ответ меня не устроил: по полноте, охвату, глубине детализации и т.д.
В данном же случае случалось и то и другое: да, статьи, вроде бы и есть, но их нельзя назвать полными и завершёнными, а детализации пока так мало, что об этом можно рассказывать отдельно.
И всё же ограничусь 3-4 частями, в первой из которых (вы её сейчас изучаете), расскажу о том, где в принципе искать информацию о хуках и с чего начинать в целом.
Хук - это?
Классический фланговый удар из традиционного бокса. «Хук» в переводе с английского означает «крюк», что совпадает с традиционным русским названием этого удара. Однако в настоящее время чаще используется англоязычное название.
Но это в боксе. А вот в Uniswap это совсем другие “крючки”...
В контексте Uniswap v4 хук (hook) — специальный фрагмент кода, который можно подключать к пулам ликвидности, чтобы расширять их поведение. Это одна из ключевых новинок Uniswap v4 и делает его гораздо более гибким по сравнению с предыдущими версиями.
Поэтому - немного статистики:
Можно изучить не с позиции объёмов, но и сетей:
Есть и альтернативное представление по первому и второму примеру: dune.com/obchakevich/uniswap-all-versions. А теперь - вернёмся к хукам, т.к. видим, что объёмы v.4 вполне себе растут.
Ещё раз: hook — настраиваемый смарт-контракт, который может быть вызван в определённые моменты жизненного цикла пула:
- при создании пула,
- при добавлении/удалении ликвидности,
- при свопе,
- и в других точках (например, перед или после сделки).
Это как "вставка" своего кода внутрь стандартного пула, чтобы он работал по-новому.
И возникает резонный вопрос: “для чего нужны хуки?”. Короткий ответ: чтобы блокировать неугодных на уровне децентрализованного (блокчейн/DAG/DLT/etc.) бэкенда. Но есть ответ более позитивный.
- Добавлять комиссии разработчикам — например, брать часть комиссии с пула в свою пользу.
- Проверять условия — например, разрешать свапы только в определённое время или при определённых условиях.
- Создавать новые AMM-логики — вплоть до поддержки динамических комиссий, автоматической ребалансировки и т. д.
- Встраивать лимитные ордера, TWAMM (Time-Weighted Average Market Maker), oracles, и другие механики без создания новых протоколов.
Тогда зададимся ещё одним вопросом: “Как работают хуки?”. Грубо говоря, каждое событие в пуле может "триггерить" вызов хука. Например:
- beforeSwap(...) → вызывается перед свапом,
- afterSwap(...) → вызывается после свапа,
- beforeInitialize(...), afterAddLiquidity(...) и т. д.
Разработчик может реализовать только нужные ему методы — необязательно использовать все.
Чтобы въехать ещё быстрее - примитивный пример использования. Допустим, у вас есть пул, который:
Для этого вы пишите хук-контракт, который проверяет время и добавляет свою комиссию. Затем создаёте Uniswap v4-пул с этим хук-контрактом: и всё!
Так почему это столь важно?Появление хуков делает Uniswap v4 больше похожим на платформу для DEX-протоколов, а не просто AMM (в чистом виде). Теперь любой может писать "расширенные пулы" прямо на Uniswap без форка всего протокола.
(Помните про вампирский майнинг? Это тоже один из ответов на вопрос: “Зачем?”).
Где искать хуки?
Да, эта проблема, скажу вам: ещё квартал назад, в начале 2025 года, не было ничего.
HookRank
Но сейчас есть уже кое-что. Один из таких сервисов: hookrank.io - конечно, он не похож на полноценный маркетплейс хуков, но здесь есть уже всё необходимое:
Думаю, корреляция с графиками вышна заметна. Ещё вернёмся к этому сервису и не раз. А пока расскажу об альтернативах.
Dune
Без неё никуда: dune.com/sealaunch/uniswap-v4-hooks:
Как видим, здесь уже большее количество хуков высвечивается. Но посмотрим на ещё один дашборд: dune.com/paulapivat/uniswap-v4-growth-by-hooks:
Здесь уже можем наблюдать за лидерством Base, т.к. их главный бенефициар сделал и внедрил уже ряд популярных хуков.
Следующий трекер: dune.com/uniswap_fnd/v4-launch-metrics-tracker:
Здесь видим снова пересечения с первыми графиками на Dune (см. выше).
Наконец, ещё один рассмотрим сборник представлений: dune.com/uniswap_fnd/v4pooldeployedwatcher:
Логично, что и здесь видим схожие данные.
Документация
Обычно её советую смотреть в первую очередь, но не в данном случае. Почему?
И всё же, вот две важные ссылки:
- Создание хука: docs.uniswap.org/contracts/v4/guides/hooks/your-first-hook
- Более сложный пример: blog.uniswap.org/v4-twamm-hook
Дополнительные ссылки
Ряд из них будет в переводе, но позже, а пока - список:
- research.2077.xyz/a-complete-guide-to-uniswap-v4-1
- medium.com/@umbrellaresearch/uniswap-v4-hooks-a-deep-dive-with-captain-hook-i-6be5d1677539
- medium.com/buildbear/how-to-build-custom-hooks-in-uniswap-v4-79b158488ed2
- uniswapfoundation.mirror.xyz/KGKMZ2Gbc_I8IqySVUMrEenZxPnVnH9-Qe4BlN1qn0g
- github.com/ora-io/awesome-uniswap-hooks
Что дальше?
Попробую разобрать кое-какие примеры и общие векторы, а пока всё и