We're big fans of codex32 at SeedHammer. Hand-computable, built in Shamir's secret splitting and fixes several shortcomings in BIP39 (Ctrl-F "trainwreck" in
Codex32: An Illustrated Secret Sharing Guide
).
The SeedHammer machine may be the first hardware to support codex32. Below is the engraving of 2 codex32 Shamir shares that combine to a master secret.
We also wrote a command line utility and library for manipulating codex32 shares and derive BIP85 data. See
Go Playground - The Go Programming Language
(press "Run" to see output) or use a terminal (you need Go installed):
Install the `biptool` command line tool:
$ go install seedhammer.com/cmd/biptool@latest
$ export PATH=$PATH:~/go/bin
Encode a secret with threshold 2. Usually a random key, but in our case a sentence:
$ echo "Codex32 is what we do"| biptool seed -seedlen 22 -id secr -threshold 2
ms12secrsgdhkgetcxvezq6tnypmksct5ypmk2grydu9qqd7chr26ruhsn
Encode share #1:
$ head -c 22 /dev/urandom | biptool seed -seedlen 22 -id secr -threshold 2 -idx a
ms12secras2eph54xt3tkzjhrnp8g8k2zpaq5rrgqzu2sfvvug3l4xxqqc
Derive share #2:
$ biptool interpolate -idx c
# Enter the secret share and share #1, finish with Ctrl-D
ms12secrsgdhkgetcxvezq6tnypmksct5ypmk2grydu9qqd7chr26ruhsn
ms12secras2eph54xt3tkzjhrnp8g8k2zpaq5rrgqzu2sfvvug3l4xxqqc
<Ctrl-D>
ms12secrca5vwy33zw9af9w5jupyvgra6c7ang0ywqugpzm6jm8hhlv035
Now you have two Shamir shares for your secret. Combine them to extract the secret:
$ biptool derive seed
# Enter share #1 and #2, finish with Ctrl-D
ms12secras2eph54xt3tkzjhrnp8g8k2zpaq5rrgqzu2sfvvug3l4xxqqc
ms12secrca5vwy33zw9af9w5jupyvgra6c7ang0ywqugpzm6jm8hhlv035
<Ctrl-D>
Codex32 is what we do
Don't have a terminal? Play along in the browser:
Go Playground - The Go Programming Language
. Edit the program, press "Run" and see output below the code box.
#SatHunterz