seed-poem-tool

tool to build valid BIP-39 seed poems

MIT License

Stars
23

seed-poem-tool

This is a frontend tool to help you craft valid seed poems.

A seed poem is a small 12 to 24 word poem that is also a valid BIP-39 mnemonic seed phrase, and therefore provides the reader full access to a cryptocurrency wallet.

Each word in the poem must be present in the fixed list of 2048 words, and the final word must be a checksum of the entropy of all preceding words.

Note: This is an experiment in constrained poetry, and not a secure method to store private keys.

live demo

You can see a live version of the app here:

https://seed-poem-tool.netlify.app/

default poem

The default poem for the app is a 12-word haiku that is also a valid seed phrase:

caught under bamboo breeze
gentle summer melody
another moment someone will remember

This encodes to the Tezos wallet tz1Poffo6xjvjBnPUrdUxWvJ76rhN6W39ZZf which was used temporarily to store [tap]—a visual poem, cryptographic puzzle, and non-fungible token. You can read more about it in this thread.

dev

To develop the site:

npm i
npm run dev

build

To build the site:

npm run build

Note the wallet.js has to be pre-build using esbuild due to a Vite bug with readable-stream. You can do this with the following:

npm run bundle-util

If you run into an error with "path" module you may need to make sure that node_modules/libsodium-sumo/package.json includes the following section before bundling this utility:

  "browser": {
    "fs": false,
    "path": "path-browserify"
  }

(Yes, it's clunky...)

License

The code here is MIT, see LICENSE.md. Some third-party dependencies and fonts have been included under the src/ folder that may carry different licenses.