PQC Foundation English wordlist standard with 4096 words and SHA3-512 integrity hash.
Project description
PQC Wordlist
Official Python implementation of the PQC Foundation English Wordlist Standard.
The PQC Wordlist Standard defines a deterministic 4096-word English wordlist designed for use in the PQC ecosystem, including mnemonic generation, seed derivation, wallets, and future post-quantum infrastructure.
Features
- 4096 English words
- 12-bit word indices
- Zero-based indexing (0-4095)
- Alphabetically sorted
- Duplicate-free validation
- SHA3-512 integrity hash
- Designed for 33-word PQC mnemonics
- ML-DSA-65 ecosystem compatible
- Argon2id ecosystem compatible
Standard Specification
| Parameter | Value |
|---|---|
| Word Count | 4096 |
| Bits Per Word | 12 |
| Indexing | Zero-based |
| Index Range | 0-4095 |
| Mnemonic Entropy | 384 bits |
| Mnemonic Checksum | 12 bits |
| Total Mnemonic Bits | 396 bits |
| Mnemonic Length | 33 words |
| Primary Hash | SHA3-512 |
| Signature Standard | ML-DSA-65 |
| KDF Standard | Argon2id |
Installation
pip install pqc-wordlist
Quick Start
from pqc_wordlist import words
print(len(words()))
Output:
4096
Usage
Load the complete wordlist
from pqc_wordlist import words
all_words = words()
print(len(all_words))
Get a word by index
from pqc_wordlist import word_at
print(word_at(0))
print(word_at(4095))
Get the index of a word
from pqc_wordlist import index_of
print(index_of("example"))
Check whether a word exists
from pqc_wordlist import contains
print(contains("example"))
Returns:
True
or
False
Validate the embedded wordlist
from pqc_wordlist import validate_wordlist
print(validate_wordlist())
Output:
True
Validation checks:
- Exactly 4096 words
- No duplicate entries
- Alphabetically sorted
- Lowercase only
- Alphabetic characters only
Calculate SHA3-512
from pqc_wordlist import sha3_512
print(sha3_512())
Returns:
128-character SHA3-512 hex string
Get metadata
from pqc_wordlist import metadata
print(metadata())
Example:
{
"name": "PQC English Wordlist Standard",
"version": "1.0.0",
"words": 4096,
"bits_per_word": 12,
"primary_hash": "SHA3-512",
"signature_standard": "ML-DSA-65",
"kdf_standard": "Argon2id"
}
API Reference
words()
Returns the complete wordlist.
words()
Type:
tuple[str, ...]
word_at(index)
Returns the word at the specified index.
word_at(index)
Type:
str
Valid range:
0-4095
index_of(word)
Returns the index of a word.
index_of(word)
Type:
int
contains(word)
Checks whether a word exists.
contains(word)
Type:
bool
validate_wordlist()
Validates the embedded PQC wordlist.
validate_wordlist()
Type:
bool
sha3_512()
Calculates the canonical SHA3-512 hash of the wordlist.
sha3_512()
Type:
str
metadata()
Returns metadata describing the PQC Wordlist Standard.
metadata()
Type:
dict
Example
from pqc_wordlist import (
words,
word_at,
index_of,
contains,
validate_wordlist,
sha3_512,
)
print(len(words()))
print(word_at(0))
print(index_of(word_at(0)))
print(contains(word_at(0)))
print(validate_wordlist())
print(sha3_512())
Roadmap
Future PQC Foundation standards built on top of this package:
- PQC Mnemonic Standard
- PQC Seed Standard
- PQC Address Standard
- PQC Wallet Standard
License
MIT License
Copyright (c) 2026 PQC Foundation
Project Structure
PQC Foundation Repository
https://github.com/rijol95-web3/pqc-foundation
Wordlist Standard
https://github.com/rijol95-web3/pqc-foundation/tree/main/pqc-wordlist
Python SDK
https://github.com/rijol95-web3/pqc-foundation/tree/main/python-pqc-wordlist
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pqc_wordlist-1.0.1.tar.gz.
File metadata
- Download URL: pqc_wordlist-1.0.1.tar.gz
- Upload date:
- Size: 95.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1672c8d54b9d87369698d5a509699ce8ff3c68284dbb164bb389eddea5fcf5ee
|
|
| MD5 |
a341f903e6eed03e81f6d093b8cfe3c9
|
|
| BLAKE2b-256 |
da48c63ad11ddab82b31d6405656f2d79cb48b123322d90f468863da1fafc918
|
File details
Details for the file pqc_wordlist-1.0.1-py3-none-any.whl.
File metadata
- Download URL: pqc_wordlist-1.0.1-py3-none-any.whl
- Upload date:
- Size: 122.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56fd4c890d625ba05152ce38ef021293b4125b6de81ea25e092d69d1a656b84a
|
|
| MD5 |
618a17386c377e9ba385fce86ddd1eba
|
|
| BLAKE2b-256 |
e9143b83dd38e66b8ac0f6a18b60348973e3373a4384a7ee24abac933578fb90
|