Skip to main content

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-encoded Q1....
  • 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

qweb3-1.1.2.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qweb3-1.1.2-py3-none-any.whl (36.8 kB view details)

Uploaded Python 3

File details

Details for the file qweb3-1.1.2.tar.gz.

File metadata

  • Download URL: qweb3-1.1.2.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for qweb3-1.1.2.tar.gz
Algorithm Hash digest
SHA256 320e39b3ed901c517b0c85cf4e3a4c4a8288577644ea0a7eec4bf5bb447b4875
MD5 f5e33a8ac37aaf47182843fa4e0cb158
BLAKE2b-256 3d0966d03344641ec7d3b6e924e7939c0a2db1bd4a7cf990ead6d54711840b8e

See more details on using hashes here.

File details

Details for the file qweb3-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: qweb3-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 36.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for qweb3-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5df80f67553b0cd13ebd9aeccc0fc0bd1d2eadf7b0dc7de1d67ee8e9d2c9871f
MD5 de385ed5bd48072932441698a6b44803
BLAKE2b-256 7771f5ce8df4b4c80ec48a845439521d8d7e2a2c13a7e96971ac5e613f30e956

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page