
暗号ハック電子バッジプロジェクトのファームウェアエンジニアリングの本拠地。
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 がプロビジョニング済み(スロットキーがロードされ、 コンフィグゾーンが設定済み)であることを前提としており、それがなければ PIN でラップされたシードの ロックを解除できません。手順は次のとおりです: 工場出荷版をビルド → 工場出荷版を書き込み → ホスト ドライバ(
factory_provision.py)を実行 → ランタイムをビルド → ランタイムを書き込み。 工場出荷のステップを飛ばすと、SE の初期化に失敗し、 スプラッシュ画面で起動が停止します。ホストドライバの手順についてはdocs/TOOLS.md§ 工場出荷プロビジョニング を参照してください。
# 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 | 仮想(フラッシュ) | 日々のイテレーション | はい、常に |
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