Skip to content

v2.1.1 — BRC-100 Stable + Chronicle Network Upgrade + Python 3.13

Choose a tag to compare

@ALiberalVoluntarist ALiberalVoluntarist released this 20 May 07:29
· 13 commits to master since this release
Immutable release. Only release title and notes can be modified.
155dfcc

v2.1.1 — BRC-100 Stable + Chronicle Network Upgrade + Python 3.13

This release graduates the BRC-100 Wallet Protocol implementation from beta to stable, adds full support for the BSV Chronicle network upgrade, and modernizes the project's dependency management.

Highlights

🏗️ BRC-100 Wallet Protocol (Stable)

  • Graduated from beta (2.0.0b1) — no breaking changes
  • Complete Wallet infrastructure with serializers, substrates, and implementations
  • Authentication system: peer auth, certificates, session management, HTTP transport
  • Enhanced BEEF builder, serializer, and validator
  • Script interpreter with comprehensive opcode support
  • Overlay tools: lookup resolver, SHIP broadcaster, historian, host reputation tracker
  • Registry client, identity client, headers client, keystore
  • Additional cryptographic primitives: Schnorr signatures, DRBG, AES-GCM
  • TOTP, BIP-276, PushDrop token protocol, Teranode broadcaster

🔗 Chronicle Network Upgrade

  • 10 restored opcodes: OP_VER, OP_VERIF, OP_VERNOTIF, OP_2MUL, OP_2DIV, OP_SUBSTR, OP_LEFT, OP_RIGHT, OP_LSHIFTNUM, OP_RSHIFTNUM
  • SIGHASH_CHRONICLE (0x20) with OTDA (Original Transaction Digest Algorithm) preimage support
  • MAX_SCRIPT_NUMBER_LENGTH increased from 750 KB to 32 MB
  • Malleability relaxation for transaction version > 1
  • 250+ mock tests and 98 live testnet broadcast tests

🐍 Python Support

  • Added Python 3.13 support — verified with 5,413 tests
  • Dropped Python 3.9 — minimum is now Python 3.10

📦 Dependency Management Overhaul

  • Consolidated to pyproject.toml as single source of truth (PEP 621)
  • Deleted setup.cfg and requirements.txt
  • Added uv.lock for reproducible dependency pinning

Updated Dependencies

Package | From | To -- | -- | -- coincurve | 20.0.0 | 21.0.0 pycryptodomex | 3.21.0 | 3.23.0 aiohttp | 3.12.14 | 3.13.5 requests | 2.32.3 | 2.34.2 pytest | 8.3.4 | 9.0.3 pytest-asyncio | 0.24.0 | 1.3.0 cryptography | 42.0.0 | 48.0.0

Bug Fixes

  • BroadcastResponse isinstance mismatch between old and new import paths
  • OP_INVERT: corrected ~b to b ^ 0xFF for proper bitwise NOT
  • Removed ecdsa dependency (unused, had unfixed Minerva timing vulnerability)
  • Added missing typing_extensions to declared dependencies
  • Fixed version mismatch in bsv/__init__.py

Installation

pip install bsv-sdk==2.1.1

Full Changelog: v2.0.0b1...v2.1.1