MCPcopy Index your code
hub / github.com/Quantova/Qweb3.rs

github.com/Quantova/Qweb3.rs @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
86 symbols 163 edges 14 files 52 documented · 60%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

qweb3.rs

Quantova Post-Quantum Web3 Client — Rust SDK. Connect to a Quantova node, manage post-quantum accounts, sign and broadcast transactions, and interact with QVM smart contracts from Rust. The Rust counterpart of qweb3.js and qweb3.py.

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 — resistant to quantum attacks. Addresses are Bech32m Q1…; the chain speaks q_* JSON-RPC.

Cross-SDK compatibility (byte-for-byte)

Keys are derived deterministically from the mnemonic using the exact same cores as qweb3.js and the Quantova node — pure Rust, no native liboqs:

Scheme Crate Seeding
Falcon-512 fn-dsa ChaCha20Rng::from_seed(seed)
Dilithium2 fips204 ml_dsa_44::keygen_from_seed(seed)
SPHINCS+ fips205 blake2_256(SCALE(seed,label))[..16] components

The mnemonic → 32-byte seed step is the substrate mini-secret (PBKDF2-HMAC-SHA512(BIP-39 entropy, "mnemonic", 2048)[..32]). The result: the same phrase yields the same Q1… address and valid signatures in qweb3.js, qweb3.py and qweb3.rs. Verified against qweb3.js reference vectors in the test suite, e.g. "test test … junk" → Falcon Q1GREP2A5A6DX9UFFPWW72PCZ4X429LMQMV6ZW35.

Add to your project

[dependencies]
qweb3 = "1.1"

Quick start

use qweb3::wallet::{Wallet, Scheme};

// Generate a new account (returns the wallet + its 24-word mnemonic).
let (wallet, mnemonic) = Wallet::create(Scheme::Falcon)?;
println!("address: {}", wallet.address());        // Q1…
println!("mnemonic: {mnemonic}");

// Or restore from a mnemonic — same address as qweb3.js / qweb3.py.
let wallet = Wallet::import_mnemonic(&mnemonic, Scheme::Falcon)?;

// Sign and verify (post-quantum).
let sig = wallet.sign(b"hello quantova")?;
assert!(wallet.verify(b"hello quantova", &sig));
# Ok::<(), qweb3::error::Error>(())

Post-quantum keygen and signing are always available (pure Rust, no system libraries). Wallet, Scheme, address derivation, ABI, QNS, fees and RPC need no extra features.

Resources

  • 🌐 https://quantova.org · 🔎 https://qvmscan.io · 💻 https://github.com/Quantova/qweb3.rs

License

BUSL-1.1 - (c) 2026 Quantova Inc. See LICENSE.

Core symbols most depended-on inside this repo

call
called by 9
src/rpc.rs
address_from_public_key
called by 6
src/address.rs
keccak256
called by 4
src/abi.rs
decode
called by 4
src/bech32m.rs
rpc
called by 3
src/lib.rs
parse_u64_hex
called by 3
src/rpc.rs
sphincs_component
called by 3
src/wallet.rs
verify
called by 3
src/wallet.rs

Shape

Function 46
Method 32
Class 6
Enum 2

Languages

Rust100%

Modules by API surface

src/wallet.rs27 symbols
src/rpc.rs17 symbols
src/address.rs10 symbols
src/bech32m.rs7 symbols
src/abi.rs7 symbols
src/qns.rs5 symbols
src/lib.rs5 symbols
src/fees.rs2 symbols
src/error.rs1 symbols
examples/transfer.rs1 symbols
examples/qns_resolve.rs1 symbols
examples/connect.rs1 symbols

For agents

$ claude mcp add Qweb3.rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact