Skip to main content

Recode Stamper

A small Python utility that encodes UTF-8 text into a 12- or 24-word mnemonic (RECODE) and decodes it back.

Install from PyPI

pip install recode-stamper

Quick start

After installation, use the CLI entry point:

recode --encode "MyPassword123!"
recode --decode "artist scavenge intimate airdrop humdrum curfew hexagon candy comedy bunion brevity aardvark"

Subcommands also work:

recode encode "MyPassword123!"
recode decode "artist scavenge intimate airdrop humdrum curfew hexagon candy comedy bunion brevity aardvark"

For interactive use, the CLI can also prompt for text securely without echoing it in the terminal:

recode --encode
recode encode

This is useful for avoiding accidental exposure in shell history or terminal logs.

Show help:

recode --help

If you are running directly from the repository checkout instead of the installed package:

python recode.py --encode "MyPassword123!"
python recode.py --decode "artist scavenge intimate airdrop humdrum curfew hexagon candy comedy bunion brevity aardvark"

How the format works

The RECODE format uses a fixed 4096-word list.

  • Each word is mapped to a 12-bit value
  • 2^12 = 4096 unique values
  • A word index is therefore a number from 0 to 4095

The format automatically selects between 12 and 24 words:

  • up to 16 bytes of data -> 12 words
  • 17 to 32 bytes of data -> 24 words
  • more than 32 bytes -> rejected

This keeps the output compact while preserving enough space for metadata and a checksum.

You can also force the format explicitly:

recode --encode "MyPassword123!" --plates 12
recode --encode "MyPassword123!" --plates 24

Why UTF-8

The encoder accepts UTF-8 text and converts it to bytes before packing the bit stream. This means it works for regular ASCII strings as well as non-ASCII text, while preserving deterministic behavior and a fixed wordlist layout.

Wordlist source

The file wordlist4096.txt is based on the public wordlist from:

https://raw.githubusercontent.com/kklash/wordlist4096/main/wordlist4096.txt

Also check the 12-bit representation of each of the 4,096 words.

License

This project is licensed under the MIT License. See LICENSE for the full text.

The included wordlist is derived from the upstream source referenced above. Please check the original repository and license terms for the wordlist itself before using it in production or redistribution.

This repository does not claim to replace or relicense the upstream wordlist; it only references the source used for the local copy included here.

Metadata

Release files for recode-stamper 0.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for recode-stamper 0.1.9
File Size Uploaded
recode_stamper-0.1.9.tar.gz 26.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for recode-stamper 0.1.9
File Interpreter ABI Platform
recode_stamper-0.1.9-py3-none-any.whl Python 3 none any Details

Total release size: 50.7 kB

Release files / recode_stamper-0.1.9.tar.gz

Download URL recode_stamper-0.1.9.tar.gz
Size 26.1 kB
Tags Source
SHA-256 checksum
How to use checksums
288266a519cba3c781c635d24700a9815bbe9cb43ac7dc9a8e5c94b9edd7c35f
BLAKE2b-256 checksum
How to use checksums
bf0d754f7f97dd58c7d278773644b6a766dbdd775b31908057dbda83826eacb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / recode_stamper-0.1.9-py3-none-any.whl

Download URL recode_stamper-0.1.9-py3-none-any.whl
Size 24.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6ae92e256c56827e7578ef8a4414af34ab8fb949aca3d6b0d23104e3f49749b
BLAKE2b-256 checksum
How to use checksums
566b3b90c29e0914f6a9a45c8e89b291f39ec0cd41236a373b2c17a305f6b6e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page