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.1.tar.gz (35.1 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.1-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

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

Hashes for qweb3-1.1.1.tar.gz
Algorithm Hash digest
SHA256 3113f6ba0197993c2d5618512b2005d6d0f5a5cafd80a34c58190eb17ba897e7
MD5 cd696453d03126e59f6017414f32b34d
BLAKE2b-256 7c93cd3d84a364b9459bb69ea85fe48ac1a8cd9d9dd0dc70f89ae6ed2ef70a78

See more details on using hashes here.

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

Hashes for qweb3-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5d29774354e5349e053c84b20786eca7b8764b3eb62d6bf4d23acaae5b574089
MD5 0653630e30abecb490b92f6e170bc6ba
BLAKE2b-256 781ce1295a9e6e32d7643b1110c5b8e01f957e279312173b54dade70fa234e23

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