This project demonstrates the implementation of SLIP-39 (Shamir's Secret Sharing for Mnemonic Codes) in JavaScript, along with address generation for Ethereum and Solana blockchains.
Pages Hosted Demo: https://tomfuertes.github.io/tails-offline-keygen/
If you're using tails and want a lot of open source tools on a usb you can also:
# Download offline files to USB
# Requires wget installed
curl -s https://raw.githubusercontent.com/tomfuertes/tails-offline-keygen/main/wget-files.sh | bash
- Generate mnemonics from dice rolls or use existing mnemonics
- Create SLIP-39 shares from mnemonics
- Generate Ethereum and Solana addresses from mnemonics
- Display QR codes for generated addresses
- Offline and online modes
To install the project dependencies, run:
npm install
This project includes two main modes of operation:
- Online mode (browser-based):
index.html
andindex.js
- Offline mode (Node.js):
offline.js
To run the online mode:
-
Build the project:
npm run build
-
Open the
dist/index.html
file in a web browser. -
Use the interface to enter dice rolls or a mnemonic, and generate addresses and SLIP-39 shares.
To run the offline mode:
node offline.js
You can also use the --guess
flag to generate random dice rolls for debugging:
node offline.js --guess
index.html
: Main HTML file for the online interfaceindex.js
: Main JavaScript file for the online interfaceoffline.js
: Offline mode scriptwebpack.config.js
: Webpack configuration for building the online modepackage.json
: Project dependencies and scripts.eslintrc.js
: ESLint configuration.prettierrc
: Prettier configuration
This project is released under the Unlicense. See the LICENSE
file for details.