hsms
Hardware security module simulator for chia bls12_381 signatures
What it is and what it does
HSMS is a command-line tool suite that simulates a hardware security module for the Chia blockchain, allowing you to sign transactions offline using BLS12-381 cryptographic keys. It runs on an air-gapped computer and accepts unsigned spend objects, producing full or partial signatures suitable for multisig scenarios. The package includes utilities to generate secret keys, display public keys, merge multisig signatures, and convert between binary and qrint ASCII formats, plus debugging tools to inspect spend bundles and unsigned spends.
The tool is built on top of Chia's core libraries (chia_base and chialisp_puzzles) and the segno QR code library. It is intended for operators who need to keep signing keys isolated from networked systems, a common requirement in cryptocurrency custody workflows. The aging maintenance status suggests it is stable but not actively developed, so it may lag behind new Chia protocol features.
Use it for:
- Generate and manage BLS12-381 key pairs for Chia blockchain signing on an isolated computer.
- Sign Chia spend bundles offline using hsmgen and hsms, then transfer signatures back to a networked node.
- Create and merge multisig Chia transactions by combining partial signatures from multiple HSM instances.
- Debug and inspect Chia spend bundles and unsigned spends using hsm_dump_sb and hsm_dump_us utilities.
- Convert binary spend data to/from QR code ASCII format for air-gapped key and transaction transfer.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides command-line tools to simulate a hardware security module for signing Chia blockchain transactions using BLS12-381 keys on an air-gapped computer.
Yes, if you are building or operating a Chia node that requires offline transaction signing. The low install friction and permissive license make it straightforward to add. However, verify compatibility with your Chia version and Python environment first, and understand that aging maintenance means you may need to maintain or patch it yourself if the Chia protocol evolves significantly.
Install
hsms on PyPI
pip
pip install hsmsuv
uv add hsmspoetry
poetry add hsmsInstalling hsms
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance status is aging—last release was 267 days ago—so expect minimal active development, though no recent breakage is evident.
License in practice
Licensed under Apache 2.0 (permissive), which allows commercial and derivative use with minimal restrictions; you must retain license notices and attribute changes.
Quickstart
pip install hsms
from hsms import hsms
# Use command-line tools: hsms, hsmgen, hsmpk, hsmmerge, qrint
On Windows, requires pyreadline as an additional dependency. Air-gapped deployment requires manual key transfer and spend bundle handling outside normal network channels.
Verify before relying
- Whether the package works with current Chia blockchain protocol versions and chia_base/chialisp_puzzles releases.
- Specific Python version requirements (requires_python is unspecified in metadata).
- Security audit status or review of the BLS12-381 signing implementation.
- Whether the simulator accurately models real HSM behavior for production use.
Package facts
| License | Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for… (full text in the JSON record) (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — segno, chia_base, chialisp_puzzles |
| Maintenance | aging — 267 days since the last release |
| First released | |
| Downloads | 108,204/month — #12,569 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: hsms-0.3.2-py3-none-any.whl
Tags
More Cryptography packages
Certifi provides Mozilla's curated collection…
copyleft · top 100 on PyPI
cryptographycryptography provides cryptographic recipes and…
permissive · top 100 on PyPI
rsaPure-Python RSA encryption, decryption,…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
azure-identityProvides Microsoft Entra ID token-based…
unclear · top 1,000 on PyPI
PyNaClPyNaCl provides Python bindings to libsodium…
permissive · top 1,000 on PyPI
python-pkcs11Provides a high-level Python interface to…
permissive · top 15,000 on PyPI
chia-puzzles-pyProvides Python bindings to the standard Chia…
unclear · top 15,000 on PyPI
chia-rsProvides Python bindings to Rust crates for…
unclear · top 15,000 on PyPI
chia-baseProvides base data types and utilities for Chia…
permissive · top 15,000 on PyPI
securesystemslibSecuresystemslib provides a cryptography…
permissive · top 5,000 on PyPI
chialisp-puzzlesLoads and provides access to standard and…
unclear · top 15,000 on PyPI
clvm-rsRust-based implementation of the CLVM virtual…
permissive · top 15,000 on PyPI
chiaposPython bindings for Chia's proof-of-space…
permissive · top 15,000 on PyPI
clvm-tools-rsCompiles and executes Chialisp programs to CLVM…
permissive · top 15,000 on PyPI
PyKCS11PyKCS11 provides a Python wrapper around the…
copyleft · top 15,000 on PyPI