项目作者: diegogurpegui

项目描述 :
Mnemonic phrase (Bitcoin BIP39) language with emojis. Also a converter tool.
高级语言: JavaScript
项目地址: git://github.com/diegogurpegui/mnemojic-phrase.git
创建时间: 2020-08-09T01:54:41Z
项目社区:https://github.com/diegogurpegui/mnemojic-phrase

开源协议:MIT License

下载


Mnemojic-phrase

The mnemonic languange that nobody asked for: emojis

And the tool that nobody asked for: the mnemomnic phrase lang converter.

Based on the BIP 39 spec.

The wordlist can be found here:

https://github.com/diegogurpegui/mnemojic-phrase/blob/master/utils/emoji.txt

Converter

The converter is just an automated tool that replaces each word in the phrase with the equivalent word
for the same index/position in the destination language (eg. emoji).

Web interface

You have a web tool available here:

https://diegogurpegui.com/mnemojic-phrase

The files for that web version are automatically served from the “web” directory in this repo. Still, it uses third-party library so you should be VERY carefull when using it.

The website should be able to run 100% offline.

CLI interface

There is also a cli tool un Node.js that you can use by running:

  1. $ node cli convert [options] <mnemonicPhrase>

Options:

  • --sourcelang <sourceLang>

    Source language
  • --destlang <destLang>

    Destination language
  • -h, --help

    Display help for command

The <mnemonicPhrase> is just the mnemonicPhrase.

Emojis selection and word list

I selected a group of 64 emojis that are combined with another group of 32 emojis to form 2048 two-emojis words.

The reason for this is that I wanted emojis that can occupy only one character, which leaves us with less than 2048 emojis (the required amount to have a BIP39 word list).

Since we cannot get to the 2048 emojis I decided to use two-emoji words. I selected 64 emojis from the “smiley faces” group and 32 emojis from the “hands and body” group. This was done arbitrarily based on emojis that are widely supported, look distinctively enough and take 4 bytes.

With that in mind, the 2048 words are formed like this:

<firstEmoji><secondEmoji>

Being the first emoji one from the list of 64, and the second emoji one from the list of 32. The final list is a combination generated by picking them in sequential order.

Final wordlist:
https://github.com/diegogurpegui/mnemojic-phrase/blob/master/utils/emoji.txt

This mechanism and the fact that there are two groups of emojis allows the final mnemonic phrase to do without the spaces between words.