Omega OmegaSeedphrase · Loading
DE v1.3.1
Offline · No upload · Client-side

24 slots. 4 tiles.
96 characters of safety.

The OmegaSeedphrase is a metal plate for storing your seed phrase permanently. This page shows you step by step how to load it — either as a Base24 code following the OMDP39 standard, or with classic BIP39 word indices.

Preview · Front

Slots 01–12
01 — Basics

What you have in front of you

The OmegaSeedphrase is a three-part stack: a stainless steel body with channels milled into both faces, two titanium frames as lids, and loose titanium tiles each engraved with a single character. Every channel is 26.8 mm long — exactly four tiles of 6.7 mm.

1 Body

Stainless steel, blank 80 × 62 × 8 mm. Twelve channels on each face, 26.8 mm of usable length and 4.2 mm deep. Held by 4 × M2 × 0.4 in the corners plus one central screw.

Channel depth 4.2 mm → 0.5 mm tile + 1 mm frame

2 Frames

Titanium, 1 mm. The upper frame carries the engraved slot numbers 1–12, the lower frame the numbers 13–24. At 25 × 5.85 mm the window is deliberately smaller than a tile — which is why the tiles cannot fall out.

3 Tiles

Titanium, 7.8 × 6.7 × 0.5 mm, R1.2 corners, engraved on one side. A full set for one seed needs 96 tiles.

Orientation. Always go by the engraved slot numbers in the frame, never by how the plate sits in your hand. When you flip it to load the back, slot 13 does not end up where slot 1 was. Read the number, then place the tile.
02 — Encoding

Two ways to get 24 words down to 4 characters each

A · OMDP39 — Base24 / tetravigesimal

The authoritative source for this standard is the publication at www.omdp39.io. An OMDP39 share consists of 33 BIP39 words and converts losslessly into a 96-character Base24 string. 96 = 24 slots × 4 tiles — the code fits a plate exactly.

Character set of the tiles (24 characters):

Not included: I, L, O — on metal they are easily confused with 1, 1 and 0. The R is marked in amber because it denotes the same character as Q (see below). Each character carries log₂(24) ≈ 4.585 bits → 96 characters ≈ 440 bits.

B · BIP39 — word index, 4 digits

The classic route: 24 BIP39 words. Instead of the word you store its position in the BIP39 word list (1–2048), zero-padded to four digits. That way you only need digit tiles.

WordIndexSlot content
abandon10001
legal10201020
zoo20482048

The tool also supports the four-letter short form (BIP39 words are unique in their first four letters) — but that needs the full Latin alphabet, including I, L, O and a real R. The tile set does not contain those.

R and Q are the same character. OMDP39 writes an R in the 24th position of the alphabet (0123456789ABCDEFGHJKMNPR), the tiles carry a Q there (0123456789ABCDEFGHJKMNPQ). Both stand for the same value 23 — two notations for one alphabet, not two different encodings.
R Q OMDP39 output ⟶ tile on the plate
The tool accepts both notations: paste a code containing R and it is mapped to Q for loading, with the conversion shown to you. Reading back works the other way round: a Q on the plate is an R in the OMDP39 tool.
You cannot mix the two. One plate carries exactly one encoding. Mark on the housing (engraved or stamped) which method you used — otherwise recovery becomes guesswork.
03 — Input

Preparing your data

Security note. Everything on this page runs locally in your browser — no upload, no tracking, no storage. Even so: only enter a real seed phrase on an air-gapped machine. The demo mode is there for practice.

Calculate from 33 words

Word position 1–2048+10001001–3048 → concatenated into 132 digits → read as a number in base 2496 characters.

04 — Guide

Loading, step by step

Plate

Slots 01–12

05 — Tiles

Parts list for this seed

Sort the tiles by character before loading. It is by far the biggest time saver — and the most common source of error when skipped.

0 / 96 tiles
06 — Control

Checklist to tick off

0 / 24 checked
Printouts are plaintext copies of your seed. Local printer only, never over a network or the cloud — and destroy them after checking.
SlotSourceCharacters
SlotSourceCharacters
07 — Offline

Using it air-gapped

For real seed phrases this tool belongs on a computer with no network connection. The offline version is a single HTML file that brings everything with it — fonts, word list, program code. It loads nothing and works in flight mode exactly as it does online.

1 Download and verify

Download the file on a computer you trust and compare the checksum before transferring it to the air-gapped machine.

Checksum (SHA-256):

5b198e2cf7d8b59c4c0867327d805627ddd84bb99649e7365c1f4f2f6253666a

Verify with sha256sum omegaseedphrase-offline-en.html (Linux), shasum -a 256 … (macOS) or certutil -hashfile … SHA256 (Windows).

