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.
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.
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).
pip install qweb3The 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 coresAny 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.)
from qweb3 import Qweb3
q = Qweb3("https://rpc.quantova.org")
acct = q.accounts.import_mnemonic("test test … junk") # → same Q1… as qweb3.js/rs
print(q.get_balance(acct.address))Apache-2.0 © Quantova