Package Guide

Use this page as a quick map from package to responsibility.

Primitives

`(sigil bitcoin primitives)` contains hash combinators used across the workspace.

Encoding

`(sigil bitcoin encoding)` contains user-facing codecs for hex, Base58Check, Bech32, Bech32m, and SegWit addresses.

secp256k1

`(sigil secp256k1)` is the native libsecp256k1 binding. Higher layers use it for ECDSA, Schnorr, public key derivation, scalar tweaks, public-key point operations, x-only keys, and Taproot key tweaks.

Keys

`(sigil bitcoin keys)` builds wallet-level key and address functionality on top of secp256k1, encoding, and hash primitives.

Script

`(sigil bitcoin script)` constructs raw script bytevectors for standard output types and Miniscript compilation.

Transactions and PSBT

`(sigil bitcoin tx)` owns transaction records, serialization, parsing, txids, sighashes, P2PKH/P2WPKH/P2WSH single-key/P2TR key-path signing, and PSBT v0 operations including non-witness UTXOs, redeem/witness scripts, input/output derivation records, annotation helpers, unknown/proprietary keys, and Taproot key signatures.

Miniscript

`(sigil bitcoin miniscript)` owns policy fragments, type/signing metadata, hash-lock and branch combinator compilation, descriptors with checksums, BIP389 multipath key derivation, Taproot script-tree hashing and output-key compilation, concrete BIP327 `musig(...)` key aggregation for Taproot descriptor scriptPubKeys, script compilation, BIP388 wallet policy expansion, PSBT planning records with WSH script material, and descriptor-plan PSBT signing wrappers.