Skip to content

Releases: BitcoinQnA/seedtool

2.3.0

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 19 May 15:11

v2.3.0 β€” Standalone tools, education layer, signed release rotation

This release more than doubles the toolkit. The seed-related core stays the same, but the page now bundles a full set of standalone Bitcoin tools that don't need a seed loaded: PSBT inspection, descriptor / miniscript analysis, Lightning invoice decoding, BIP-353 helper, signed-message verification, Silent Payments, Shamir backup, and BIP-329 wallet labels. The whole UI has been re-skinned with a purple "education layer" so it's clear which parts are explanatory and which are functional. There's also a key rotation; see the bottom of these notes.


New standalone tools

Each lives on its own card under "Standalone tools (No seed required)" on the home grid.

Seed Phrase Recovery

Fix typos, fill in missing words, unscramble the order, or convert hex / binary / indexes back into a valid BIP-39 mnemonic. Address-constrained search means you only get answers that actually produce the address you remember.

06-seed-recovery

BIP-329 Wallet Labels

Decode a JSONL export of transaction notes, address tags, and other labels. Portable across any wallet that implements BIP-329 (Sparrow, Bitcoin Safe, Trezor Suite, etc.). Either paste the contents or upload a .jsonl file directly.

02-bip329-labels

Lightning Decoder

Decode Lightning invoices and offers. BOLT-11 (lnbc…) and BOLT-12 (lno… / lni… / lnr…) supported, including blinded paths. No network calls; pure local parse.

01-lightning-decoder

Miniscript Lab

