Hopline
Инструменты для расследования Bitcoin, работающие прямо в браузере: ничего не нужно устанавливать, и у них нет собственного сервера. Вставьте адрес или идентификатор транзакции, проследите за движением средств, пометьте найденное и составьте отчёт, который можно передать. Hopline обращается к API публичного обозревателя блоков (mempool.space, с Blockstream.info в качестве резервного варианта, или к вашему собственному серверу) и хранит вашу работу на вашей машине.

Попробовать: https://forensicworks.github.io/hopline/. Вставьте адрес или идентификатор транзакции либо нажмите Try a sample wallet.
Что вы получаете
- Рабочая область — граф транзакций и кошельков. Начните с одного кошелька или транзакции в режиме Trace и нажимайте ▶ или ◀, чтобы прослеживать движение средств шаг за шагом; то, что уже на экране, остаётся на месте. Группируйте, скрывайте и фильтруйте, воспроизводите во времени, отменяйте действия.
- Обзор кошелька — один адрес как реестр: баланс, итоги, каждая транзакция с её входами и выходами, кошельки, с которыми он взаимодействовал чаще всего (диаграмма и этот список следуют выбранной вами валюте), вся группа кошельков, потраченных вместе с ним (Follow further расширяет её раунд за раундом с чётким условием остановки), и меню экспорта (CSV, файл рабочей области, проверяемый отчёт).
- Имена — встроенный список бирж и сервисов, списки санкций OFAC и Великобритании, адреса выплат выкупа Ransomwhere, адреса вознаграждений майнинг-пулов и выбранная часть пакетов тегов GraphSense (всё встроено и датировано, с источниками в sources.md; списки санкций включены, если вы их не отключите, остальные — когда вы их включите), импортируемые вами списки меток и ваши собственные метки, теги и заметки; внешний поиск (Arkham, по запросу, по одному кошельку за раз) — один из нескольких источников за единым контрактом, сохраняется на кошельке и указывается в отчёте. Имя — это чьё-то утверждение, а не доказательство.
- Анализ с обоснованием — консолидации, пакетные платежи, транзакции типа CoinJoin, peel-цепочки, круглые суммы (число, выбранное кем-то, — зацепка, а не доказательство того, кто это), своп-мемо (OP_RETURN, который просит THORChain обменять платёж в другую цепочку, с адресом, на который он должен быть выплачен, или который несёт ID запроса кросс-чейн-сервиса со ссылкой для его проверки: то, что написал отправитель, — зацепка для дальнейшего расследования), вероятный выход сдачи и адреса, потраченные вместе. Всё это эвристика: она показывает свои основания, и ничто из этого не является доказательством.
- Маршруты, передачи и открытые концы — для именованного кошелька: шли ли и как деньги между ним и началом вашей трассировки, найденное путём прослеживания каждой монеты до транзакции, которая её потратила (никогда путём сопоставления адресов, что объединило бы несвязанные деньги), подсвеченное на холсте и перечисленное по шагам (кратчайший, с кнопкой, которая ищет до четырёх дополнительных и перечисляет их начиная с кратчайшего); где след встречает биржу или другой сервис (депозит или вывод) или проходит через кошелёк, названный в списке санкций или ransomware, — в виде таблицы для копирования, скачивания в CSV, включения в отчёт и чтения с помощью
tools/hopline-cli.js; где он всё ещё открыт, чтобы вы могли продолжить оттуда; и поиск, который загружается с обоих концов, пока два кошелька не встретятся или пока не исчерпаются варианты (со стороны кошелька сервиса он сначала следует за депозитами или выводами, ближайшими по времени к другому концу, и исключает те, что не могут уложиться во время маршрута). Кошельки, потраченные вместе с именованным, получают имя (из списка или данное вами) в качестве предложения, но никогда не применяются автоматически.
- Отчёт о расследовании — один самодостаточный HTML-файл с находками, транзакциями, где и когда каждая была получена, и хешами, которые может проверить
tools/verify_report.py.
- Суммы в валюте — семь валют, по времени каждой транзакции или по сегодняшнему курсу.
- Ассистент (опционально) — доказательства в виде текста для любого ИИ-ассистента или модели на этом компьютере (Ollama, LM Studio, llama.cpp), при этом каждый id в его ответе сверяется с доказательствами. Он остаётся на вашем компьютере, если вы не включите опцию Claude, которая отключена по умолчанию, показывает вам точный текст и спрашивает перед каждой отправкой, поскольку отправляет доказательства в Anthropic. См. docs/interface.md.
Конфиденциальность
- Всё работает в вашем браузере. Единственные сетевые запросы идут к выбранному вами источнику данных (и к mempool.space для цен), который может видеть ваш IP-адрес и то, что вы ищете. Выбор одного кошелька считывает его баланс (один запрос с этим адресом; отключите это в разделе Expansion limits). Копия, которую вы запускаете сами, не загружает шрифты, аналитику или CDN.
- Ничего не хранится на сервере. Ваша сессия остаётся в этом браузере; на живом сайте она изначально отключена, поэтому отметьте Keep this session in this browser, если хотите её сохранить.
- Копия на https://hopline.pages.dev считает посещения только по странице и названию функции, в виде запроса изображения: никаких адресов, идентификаторов транзакций, меток или заметок, никаких cookie и ничего для браузеров, отправляющих Do Not Track. Копия на GitHub Pages и копии, которые вы запускаете сами, ничего не отправляют. Подробнее в Publishing a copy.
- На живом сайте ваш собственный сервер Esplora должен использовать
https и разрешать кросс-доменные запросы, а Tor не предлагается. В копии, которую вы запускаете сами, есть и то, и другое. См. Data sources and limits.
Запуск своими силами
Откройте index.html прямо из папки или запустите python tools/serve.py и откройте http://127.0.0.1:8000/index.html. Предпочитайте это варианту python -m http.server: стандартный сервер позволяет браузеру хранить старые копии скриптов, поэтому после обновления страница может открыться пустой, пока вы не нажмёте Ctrl+F5.
Документация
Полная документация находится в wiki: