DEV Community

Rick Glenn
Rick Glenn

Posted on

I Built a PQC Native L1 Blockchain from Scratch in 9 Months

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 here. No hybrid mode. 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

2. First transaction on testnet: 2-3 minutes

Create a funded sender wallet, create 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 <recipient-daddr> 100
dytallix wallet switch recipient
dytallix balance
Enter fullscreen mode Exit fullscreen mode

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 now. 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
Enter fullscreen mode Exit fullscreen mode

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: The 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, I’d love for you to try the testnet and get involved.

Top comments (0)