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.3.tar.gz (35.5 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.3-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: qweb3-1.1.3.tar.gz
  • Upload date:
  • Size: 35.5 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.3.tar.gz
Algorithm Hash digest
SHA256 f70bc292d896f1c518e9535dd647530ffa49a071a475b57c403f428eb3a67ea6
MD5 666b7e39a5627828b13a9859e5b61d86
BLAKE2b-256 9b6deb9788af30a67daaf6ee958a2f7a426adcdc81ebeea0e0e530a4cda4f088

See more details on using hashes here.

File details

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

File metadata

  • Download URL: qweb3-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 37.1 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 940136b273af38c73be701fb5fc68dc3ceb818a564e0679e90121bdd58b8cab1
MD5 2a0e97d5e6bca4d6c11e1859a924ba64
BLAKE2b-256 a9166835e6722469de32bbb064028946188d62b464334a7a59919a10bfbac0b8

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