Alea.

A 2014-style instant wallet — the frictionless idea, rebuilt on entropy you can trust.

checking…
Read me first. This is a learning tool and it is unaudited. It defaults to testnet (free, worthless coins) on purpose. For anything real: download this file, disconnect from the internet, and open it offline — and get the code independently reviewed before trusting it with money you would miss.
⚠ Mainnet selected — this creates a wallet for real bitcoin. Generate offline, and do not fund it beyond what you can afford to lose until this code has been independently reviewed.

256 bits are drawn from your operating system's cryptographic RNG (crypto.getRandomValues) the moment you press Generate. This is the real security. Everything below is optional defence-in-depth, folded in by hashing — it can only help, never hurt.

Wiggle (or drag on touch) inside the box to stir in extra entropy.

— wiggle here —

Type physical dice rolls (e.g. 4 2 6 1 3 5 …). Verifiable, offline, unbackdoorable.

A secret applied on top of the 24 words. If set, you need both to restore. Lose it or mistype it and the funds are gone — there is no recovery. Type it twice.

Passphrases do not match.

Write these down on paper, in order. Anyone with these words (plus the passphrase, if set) controls the funds. Never photograph them, cloud-sync them, or type them into any website.

From your paper copy (not the screen), type these two words to confirm you recorded them correctly.

word #—

word #—

Not a wallet.dat — that is Bitcoin Core's internal Berkeley DB format, which Core itself is retiring, and a fake one would be a dangerous illusion of a backup. These are the modern equivalents, and they actually restore.

Encrypted backup (.json) — your 24 words, encrypted with a password of your choosing (scrypt N=2^16 + XChaCha20-Poly1305). Your BIP-39 passphrase is deliberately not stored in it.

File passwords do not match.

Watch-only descriptor (.txt) — import into Bitcoin Core or Sparrow to watch the balance. Contains no private key, so it is safe to keep on a normal machine.

Test this now, while you still have the words on screen — an untested backup is not a backup.

Built on audited primitives: @scure/bip39, @scure/bip32, @noble/hashes, @noble/curves, @scure/base. Derivation self-verified against the official BIP-84 test vector on load. No network calls, no storage, no URL secrets — works fully offline.