I Built a PQC Native L1 Blockchain from Scratch in 9 Months
Source: Dev.to
I’ve spent the last nine months deep in the weeds of Rust, distributed systems, and FIPS‑standardized cryptography. The result is Dytallix: the first solo‑built, PQC‑native Layer 1 blockchain.
There is no ECDSA, no hybrid mode, and no legacy accounts. Dytallix was built from the ground up with a “zero legacy mandate,” meaning every address, every signature, and every handshake is quantum‑secure from inception.
Why PQC‑Native?
Adversaries are currently capturing encrypted traffic to decrypt it once a cryptographically relevant quantum computer (CRQC) exists—the “Harvest Now, Decrypt Later” threat. Most blockchains are accumulating massive cryptographic debt by relying on ECC. Dytallix is built so you never have to migrate.
The Stack
- Signatures: ML‑DSA‑65 (FIPS 204) for all transactions and validator votes.
- Transport: ML‑KEM‑768 (FIPS 203) for all P2P handshakes.
- Encoding: Bech32m (BIP350) for canonical D‑addresses.
- Language: Pure Rust for performance and memory safety.
Getting Started
You’ll need the Rust toolchain installed. If you plan to build smart contracts, add the WASM target:
rustup target add wasm32-unknown-unknown
1. First keypair (under 60 seconds)
Generate your first ML‑DSA‑65 keypair and print a D‑Addr:
git clone https://github.com/DytallixHQ/dytallix-sdk
cd dytallix-sdk
cargo run -p dytallix-sdk --example first-keypair
2. First transaction on testnet (2‑3 minutes)
Create a funded sender wallet, a separate recipient wallet, then submit and verify a real transaction:
cargo install --git https://github.com/DytallixHQ/dytallix-sdk.git dytallix-cli --bin dytallix
dytallix init
dytallix wallet create --name recipient
dytallix wallet list
dytallix wallet switch default
dytallix send 100
dytallix wallet switch recipient
dytallix balance
Use a different recipient address than the one printed by dytallix init (do not self‑send).
3. First contract build (under 15 minutes)
Build a minimal WASM contract. The default public gateway currently does not accept POST /contracts/deploy, so actual deploys require a direct node endpoint or a local node.
rustup target add wasm32-unknown-unknown
cargo build --manifest-path examples/contracts/minimal_contract/Cargo.toml \
--target wasm32-unknown-unknown --release
Explore the Ecosystem
The project is broken down into specialized repositories:
- dytallix-pqc – Standalone primitives for ML‑DSA, ML‑KEM, and SLH‑DSA.
- dytallix-node – Source for the public testnet nodes and RPC.
- dytallix-contracts – On‑chain WASM contracts for the dual‑token model (DGT and DRT).
Y2Q is coming faster than most expect. ECC will fall to Shor’s algorithm once quantum systems reach sufficient scale. This is your chance to get in early on the development of a true post‑quantum L1 blockchain and make meaningful contributions to the future of this space.
If you’re a Rust developer, cryptographer, or blockchain builder interested in post‑quantum cryptography, try the testnet and get involved.