Skip to content

Add native Python wallet and transaction library - #1

Merged
yapishu merged 1 commit into
mainfrom
reid/initial-port
Oct 10, 2026
Merged

yapishu merged 1 commit into
mainfrom
reid/initial-port

Conversation

@yapishu

@yapishu yapishu commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

Provide native Python Nockchain V1 wallets and transactions, installable as nockchain. The package uses the standard library, immutable data structures, exact integers and explicit secret exports.

Includes wallet generation/recovery and public derivation; Cheetah Schnorr and TIP5; bounded immutable nouns and jam/cue; transaction inspection; complete input-note commitments; coin selection, fees and change; multisig, inclusive timelocks, partial signing and signature merging. Signature verification and authenticated input/height validation are explicit separate operations.

The protocol source of truth is Nockchain's Hoon engine at 1eac02083a053c104b6a1299e80a8a51447017dc; the implementation follows nockchain-go v0.1.0. Public Rust/BIP39 fixtures check 35 wallets, 105 signatures, hashes, nouns and six complete transactions, including exact partial and signed bytes. The Hoon corpus independently checks IDs, complete parent commitments and fees.

Validation: all 14 test groups pass, including malformed keys with valid checksums, shared-backreference expansion limits, immutable reviews, timelock boundaries and fee/selection cases. Ruff checks pass; wheel/sdist metadata checks pass; the built wheel installs and derives the expected public address in a fresh virtual environment. CI covers Python 3.11 and 3.13 and wheel installation.

Includes typed APIs, documentation, security scope, license attribution and public fixture provenance. Private-key arithmetic is variable-time; the package performs no chain access or broadcasting.

@yapishu
yapishu merged commit ee12eba into main Oct 10, 2026
4 checks passed
@yapishu
yapishu deleted the reid/initial-port branch October 10, 2026 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant