
Домашняя страница разработки прошивки проекта электронного бейджа Cryptohack.
Полубезопасный, дружественный к хакерам аппаратный криптокошелёк на платформе hip-badge ESP32-C3 со встроенным защищённым элементом ATECC608B. Подписывает транзакции для BTC, ETH (+ 8 EVM-сетей), SOL и XMR с экраном SIGN на устройстве, который пользователь должен одобрить, прежде чем какой-либо закрытый ключ коснётся сообщения.
firmware/badge/ runtime wallet
firmware/factory/ one-shot provisioning firmware + host driver
ref/ gitignored — clone upstream schematics here
⚠ Сначала прошейте заводскую прошивку на новом бейдже. Рантайм кошелька ожидает, что ATECC608B будет подготовлен (загружены ключи слотов, настроена config-зона), и без этого не разблокирует свой seed, обёрнутый в PIN. Порядок такой: собрать заводскую прошивку → прошить заводскую прошивку → запустить хостовый драйвер (
factory_provision.py) → собрать рантайм → прошить рантайм. Пропустите заводской шаг, и вы получите сбой инициализации SE и зависание загрузки на заставке. См.docs/TOOLS.md§ Factory provisioning для пошагового руководства по хостовому драйверу.
# Activate ESP-IDF in this shell (see firmware/BUILDING.md for install)
. ~/esp/esp-idf/export.sh # or export.ps1 on Windows
# 1. Factory provision (one-time per badge)
cd firmware/factory
idf.py -B build -p $PORT build flash monitor
# (in another shell) cd firmware/factory/tools && \
# uv run --with pyserial --with cbor2 factory_provision.py --port $PORT
# 2. Build + flash the runtime (do this AFTER factory)
cd ../badge
export SDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.dev"
idf.py -B build_dev -p $PORT build flash monitor
Полное руководство (Linux / macOS / Windows): firmware/BUILDING.md.
Чтобы прошить новый бейдж или воспроизвести набор тестов: docs/TOOLS.md.
| Читайте это | Если вы хотите… |
|---|---|
firmware/BUILDING.md | Установить ESP-IDF и впервые прошить устройство |
docs/ARCHITECTURE.md | Понять, как работает кошелёк — компоненты, зоны доверия, процесс подписи |
docs/TOOLS.md | Запустить хост-драйвер заводской прошивки или тесты подписи для каждой монеты |
docs/VERIFY.md | Запустить проверочный прогон до / после существенных изменений |
docs/PLAN.md | Прочитать исчерпывающую спецификацию безопасности — церемония KEK, карты слотов, сценарии восстановления |
docs/CODE_STYLE.md | Отправить PR, соответствующий соглашениям проекта |
CONTRIBUTING.md | Открыть PR (ветвление, коммиты, ожидания от ревью) |
TODO.md | Найти задачу или проверить, что уже реализовано |
CLAUDE.md | Кратко ознакомить AI-ассистента (Claude, Cursor и т. д.) с проектом |
| Вариант | eFuse | Использование | Можно ли перепрошить? |
|---|---|---|---|
dev | виртуальный (flash) | ежедневная итерация | да, всегда |
stage | реальный, разблокирован | сквозной тест на кремнии | да, пока не заблокируете |
prod | реальный, заблокирован | поставляемое устройство, Secure Boot V2 | нет |
Смешанная:
firmware/badge/components/trezor-crypto/ — MIT (взято из Trezor)firmware/badge/components/tinycbor/ — MIT (Intel)firmware/badge/components/qrcodegen/ — MIT (Project Nayuki)firmware/badge/main/ (расширение hip-badge blinkenlights/) — GPL-2.0-or-later