Download Qanum

qanum-core v0.9.0 (testnet) is distributed as source code, built by you with Cargo. There are no pre-built binaries.

Source code access. The official repository is private during the pre-release phase, so the source code cannot be downloaded from this site yet. Public access will open shortly. To request access now, write to partnerships@qanum.org.

Release v0.9.0

Released on 17 October 2026. It is the first public release and runs the public testnet; no mainnet genesis exists yet. Every release publishes:

The files are published with the release in the source repository and become downloadable when it opens to the public. Until then, write to partnerships@qanum.org to request access.

Requirements

64-bit only. Qanum targets 64-bit platforms (x86_64 and aarch64). 32-bit platforms are not supported: consensus values and amounts are u64/usize, and some edge cases are only safe on 64-bit.

Rust toolchain — install it with rustup. The compiler is pinned in rust-toolchain.toml (currently 1.98.1); inside the source tree rustup selects and installs it automatically.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
rustc --version

System packages (Ubuntu/Debian), needed to build liboqs from source:

sudo apt update
sudo apt install build-essential clang libclang-dev cmake pkg-config \
                 libc6-dev linux-libc-dev libssl-dev

Build from source

From the unpacked source tarball (or a clone of the repository once it is public):

# Full node with real post-quantum signature verification. This is the only
# kind of build: qanum-core does not compile without liboqs.
cargo build --release --features crypto-oqs

# Install qanumd and qanum-cli into ~/.cargo/bin
cargo install --path . --features crypto-oqs

Signatures are verified with the NIST-standardized algorithms through liboqs on every network. At startup the node runs a known-answer self-test of every signature suite and refuses to start if it fails; no build or flag skips signature checks.

Run a testnet node

./target/release/qanumd \
  -chain=testnet \
  --datadir="$HOME/.qanum/testnet" \
  --rpcuser=user --rpcpassword=pass \
  --strict-full --verifier oqs \
  -gen=1 --mining-interval-ms=500

Connect a second node (follower):

./target/release/qanumd \
  -chain=testnet \
  --datadir="$HOME/.qanum/testnet-b" \
  --rpcuser=user --rpcpassword=pass \
  --strict-full --verifier oqs \
  -addnode=<ip-of-node-a>:18445

Interact through the CLI:

./target/release/qanum-cli --network=testnet --addr=127.0.0.1:18338 \
  --rpcuser=user --rpcpassword=pass getblockcount

./target/release/qanum-cli --network=testnet --addr=127.0.0.1:18338 \
  --rpcuser=user --rpcpassword=pass getnewaddress

Run as a systemd service

The source tree ships a hardened unit at contrib/systemd/qanumd.service:

# 1) Create the service user
sudo useradd --system --create-home --shell /usr/sbin/nologin qanum

# 2) Install the binaries for that user
sudo -u qanum cargo install --path /path/to/qanum --features crypto-oqs

# 3) Install and enable the unit
sudo cp contrib/systemd/qanumd.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now qanumd

# 4) Follow the logs
journalctl -u qanumd -f

The unit runs qanumd as an isolated qanum user with security hardening (ProtectSystem=strict, NoNewPrivileges, PrivateTmp, restrictive UMask), writes only to /home/qanum/.qanum, restarts on failure and logs to the journal. systemctl stop triggers an orderly shutdown that flushes the chainstate.

Configuration

qanumd loads ~/.qanum/qanum.conf automatically (every key is optional; command-line flags take precedence). A commented template, qanum.conf, ships in the source tree. It covers network selection, the P2P port, DNS seeds, RPC, sync mode, optional mining, static peers, the transaction and address indexes, and pruning. Every option is described in the configuration reference.

Networks and ports

NetworkP2P (Noise, post-quantum)RPC (loopback)Address prefixStatus
mainnet84458338qnno genesis yet
testnet1844518338tqnlive
regtest2844528338rqndevelopment

Verify a release

SHA512SUMS.qsig carries two post-quantum signatures, ML-DSA-87 (FIPS 204) and SLH-DSA-SHAKE-256s (FIPS 205). Both must verify: they rest on unrelated mathematics, so breaking one scheme is not enough to forge a release. The PGP signature is classical (not quantum-resistant) and is provided for compatibility only; the post-quantum signatures are authoritative.

With a qanum-cli you already trust (works offline, no node needed):

qanum-cli verifyrelease <directory-with-the-downloaded-files>

First download, with no trusted qanum-cli yet: compare the release key ids below with the ones in docs/SECURITY.md, check the PGP signature and the checksums, then build the release and run verifyrelease on the same files:

gpg --verify SHA512SUMS.asc SHA512SUMS
sha512sum -c SHA512SUMS

Release signing keys

SuiteKey idStatus
ML-DSA-87277c02387e4908e1bdcd30ff2a4428e0343c5639f2a5b4ff31df9038e451326bactive from v0.9.0
SLH-DSA-SHAKE-256s17c676d4b25569fdb9898ac2f9e5c1f9fe6b6967bee99131b485f16b8e0b0aa5active from v0.9.0

The keys were generated offline on 11 October 2026 and their secret halves never leave an offline machine. PGP key (Qanum Security, security@qanum.org), fingerprint 8013 E1BF F91C A30E E6A5 F273 01D9 6226 80BA FCA9, on keys.openpgp.org.