Skip to main content

Algorand-native post-quantum cryptography developer toolkit — Falcon-1024 accounts, M-of-N multisig, and AVM smart contract templates

Project description

algo-pqc-kit

The first complete Algorand-native post-quantum cryptography developer toolkit.

PyPI License AVM PQC


What Is This?

Algorand's AVM v12 (deployed November 2025) introduced the falcon_verify opcode — enabling on-chain Falcon-1024 post-quantum signature verification. But there was no developer toolkit to make it usable.

algo-pqc-kit fills that gap:

Layer What It Does
Puya Smart Contracts FalconVault (M-of-N PQC vault), FalconLsig (PQC account), PQCDao (PQC governance)
Python SDK FalconAccount, FalconMultisig — generate keys, derive addresses, sign, co-sign
AlgoKit Plugin algokit generate pqc-vault — scaffold a full PQC vault in one command

Quick Start

pip install algo-pqc-kit
from algo_pqc_kit import FalconAccount, FalconMultisig

# Generate a Falcon-1024 PQC account (Algorand address derived via lsig)
account = FalconAccount.generate()
print(f"PQC Address: {account.address}")
print(f"Public key:  {account.public_key.hex()[:32]}...")

# Create a 2-of-3 quantum-resistant multisig committee
members = [FalconAccount.generate() for _ in range(3)]
committee = FalconMultisig.create(
    threshold=2,
    members=[m.public_key for m in members]
)
print(f"Committee ID: {committee.address}")

# Build and sign a vault release message
message = committee.build_release_message(
    nonce=0,
    recipient="RECIPIENT_ALGORAND_ADDRESS",
    amount=1_000_000,  # microALGO
)

session = committee.start_session(message)
session.add_signature(index=0, sig=members[0].sign(message))
session.add_signature(index=2, sig=members[2].sign(message))

payload = session.finalize()
print(f"Ready for on-chain submission: {payload.is_complete()}")

Smart Contracts

Three ARC-4 contracts, all using the AVM falcon_verify opcode:

FalconVault — M-of-N Post-Quantum Treasury

cd contracts/
puyapy falcon_vault.py  # compiles to TEAL + ABI
algokit deploy          # deploys to Testnet

A treasury that releases ALGO, ASAs, or executes arbitrary Application Calls when M-of-N Falcon-1024 signatures are verified on-chain. Features dynamic membership (add/remove signers via proposals) and uses replay-protected nonces.

FalconLsig — PQC Logic Signature Account

The foundational primitive: a Logic Signature that embeds a Falcon-1024 public key and gates all spending via falcon_verify. This is how Algorand PQC accounts work.

PQCDao — Post-Quantum DAO Governance

A complete DAO where every spending proposal requires M-of-N committee members to sign with their Falcon-1024 keys. Features Voting Periods, Execution Delays (Timelocks), and explicit Yes/No voting choices. No Ed25519 anywhere in the governance flow.


Testnet Deployments

Contracts verified on Algorand Testnet — check the deployments page for live app IDs and transaction links.


AlgoKit Plugin (Coming in v0.2)

algokit generate pqc-vault

Scaffolds a complete PQC vault project: keypairs, contracts, deployment scripts — zero configuration required.


How It Works

The AVM falcon_verify Opcode

falcon_verify(data: []byte, sig: [1232]byte, pubkey: [1793]byte) → bool
  • Cost: 1700 opcodes per verification
  • AVM version: 12+ (Algorand mainnet since Nov 2025)
  • Algorithm: Falcon-1024 / FN-DSA (NIST FIPS 206, deterministic variant)

This opcode is the foundation of all algo-pqc-kit contracts.

Address Derivation

Algorand PQC accounts are Logic Signatures. The address is:

lsig_program = TEAL_v12 [ arg 0; txn TxID; pushbytes <pubkey>; falcon_verify ]
address      = base32( sha512_256("Program" || lsig_program) + checksum )

Every Falcon-1024 public key has a unique, deterministic Algorand address.


Security

  • Quantum-resistant: Falcon-1024 (NIST FN-DSA) — secure against Shor's algorithm
  • Replay protection: All vault/DAO messages include a nonce
  • No admin key: Contracts are immutable after deployment
  • Misuse-resistant SDK: Signatures verified at collection time in co-signing sessions
  • No C FFI: Pure Python SDK (wraps Algorand's deterministic Falcon implementation)

Relationship to falcon-multisig

The cryptographic engine is extracted from falcon-multisig — a production Rust library battle-tested in QuantaChain across 80,000+ Falcon-512 consensus blocks. algo-pqc-kit is the Algorand integration layer on top of that proven foundation.


License

MIT OR Apache-2.0


Links

Resource URL
PyPI https://pypi.org/project/algo-pqc-kit
crates.io (engine) https://crates.io/crates/falcon-multisig
NIST FIPS 206 https://csrc.nist.gov/pubs/fips/206/final
Algorand PQC Brief https://algorand.co/blog/technical-brief-quantum-resistant-transactions-on-algorand-with-falcon-signatures
AVM v12 opcodes https://developer.algorand.org/docs/get-details/dapps/avm/teal/opcodes/v12/

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

algo_pqc_kit-0.3.0.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

algo_pqc_kit-0.3.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file algo_pqc_kit-0.3.0.tar.gz.

File metadata

  • Download URL: algo_pqc_kit-0.3.0.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for algo_pqc_kit-0.3.0.tar.gz
Algorithm Hash digest
SHA256 cf281f6ead348f809afb512fb296d8195b70ecce4042dbdce2c7f650a8d0a8ba
MD5 2dc6c6566d1a369b382b8bdf1c1d7c83
BLAKE2b-256 5cffda840fa5d72dc1a70a56d7b013814dfd03267e8f260eddf16a00b9233a89

See more details on using hashes here.

File details

Details for the file algo_pqc_kit-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: algo_pqc_kit-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for algo_pqc_kit-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d2f87be4dd32dd23f87cb7214e26b7bd586b77a0e5d4f033cc0a48adfe6bca2
MD5 73242fb8353ec1d99bee0311526f589e
BLAKE2b-256 d5144c39b8080a32b4500094fd36a78f3bd4ea9f3643760b84a54018b2d979a7

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