인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
디자인 및 창작 · SKILL.md

bitcoin-libraries-embit

bitcoin-libraries-embit

embit: Python Bitcoin library designed for embedded / hardware wallets (MicroPython compatible). Used by Specter DIY, Krux, SeedSigner. USE WHEN: building HW signers, MicroPython Bitcoin apps, low-resource Python.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: bitcoin-libraries-embit description: | embit: Python Bitcoin library designed for embedded / hardware wallets (MicroPython compatible). Used by Specter DIY, Krux, SeedSigner. USE WHEN: building HW signers, MicroPython Bitcoin apps, low-resource Python. allowed-tools: Read, Grep, Glob

embit

Python Bitcoin library by Crypto Advance team. Optimized for embedded contexts — runs on MicroPython.

Repo: github.com/diybitcoinhardware/embit.

Install

pip install embit

For MicroPython: package as frozen module on firmware.

PyPI lags the repo. The newest release on PyPI is 0.8.0 (uploaded 2024-05-30); tags v0.8.1 (2026-06-02) and v0.8.2 (2026-08-08) were cut on GitHub but never published to PyPI, so as of September 2026 pip install embit still gives you the 2024 build. To get the later fixes, install the tag directly:

pip install "embit @ git+https://github.com/diybitcoinhardware/embit@v0.8.2"

Post-0.8.0 changes, per the repo CHANGELOG.md: 0.8.1 adds PSBT PSBT_IN_TAP_KEY_SIG (Taproot key-spend signature) parsing, declares CPython 3.10+, stops shipping prebuilt libsecp256k1 in the artifacts (the ctypes backend is discovered on the system, pure-Python fallback otherwise) and tightens BIP39 validation; 0.8.2 aligns PSBT version parsing with BIP 174 / BIP 370.

What the downstream signers pin, as of September 2026:

Projectembit source
SeedSignerembit==0.8.0 from PyPI, hash-locked in requirements.txt
Kruxsubmodule vendor/embit at fff7ffa4 (2026-06-02)
Specter DIYf469-disco submodule libs/common/embit at eb6104fd (v0.8.2)

Quick examples

Address generation

from embit import bip32, bip39, networks, script

mnemonic = "abandon abandon abandon ... about"
seed = bip39.mnemonic_to_seed(mnemonic)
root = bip32.HDKey.from_seed(seed)
acc = root.derive("m/84h/0h/0h")
xpub = acc.to_public()
addr = script.p2wpkh(acc.derive("0/0").key).address(networks.NETWORKS["main"])
print(addr)

PSBT

from embit import psbt

psbt_obj = psbt.PSBT.from_string(psbt_b64)
# inspect, sign
for inp in psbt_obj.inputs:
    inp.partial_sigs[some_pubkey] = sig_bytes
print(psbt_obj.to_string())

Modules

  • embit.bip32 — HD derivation.
  • embit.bip39 — mnemonic.
  • embit.psbt — PSBT.
  • embit.script — Script primitives, p2pkh/p2sh/p2wpkh/p2wsh/p2tr.
  • embit.networks — main, test, signet, regtest.
  • embit.descriptor — descriptor parsing.
  • embit.liquid — Liquid extensions.

Use cases

  • HW wallet signers: SeedSigner, Krux, Specter DIY.
  • MicroPython Bitcoin apps.
  • Lightweight Python wallets.

Compared

Aspectembitpython-bitcoinlib
Embedded-friendlyyesno
MicroPythonyesno
RPC clientnoyes
Maturitynewer10+ years

Common pitfalls

  • API differences from python-bitcoinlib; not a drop-in replacement.
  • MicroPython port has subset of features; verify before relying.

See also

저장한 Skills