Compile Bitcoin spending policies to Miniscript and Bitcoin Script. Analyse safety, enumerate every spend path with required signers + timelocks, see worst-case witness size. Also parses full output descriptors (wsh(...), tr(...), sh(wsh(...))), validates BIP-380/389 checksums, handles multipath (<0;1>/* and /** shorthand), and derives receive + change addresses from real xpubs. Spend paths render as a visual timeline so you can see at a glance which keys are active immediately vs which activate after a timelock.

04-miniscript-lab

PSBT Inspector

Paste any PSBT (base64 or hex). Breaks it down into inputs, outputs, signatures, derivation paths, fee, and what's still needed to finalise. Same content you'd see on a block explorer's PSBT view, without uploading anything.

03-psbt-inspector

BIP-353 DNS Payment Helper

Build a name@domain-style payment endpoint: assemble the bitcoin: URI and DNS TXT record to publish, or decode any URI back into its components. Three subtabs: Build (offline), Inspect (offline), Resolve (optional online lookup via Cloudflare or Google DoH).

05-bip353-build

Sign & Verify Messages

Prove you control an address by signing a message, or verify someone else's signature. Supports both BIP-137 (legacy / SegWit single-sig) and BIP-322 (modern, works for every script type including Taproot and multisig).

07-sign-verify

Silent Payments (BIP-352)

Generate a static sp1q… Silent Payment address from your seed, or decode any silent payment address into its scan + spend pubkeys. Senders derive a fresh unlinkable on-chain address per payment with no notification transaction needed.

08-silent-payments

Shamir Secret Sharing

Split your seed into m-of-n shares using SLIP-39 (Trezor / Passport Prime), SSKR (Foundation / Blockchain Commons), or Foundation Shard. Pick whichever format your other wallet uses; reconstruct from any valid threshold of shares.

09-shamir

UI and education improvements

  • Purple "education layer" across the page. Per-tool explainer panels, the Info modal popups, and the Learn walkthrough now all share a consistent violet accent so educational content visually separates from functional content.
  • "Learn more" buttons inside each tool's explainer replace the old standalone "Explained" buttons. Same destination, less clutter.
  • Demo data on every standalone tool. One click loads a known-good example (BOLT-11 spec test vector, a synthesised 2-of-3 PSBT, sample BIP-329 labels, etc.) so you can see what a tool does without having to find sample data yourself. Banner indicator stays prominent until you clear the demo.
  • Tool search on the home grid. Type any keyword (or hit / to focus, Esc to clear) and the tool list filters live.
  • Quick test seed flow. Tapping a locked card (one that needs a seed) now shows a modal offering to generate a quick random test seed or jump to the Seed Workspace. No more silent redirects.
  • Online connection banner. A clear, dismissible warning appears under the topbar whenever a network connection is detected, with explicit acknowledgement of opt-in online features (BIP-353 Resolve, BIP-47 PayNym lookup) and a Tor / hardened-browser caveat.
  • Compact SeedQR redesign. The empty-state placeholder and the loaded chip are both immediately legible. No more tiny icon in a giant dark box.
  • About page rewritten as a project meta page: how to use the tool offline, how to verify releases, where to report issues, who maintains it.

Quality and accessibility

  • Every <button> now carries an explicit type="button" (prevents accidental form submits on Enter).
  • Modals (info, QR, confirm) close on Escape.
  • Search input, emoji-only tab buttons, and previously-bare selects all have proper aria-labels.
  • Clickable spans for "show QR" and "copy address" now have role="button" + tabindex and respond to keyboard activation.
  • Message-signing input handlers debounced (no more crypto on every keystroke).
  • Heading hierarchy fixed in About and Derived Addresses (h1 β†’ h2 instead of h1 β†’ h3/h4).
  • Various copy fixes (em-dash purge, clearer mobile placeholders, demo-button styling).

Release signing key rotation

The GPG key that has signed every release from 2.0.0 through 2.2.0 (4A3762B5 01BA3B89 48CA0FD0 39EED3B0 80D10556) is being retired. Backup access was lost in a system migration. No further releases will be signed with the old key.

The new release signing key is published in this repo at RELEASE-SIGNING-KEY.asc, and also at keys.openpgp.org:

EB3D 738B EC6A 873A C274  5292 CF4F E215 EA66 63AC

How to verify this release

curl -sL https://github.com/BitcoinQnA/seedtool/raw/main/RELEASE-SIGNING-KEY.asc | gpg --import
curl -LO https://github.com/BitcoinQnA/seedtool/releases/download/2.3.0/signature.txt
gpg --verify signature.txt

You should see Good signature from "QnA <qna@bitcoiner.guide>" with the fingerprint above.

The signed sha256 of the index.html asset is embedded below.


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

sha256sum index.html eaac7484c1d579d0ffc70fb2e71e01e39a972aba940294b86e2a5187305573e9
-----BEGIN PGP SIGNATURE-----

iJEEARYKADkWIQTrPXOL7GqHOsJ0UpLPT+IV6mZjrAUCagx8TRsUgAAAAAAEAA5t
YW51MiwyLjUrMS4xMiwwLDMACgkQz0/iFepmY6yz4gEA0zAEnrLL3u7wrWDTycGE
oNthR0fRUJU774VHL7i0FKIBAJ/vj/6QgYItZYJ/H2fsuOYunt7nOSeHU9xu0myU
cbkF
=/woj
-----END PGP SIGNATURE-----

2.2.0

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 17 Feb 08:35
6e7ad52

What's Changed

New Contributors

Full Changelog: 2.1.0...2.2.0

Hash: SHA512

sha256sum index.html 1b5cc16cfddc6afd4b49ba9d44eba91b12ac5b134a446edd7b64c8c79202664a
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEESjditQG6O4lIyg/QOe7TsIDRBVYFAmey9MEACgkQOe7TsIDR
BVa+mwv+MV6Mzybf2odvAKmTOfjUNn9gUc3WJKeRM+CkcvMPAFpsPp0/jn9mX6a6
n6r8KSyJDJCRbw+AGKrbJkDZyizqNYAd1AhSnATMKnHlA01BNtejXvvXME6pzRHU
np4RuTOPEOvo5k0KB8UAyn+JjaY0lSQrVRRPt/1LGjP0vspAk4OlToQ1d0pqen1D
UA3sJDPGMDxukvlN6q+263/RPNWaf3BNatmLclrJqqp/NntZRKEY1tcHFvmK7qQ7
XljZhx0bwMYAxi7l8NJfXOk+ItoF+oFgoxFADSGvP3xQARcmaY+BXiI8hOd5aPXC
thg+6LVhl/4eGo6OA2Sq06JRwFpfr93zNwqfUzwvmyQNsfHav+kB8BCO4MngXL65
/h1ZR1GRq77kiW9zHfI71XqiPHKYcxJKuvn7NM/hsqqUzP3U6g019ZJfOh/dCijk
1/BkOHzsl5H7SGcfRjaEJuJ/Dmce84mJZY5phelnRjBVEn3izglI/9P2nWABbxoQ
/eXOc9L8
=a+vA
-----END PGP SIGNATURE-----

2.1.0

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 05 Jun 09:54

Update styling and bug fixes

Hash: SHA512

sha256sum index.html 6673007db46a804ccc0ac019237527e7705f054930e0643a9efbfe0e3cdfc2a3
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEESjditQG6O4lIyg/QOe7TsIDRBVYFAmR9r2UACgkQOe7TsIDR
BVb7rQwA28EGXeQhc496poqVv0J6r5axLTNP0VXSixMr3TcUcQpkvLCnR6lc+k2R
L5ybfQv/pJAFWuCTANbwZdr+lrzthe5GZl7xKHVPSVBzItG1um4N6/MTH4jpDxK6
q6/9WHSONz4/XZkmKZ8xY9EiJlDTgN5upCLxlqSUYqOMvbV6EPfgycVpb/HHb7sn
oI1331KenfoQe624HG986NASHgP4wMc/hUCGKLUq9AwuCDeLcEqoiOD1e4jsyWuK
ttQIQfS/rVs20Kvv+ywgYZn7QrxWvhtHJ1yq5qxyfkqSDIkIIcXREvfj0+jFNwvC
U5/zkWOSQKrTyFQ9K4un05JOY/1NFThUw1RXGvY6n+H/cMcK1mvMfZBpMU0PmB0U
DIwM3OkO1M1WH3xASi+HTT1m2RE5urXi6JqU3kUXTIXpch8Uy+iS/6IgJIWuhZ0D
EN/POgtAQMRfv7BoKZTUyzgIHRy2RsgY/PBJzVXRupv4AexrOpy3rHGWZMgUMx2s
MGpNMIy7
=jvqM
-----END PGP SIGNATURE-----

2.0.2

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 17 Feb 13:08

ADD: SeedQR Support

Requested in #45.

seedqr

FIX: Make Single Address Tool Testnet compatible

Requested in #48


Hash: SHA512

sha256sum index.html 
a2ceefae61dd2cb314703c80c6c7464c5417ac357ac33d4da4b91990c5fd77bf
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEESjditQG6O4lIyg/QOe7TsIDRBVYFAmPvehoACgkQOe7TsIDR
BVZ5Rwv+OksvisEZH4Rrm/4rMuzHsAz5adjQPfN+qCV5Y5dMg5J+QZGOMKe4iEp7
uXWzdKI/s/eli36B1OBuIlihjM7brZTSDxHPc6g+TYsliq9SiElXFp9n6P0lQVZD
S6kTkJAJlRdZ3OPupClVXOgK0riCFWNF0gC+8fLJ/V7eViIwZoKeBxwfWfJAwK9i
EWJv628N1j1Qm5tvRo0Cr4A2qzz0lJa/gHrZbf9+3wx/zTkgUpg7jL2OrZkTSVtc
ZHT2wm8doPd1r4Qbwo9WSpUs97LaZ0hiVTgwXnIERhrmNa7h3Mn/c3YL9XZ0YZO3
Dsh3jwqIhlWyJORa3cNgJMJbn6L0+V4ejJhZpVZfo7S9E6AOSg/Dx5xIw3hbvssj
SBcOH0zBnFD2BmMdLtoBVhZ3n9HYMyZ2d6TioSNXiYTPXatWjH6mAHWH9AqZZcIC
kDz3f0pyhTmYbTKQP4c5ShVm+vMSp6+quTCaMXC7jV/eKJYsBexBANa/B01M6Myp
JRWbsE2f
=gNBa
-----END PGP SIGNATURE-----

2.0.1

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 03 Aug 08:15

ADD: Version number and Testnet BIP47 Derivation

Tool version number now displayed at the top of the page. Requested in #40.

version1

BIP47 derivation now includes Testnet and Regtest. Requested in #39

bip47

FIX: Public key text clarification. Merges #41.

Public key label prepended with the text "compressed" to clarify that prefix 02 or 03 is displayed followed by one 256-bit number and distinguish from uncompressed public key format that is typically presented with the prefix 04 followed by two 256-bit numbers.


Hash: SHA512

sha256sum index.html 
b8c5e8023d936a919ccf6ce6acc333bb7489958b4bb2c57633d442e29e12c8fe
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEESjditQG6O4lIyg/QOe7TsIDRBVYFAmLqLAAACgkQOe7TsIDR
BVaOfQv/RuMb/28fel4nS1WpGk4dnW4ixAg4l3nWYlhGRh2oYKltwsigw2xg6Vrd
VSwKi1Q6VG+ug1BYBzlMn6hFIpRuMZT2jUDdAgnx4QKqhT5uCUn96oy/FW7UHNoI
Ue1vbPtmJL+x6hvH3n+1CpjKmpKH4PpKYJzujQN9DPLSFp7MFHTqhhMFOD0iLZzp
bdAronpGWF4SsrVf/RUjnq1uXFjUkHgBwAD9r3iP3jkiiGPGnKeytzZK8LJcItp3
FpYoy3HTYX/n7QXngJ9fkI3RfsMuG284ZoPhIKBA6CAgos6H0Jtr3KY/2gz2rFpe
nQsg5LQsuSA0N+ZrSqHqdWZM912NHSQrBKGOj5a++li0+TFYQTwPubH9QZZjbv92
0mJaYiLLrqNgFJiZtkTeHA0KlgkJtWlcTXRMQ+2rPwvMHU5BV/C3UxarFye/sRW3
LZlqP6hbxTe3H7pN36b2BzW1zD1J25f1VRQRaFFN35Ghwm7UzYzyIjl7VdIozOkN
j7m3xEX0
=qWXV
-----END PGP SIGNATURE-----

2.0.0

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 25 Jul 12:41

ADD: Predictive Seed Word Input, Single Address Tool and BIP48 Multisig Address Derivation

Predictive Seed Word Input

Alongside auto generate and entropy inputting, users can now enter seed words with predictive text input.

2 0 0

Single Address Tool

Fills request made in #36

Users can use this tool to enter private keys in WIF (Wallet Import Format) or Hex format to view the corresponding Public Key (in Hex format) and addresses in Legacy, Wrapped Segwit and Native Segwit derivations.

2 0 0-1

BIP48 Multisig Address Derivation

Use this tool to sense check the address derivation of any multisig coordinator software. Simply enter the extended public keys of each cosigner in the quorum (you can also use the extended key of a seed already loaded into the tool) and select the number of keys required to sign a transaction (signing threshold). Be sure to add each new public key onto a new line.

2 0 0-2

Hash: SHA512

sha256sum index.html 
ccb6e7b579c037cc422c5b0dc6908b34c088202c109a424ce6df5b884de50144
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEESjditQG6O4lIyg/QOe7TsIDRBVYFAmLeiqgACgkQOe7TsIDR
BVaFAgwAvhU4LhgIdYIn5iff1XSExcHeVHbzgNgAyPqRMcFRrw3tQVCZQMXe0MNi
rM3HQeDnGHlglUc0zEMrAdeLjN17AOwvP0BvN/4iNzmUFLo1EKsNALcYbKhdHqYb
E9epIgwmjF9dQQj42Pk3SdDkXs5KLHMVp+JcbiFkVGXwaZtsDHilC6K9aesosW59
V/Ki18B0hL6Aje/jtK9XdxmSuf55aWZN4E9cansEDVkMBhZy6NrQRmyqzu264Nv8
5crLswHm0c0XILeG3cr0l9PVwcSqMWkVK1SSf8NSdJFjJwDMO7St4+Ik716a/mSB
Wy1BiVBVnRhkJcDupD9aCbsBKPVh5ECrrCV2Nh040yts+MwJa8ru/XEQMaaiDkos
3B519lOT0g415lZPDKoy1ZGrjjH849SuAshcSTS8oN96HL2x7rSvlI02m33giaVO
d28o18fWPNd3P2T/vGe4tviZsf+R6p4/eLxSJmIDwnQCbZ7Nv5utmzV3j0eTxBiz
PPyrYwfv
=2PZS
-----END PGP SIGNATURE-----

1.0.7

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 31 May 13:30

Add BIP86 Taproot Address Generation

This release adds support for BIP86 Single Key P2TR address generation.

Hash: SHA512

sha256sum index.html
db5ff0fb2c26135d4d0078e1568d9cc023e24be5c7d0585031d67cd5ed10108a
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEESjditQG6O4lIyg/QOe7TsIDRBVYFAmKWFwMACgkQOe7TsIDR
BVZI8Qv+L7aI48k8c4P3cojQVb6FLQnLbqeiTGTVCa7DXFyUKPAByCMaMqb81oUR
BvS23GaY4OaSvmvt5FT1MxBFaMkyxjhtDTqtc1GLLTRwpTIJCu5fhlrTdWGRMTIL
h2CUwPLqAj+WQOLZaHQrUSsPC685+2zIVWxt939SVdS89roiqZjauybqEDBwj1WE
oKdCjQSQodJAwCXcP+jyaeN6VsSwM0u6V+QdEfk/+OVRtHaIVlhlRbtq+K0pmQOr
Kyq1gA7PhqV04LgB6iCAJmdscenWRtU5xXW3Ktw+yWp30S3sdkdK5oMHppMBYeXA
SyukXNuVzQ50eh/fMNslFQ0AcRvBeS0BJJ2SC0GMSAbav2j9GbVOtXUSRprZeI0E
dMJlQypbHE2mx8Q1QreoF345Nwv3QDyNyurXjRtO701m1gakLYQUJ6p3M16K+g4H
zIBvVS1BrYjGmW/Sjvf2787E6iUTHj4gy3jVHuj9WotOPjMIqjmPSw7sGmL10Lzk
H0Oylb4S
=qmi0
-----END PGP SIGNATURE-----

1.0.6

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 24 May 10:08

Add Raw Entropy Input Method

This release adds support for Raw Entropy input to enable advanced users the opportunity to map their raw entropy generation (such as coin flips) directly to BIP39 seed words.

See this in practice here.

Hash: SHA512

sha256sum index.html
f04b2c661c2e025abca996dbb9905d4ad9374064f104a581e757cc47c7abf9fb
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEESjditQG6O4lIyg/QOe7TsIDRBVYFAmKMrfoACgkQOe7TsIDR
BVZ6FgwAi2U2EEF3YgOjrkD71PaBN0y17pWvnsz+2EG3qk/RihB5rE5A7durVd7S
dhSvkOK84ySMkOwiV9zjw5TqoqhxFzl707+A4j1VR65RxdBH5BUaYsxp/I/88w9I
rzLTME6JW/hsuOoZgkMd2j9PeCTFcdNAQFn4DKHKhwxKVsfst0ff4ojjCCAPebAV
AAsBcEAexK4JDfTJiUilGcPlDxy9UNR3DQi4/P7ibamQ7CHo+/VnSHUYv/xXWtSU
ayUXGf6pSn2l/4a1C2QTijejVYO/vgLP/uc1duSK7LzurqaZr4p6zGdtGs5lCwK3
ModivcmETBQmxbwi9e52b7ic9RlL0/nWDfKF1p/8cCC64nR5eTGfRJIPIliKBqVx
i6zRqi2C85oK1q3LyS/PBPzTIRr4ytRQxAKeFDo7lDMEGz/4twV1cuWB8WPiF3Ey
A1/LA5AH7gEIwE+DxwFM9c+a5SQJotZla+We1ddFs6Ug/cI++3ygq7iGZFM2HqPm
nGzaG8fl
=mL5A
-----END PGP SIGNATURE-----

1.0.5

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 17 May 09:02

Add Last Word Generator

Selecting 'Last Word Generator' from the BIP39 tool list will allow you to pick seed words from a hat and then manage the remaining bits to generate the checksum word.

Hash: SHA512

sha256sum index.html 
ee2ca4776fea131e7bbc3df2e5a9db5a23e1da893ed7e5adebf3fcf7d299c76d
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEESjditQG6O4lIyg/QOe7TsIDRBVYFAmKDYkMACgkQOe7TsIDR
BVYB8wwAtpice71oY6+IJLVssplu+6geoF+gQm8ytp2aBmKVmJZfAAqBrNNeX8VM
TIQW5Vm4ih12zPRmqs8wQgphiYtHP4Zbn3fuV1SEQBJIwK27/4luYffj2Zf4aUDt
JJlNabzBYdLyPGbbXLgVLlaffHlnpASSHinaaGhfgUcAjf3hGwq4JKmvpuOh4zIJ
S1C7EoH/18RdUCBZPuSSgvuNkRmTmiq/VeLxJoJykCWysYBq55GwT2ET2Pn10ZpL
jEfTkq4723xKxTCSSP5wJgOytZu0c3tVYZiCSExf7r3RvK87kDHeiJ5twfJ42bV2
H6pT11XR7cTgYj6vsNbjO+OPmJIFIXbh0JWhKvmJXTmYkgPEjr+YI4bnVavc/ypk
Eyd7A4pSGpyeSvGN8Tisv/YrtT7nZZt6ke6XhkpVz87WCnTvpO9TMKAYvbjOe7RU
yRNjbmTHe//CMF11ALfswnJhejvJ9PrDBiaTw2k/uI+luLMw2FsDGA92d7RcF3FL
Acq0sX2Y
=O5XJ
-----END PGP SIGNATURE-----

1.0.4

Choose a tag to compare

@BitcoinQnA BitcoinQnA released this 04 May 14:14

Add Seed XOR and One Time Pad (OTP) Encryption

Hash: SHA512

sha256sum index.html 
8a5b59be1be9ea85302ff1520f82c219b362a7b91769ef28e38a315b037f8845
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEESjditQG6O4lIyg/QOe7TsIDRBVYFAmJyiSkACgkQOe7TsIDR
BVbJpwwAgKZtAH8VJn9+s+TGWjowFHAAGmMniCqtWbGYpQikWJvOXKTjpte9u0m4
432ZFRfW00QqwXrjqHKe/stUrkpbxsAES1Qy+p9JHbRofpXyqLqi5In0HJPV57Yh
2fpSY3FU3ExpXX1N1nAtWjo9IwvzmaaGMKlA4yZRccfJDKYx3mOqiJL3ZyBXCjOt
zZgiAlEYWI9V+s/wxfz53qkpXe3IlFaANrbi7d+jdLkYCJ5fl6yIoG78T6CuLkSA
6GAgNs8lLA037E6eDk6E9JMIqIGeOd5iz21Gwds63zWFJA0Rc3yBguUTgEE8Tye4
c6Wfbdo5uQgdzgThOkE35+oe/RydfpaQ4jA04j9eDaxQ20YJdTaY4AHEmg+PUbDw
7NFqJgag1q826U0MzNNMF6Y7H8cRSNQAuQAsDkXV4vU4DSHpeFP3dk7lJ6cPMtQS
CqjwAThBaYd/vgLHHp0Ziydfu63gQlO0MZfm6+xtw7Ylnh9S0XdUo1gh/AZPrSTf
ry9a0pMP
=MWSS
-----END PGP SIGNATURE-----