2 Open it on the air-gapped machine

  1. Transfer the file on a USB stick, compare the checksum again there.
  2. Disconnect the network: Wi-Fi off, cable out, Bluetooth off.
  3. Open the file in a browser with a double click — no server is needed.
  4. Afterwards: close the browser, clear history and temporary files; better still, use a system that stores nothing permanently anyway.
A computer that has ever been online is not an air-gapped computer. If you are serious about it, boot a fresh live system with no disk access.

3 Verify the signature

The checksum above sits on the same page as the file above it. Whoever takes over this server changes both — and the comparison still passes. That is why every release is additionally signed, with keys that are not created on this server.

Two schemes over the same files:

  • Ed25519.minisig, verifiable with minisign
  • ML-DSA-65 (FIPS 204, post-quantum) — .mldsa, verifiable with OpenSSL 3.5 or newer

Ed25519 is fast and widely verifiable today. ML-DSA still holds once Ed25519 no longer withstands a quantum computer — and a seed phrase backup is meant to last decades. A forgery would have to pass both.

minisign -Vm SHA256SUMS.txt -p omegaseed.pub openssl pkeyutl -verify -rawin -in SHA256SUMS.txt \ -pubin -inkey omegaseed-mldsa.pub -sigfile SHA256SUMS.txt.mldsa sha256sum -c SHA256SUMS.txt

The signatures in plain text

So you can see what you are checking against without downloading anything first, the values are printed here. They belong to the offline file of version 1.2.0 — unchanged since then, and so are its signatures.

omegaseedphrase-offline-v1.2.0.html · German

SHA-256 of the file 67bfafd9266143d084e7dc329585604abef974b87ad60cbf78c8a7415611f812 Ed25519 · contents of omegaseedphrase-offline-v1.2.0.html.minisig untrusted comment: Omega Secure - OmegaSeedphrase 1.2.0 RUT6P3576aEuE5ibnh1F+rdI0vTJGhIQF5WFH+6uOSUKxll7CYUa4OVTM4/dJTU7+dYLqXeTFIov3qtKaX90xBRbFhngUEwvYgE= trusted comment: OmegaSeedphrase 1.2.0 - Omega Secure, D & M Solution Dynamics GmbH iekah8FAKbJSQwvvPmeou7jiH/0AnCfkpXxF2zgKJsXJ9/BINs19OVSg10DUDnYAKQ7JVCHH8qF41Ao1D205Bg== ML-DSA-65 · omegaseedphrase-offline-v1.2.0.html.mldsa (3309 bytes) — SHA-256 of the signature file 24014f63d3a12e415450338a0ad909a2800e4fa375597aa7970a814c83a4bbf7

omegaseedphrase-offline-en-v1.2.0.html · English

SHA-256 of the file 5b198e2cf7d8b59c4c0867327d805627ddd84bb99649e7365c1f4f2f6253666a Ed25519 · contents of omegaseedphrase-offline-en-v1.2.0.html.minisig untrusted comment: Omega Secure - OmegaSeedphrase 1.2.0 RUT6P3576aEuE41KjBjagAK7GJcxgVnJu2vB0SfTMfjZZUeG+EesOZFrV5+nifyGCxKitRh1P2XhWgoTav6OULM9vkvFMGOKfA0= trusted comment: OmegaSeedphrase 1.2.0 - Omega Secure, D & M Solution Dynamics GmbH YG9ijPLD7M8C1Qad/gC9NFWQtl9OXdDqRGM4trvhxsmgI6KLul4JvKCwYmw6vLDSlIx7Q/rvGYCRARFXgRGbAw== ML-DSA-65 · omegaseedphrase-offline-en-v1.2.0.html.mldsa (3309 bytes) — SHA-256 of the signature file e6919c9c2f544195c841ac76592d61bd60807244b8f9a0ba376b56b063ed7afc

The public keys

untrusted comment: minisign public key 132EA1E97B7E3FFA RWT6P3576aEuE1ra298mwiDlorcDw2QrdFHF/hQ7oSrgOCnSyT1zXzxe SHA-256 of the file omegaseed.pub dbde36414b46429727340945a919d6243ade46ec7c7110a2de0d4470d4a0102e SHA-256 of the file omegaseed-mldsa.pub 54a23f74582d4d2bbe02fd31c82ed3cb3e3627e024e456d9bb2d991b2f610234

The ML-DSA key was replaced on 09.09.2026 because its password was no longer available, and the version 1.2.0 signatures were re-created with the new key. The files themselves were left untouched — provable from the Ed25519 signatures above, which come from the original publication and were not changed. The previous public key is kept under keys/retired/ in the project repository.

Get the key from two sources and compare them. Once from this website, once from the key repository. A key that only sits where the file sits secures nothing — which is exactly why the two are published separately.