Quantova Post-Quantum Web3 Client SDK (Python)
Project description
Qweb3.py
Quantova Post-Quantum Web3 Client — Python SDK. Connect to a Quantova node, manage post-quantum accounts, sign and broadcast transactions, and interact with QVM smart contracts from Python. The Python counterpart of qweb3.js and qweb3.rs.
Quantum security
Quantova is a post-quantum Layer-1. Accounts use NIST post-quantum signatures
(Falcon-512, SPHINCS+ SHAKE-128s, CRYSTALS-Dilithium2/ML-DSA-44) with
SHA3-256 — no ECDSA/secp256k1 — so they resist quantum attacks. Addresses are
Bech32m Q1...; the chain speaks q_* JSON-RPC.
Cross-SDK compatibility (byte-for-byte)
Accounts derive identically to qweb3.js and qweb3.rs, so the same mnemonic yields the
same Q1... address in all three SDKs:
- mnemonic -> 32-byte seed = substrate mini-secret
PBKDF2-HMAC-SHA512(BIP-39 entropy, "mnemonic", 2048)[:32]— verified equal to qweb3.js ("test test ... junk"->4ca479f5...3b4709c). - address =
SHA3-256(public_key)[:20]with byte 0 =0x40, Bech32m-encodedQ1.... - keypairs use the same post-quantum cores as the node and qweb3.js: Falcon-512
(
ChaCha20Rng(seed)), Dilithium2/ML-DSA-44 (keygen_from_seed), SPHINCS+ SHAKE-128s (blake2_256-derived components).
Install
pip install qweb3
Post-quantum backend
The pure-Python package ships the full client (accounts, addresses, ABI, QNS, RPC,
fees, contracts) and the mnemonic/address derivation above. Key generation and
signing require a post-quantum backend exposing the falcon-wasm-style interface
(<scheme>_pair_from_seed / _sign / _verify). Register it once at startup:
import qweb3.crypto_backend as cb
cb.set_backend(my_pq_backend) # adapter over the Quantova PQ cores
Any backend that produces the same Falcon-512 / ML-DSA-44 / SLH-DSA-SHAKE-128s keys
from a seed as qweb3.js keeps addresses and signatures cross-compatible. (The
recommended adapter wraps the same fn-dsa / fips204 / fips205 cores used by
qweb3.rs, so derivation stays byte-identical.)
Quick start
from qweb3 import QWeb3
q = QWeb3("https://rpc.quantova.org")
acct = q.wallet.import_mnemonic("test test ... junk") # -> same Q1... as qweb3.js/rs
print(q.rpc.get_balance(acct.address))
Resources
License
BUSL-1.1 - (c) 2026 Quantova Inc. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qweb3-1.1.1.tar.gz.
File metadata
- Download URL: qweb3-1.1.1.tar.gz
- Upload date:
- Size: 35.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3113f6ba0197993c2d5618512b2005d6d0f5a5cafd80a34c58190eb17ba897e7
|
|
| MD5 |
cd696453d03126e59f6017414f32b34d
|
|
| BLAKE2b-256 |
7c93cd3d84a364b9459bb69ea85fe48ac1a8cd9d9dd0dc70f89ae6ed2ef70a78
|
File details
Details for the file qweb3-1.1.1-py3-none-any.whl.
File metadata
- Download URL: qweb3-1.1.1-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d29774354e5349e053c84b20786eca7b8764b3eb62d6bf4d23acaae5b574089
|
|
| MD5 |
0653630e30abecb490b92f6e170bc6ba
|
|
| BLAKE2b-256 |
781ce1295a9e6e32d7643b1110c5b8e01f957e279312173b54dade70fa234e23
|