skillfed

py-sr25519-bindings

Python bindings for schnorrkel RUST crate

py-sr25519-bindings v0.2.4 496.9K downloads/30d#6,335 on PyPI9
Permissive license Active released

What it is and what it does

py-sr25519-bindings wraps the Schnorr signature algorithm from the Rust schnorrkel library, exposing sr25519 cryptographic operations to Python. It provides functions to derive key pairs from seeds, sign messages, and verify signatures—operations essential for blockchain and distributed systems that use sr25519 (notably Polkadot and Kusama). The package ships as pre-compiled wheels for multiple Python versions and platforms, avoiding the need to build Rust code locally in most cases.

The library has no runtime dependencies beyond Python itself, making it lightweight to integrate. It is intended for developers building blockchain clients, wallets, or other applications that need sr25519 signing and verification. The permissive Apache 2.0 license and active maintenance status (last release 60 days ago) make it suitable for production use, though the small repository star count suggests a specialized rather than widely-adopted tool.

Use it for:

  • Derive and manage sr25519 key pairs in Python-based Polkadot or Kusama wallet implementations.
  • Sign and verify blockchain transactions using sr25519 signatures in custom trading or automation bots.
  • Integrate Schnorr signature verification into Python services that validate messages from sr25519-based networks.
  • Build cryptographic testing or reference implementations that require sr25519 operations alongside BIP39 seed generation.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides Python bindings to the sr25519 Rust cryptographic library for Schnorr signature operations, enabling key derivation, signing, and verification in Python applications.

Yes, if you need sr25519 signatures in Python. The package is actively maintained, has no runtime dependencies, ships pre-compiled wheels for most platforms, and carries a permissive license. Install friction is medium due to compiled bindings, but pre-built wheels eliminate local compilation for standard environments. Not worth installing if you don't specifically need Schnorr signatures or are working outside blockchain/Polkadot ecosystems.

Install

py-sr25519-bindings on PyPI

pip

pip install py-sr25519-bindings

uv

uv add py-sr25519-bindings

poetry

poetry add py-sr25519-bindings

Installing py-sr25519-bindings

Before you install

Medium install friction due to compiled Rust bindings; wheels are pre-built for Python 3.7–3.14 across Linux (manylinux, musl), macOS, and Windows, reducing the need for local compilation in most environments.

License in practice

Licensed under Apache License 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.

Quickstart

pip install py-sr25519-bindings

import sr25519

message = b"test"
public_key, private_key = sr25519.pair_from_seed(seed_bytes)
signature = sr25519.sign((public_key, private_key), message)
if sr25519.verify(signature, message, public_key):
    print('Verified')

Requires a seed or key material as input; the example in the description uses bip39 for seed derivation, which is a separate dependency not included in this package.

Verify before relying

  • Whether the package is actively maintained beyond the last commit date (2026-06-15) or if the repository is in maintenance-only mode.
  • Performance characteristics and security audit status of the underlying Rust bindings relative to other sr25519 implementations.

Package facts

License not declared (permissive)
Python support supports the current Python release (>=3.7)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 60 days since the last release
Last repo commit
First released
Downloads 496,852/month — #6,335 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: py_sr25519_bindings-0.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; py_sr25519_bindings-0.2.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; py_sr25519_bindings-0.2.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; py_sr25519_bindings-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; py_sr25519_bindings-0.2.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl; py_sr25519_bindings-0.2.4-cp310-cp310-musllinux_1_2_aarch64.whl; py_sr25519_bindings-0.2.4-cp310-cp310-musllinux_1_2_armv7l.whl; py_sr25519_bindings-0.2.4-cp310-cp310-musllinux_1_2_i686.whl; py_sr25519_bindings-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl; py_sr25519_bindings-0.2.4-cp310-cp310-win_amd64.whl; py_sr25519_bindings-0.2.4-cp311-cp311-macosx_10_12_x86_64.whl; py_sr25519_bindings-0.2.4-cp311-cp311-macosx_11_0_arm64.whl; py_sr25519_bindings-0.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; py_sr25519_bindings-0.2.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; py_sr25519_bindings-0.2.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; py_sr25519_bindings-0.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; py_sr25519_bindings-0.2.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl; py_sr25519_bindings-0.2.4-cp311-cp311-musllinux_1_2_aarch64.whl; py_sr25519_bindings-0.2.4-cp311-cp311-musllinux_1_2_armv7l.whl; py_sr25519_bindings-0.2.4-cp311-cp311-musllinux_1_2_i686.whl

Intended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

sr25519 python bindingsschnorrkel signaturesrust crypto bindingskey derivation signingpolkadot cryptography
blockchainschnorr-signaturesrust-bindings

More Cryptography packages