Skip to content

Instantly share code, notes, and snippets.

@bartekn
Created April 1, 2017 19:14
Show Gist options
  • Save bartekn/c877987b722ec792912d720921a7418c to your computer and use it in GitHub Desktop.
Save bartekn/c877987b722ec792912d720921a7418c to your computer and use it in GitHub Desktop.

Emoji code for generating deterministic keys

April 01, 2017

This document describes the implementation of emoji code for generating deterministic keys.

Motivation

BIP39 provides a great mechanism to constuct a mnemonic code for generating deterministic keys. The problem is that remembering 12 or more words can be hard.

There is a better way to achieve the same effect: Emoji! ๐Ÿ•

Generating the mnemonic

Generating the mnemonic is very similar to BIP39 however the method described in this doc is using 256 selected emoji (instead of 2048 words). 256 icons can be represented as 16x16 grid.

Step by step instructions can be found below:

  1. Generate entropy bits.
  2. Create a checksum by taking the first byte of its SHA256 hash.
  3. Append a checksum to the end of the initial entropy.
  4. Split concatenated bits into groups of 8 bytes (2^8 = 256).
  5. Each group encodes a single emoji.

Example

End Byte Emoji Word
8 162 ๐Ÿ• pizza
16 12 ๐Ÿ›€ bath
24 159 ๐Ÿท pig
32 252 โŒ x
40 170 ๐Ÿ“ป radio
48 102 ๐Ÿ”ซ gun
56 59 ๐ŸŒ€ cyclone
64 22 ๐Ÿ“– book
72 11 ๐Ÿ€ basketball
80 160 ๐Ÿ’Š pill
88 233 ๐Ÿ† trophy
96 148 ๐Ÿ‘ƒ nose
104 229 ๐Ÿ‘… tongue
112 254 0๏ธโƒฃ zero
120 76 โœ‰๏ธ envelope
128 54 ๐Ÿฎ cow
136 45 โ›ช church
144 189 ๐Ÿ’บ seat
152 100 ๐Ÿ‡ grapes
160 1 ๐Ÿ‘ฝ alien
168 52 ๐Ÿ‘ฎ cop (checksum)

Example in emoji:

๐Ÿ• ๐Ÿ›€ ๐Ÿท โŒ ๐Ÿ“ป ๐Ÿ”ซ ๐ŸŒ€ ๐Ÿ“– ๐Ÿ€ ๐Ÿ’Š ๐Ÿ† ๐Ÿ‘ƒ ๐Ÿ‘… 0๏ธโƒฃ โœ‰๏ธ ๐Ÿฎ โ›ช ๐Ÿ’บ ๐Ÿ‡ ๐Ÿ‘ฝ ๐Ÿ‘ฎ

Emoji list

Byte Emoji Text
0 โœˆ๏ธ airplane
1 ๐Ÿ‘ฝ alien
2 ๐Ÿš‘ ambulance
3 โš“ anchor
4 ๐Ÿ‘ผ angel
5 ๐Ÿœ ant
6 ๐ŸŽ apple
7 ๐Ÿ‘ถ baby
8 ๐ŸŽˆ balloon
9 ๐ŸŒ banana
10 โšพ baseball
11 ๐Ÿ€ basketball
12 ๐Ÿ›€ bath
13 ๐Ÿ”‹ battery
14 ๐Ÿป bear
15 ๐Ÿบ beer
16 ๐Ÿชฒ beetle
17 ๐Ÿ”” bell
18 ๐Ÿšฒ bike
19 ๐ŸŽ‚ birthday
20 โ›ต boat
21 ๐Ÿ’ฃ bomb
22 ๐Ÿ“– book
23 ๐Ÿ‘ข boot
24 ๐Ÿ’ bouquet
25 ๐Ÿ™‡ bow
26 ๐ŸŽณ bowling
27 :bowtie: bowtie
28 ๐Ÿž bread
29 ๐Ÿ’ผ briefcase
30 ๐Ÿ› bug
31 ๐Ÿ’ก bulb
32 ๐ŸšŒ bus
33 ๐ŸŒต cactus
34 ๐Ÿฐ cake
35 ๐Ÿ“† calendar
36 ๐Ÿซ camel
37 ๐Ÿ“ท camera
38 ๐Ÿฌ candy
39 ๐Ÿš— car
40 ๐Ÿฑ cat
41 ๐Ÿ’ฟ cd
42 ๐Ÿ’น chart
43 ๐Ÿ’ cherries
44 ๐ŸŒฐ chestnut
45 โ›ช church
46 ๐ŸŽฌ clapper
47 โ˜๏ธ cloud
48 ๐Ÿธ cocktail
49 โ˜• coffee
50 ๐Ÿšง construction
51 ๐Ÿช cookie
52 ๐Ÿ‘ฎ cop
53 ๐ŸŒฝ corn
54 ๐Ÿฎ cow
55 ๐ŸŠ crocodile
56 ๐Ÿ‘‘ crown
57 ๐Ÿ’˜ cupid
58 ๐Ÿ› curry
59 ๐ŸŒ€ cyclone
60 ๐Ÿ’ƒ dancer
61 ๐ŸŽฏ dart
62 ๐Ÿถ dog
63 ๐ŸŽŽ dolls
64 ๐Ÿฌ dolphin
65 ๐Ÿšช door
66 ๐Ÿฉ doughnut
67 ๐Ÿ‰ dragon
68 ๐Ÿ‘— dress
69 ๐Ÿ’ง droplet
70 ๐Ÿ‘‚ ear
71 ๐Ÿฅš egg
72 ๐Ÿ† eggplant
73 8๏ธโƒฃ eight
74 ๐Ÿ˜ elephant
75 ๐Ÿ“ง email
76 โœ‰๏ธ envelope
77 โ— exclamation
78 ๐Ÿ‘“ eyeglasses
79 ๐Ÿ‘€ eyes
80 ๐Ÿญ factory
81 ๐Ÿพ feet
82 ๐Ÿ”ฅ fire
83 ๐ŸŽ† fireworks
84 ๐ŸŸ fish
85 5๏ธโƒฃ five
86 ๐ŸŽ flags
87 ๐Ÿ”ฆ flashlight
88 ๐Ÿˆ football
89 โ›ฒ fountain
90 4๏ธโƒฃ four
91 ๐ŸŸ fries
92 ๐Ÿธ frog
93 ๐Ÿ˜ฆ frowning
94 โ›ฝ fuelpump
95 ๐Ÿ’Ž gem
96 ๐Ÿ‘ป ghost
97 ๐ŸŽ gift
98 ๐Ÿ goat
99 โ›ณ golf
100 ๐Ÿ‡ grapes
101 ๐ŸŽธ guitar
102 ๐Ÿ”ซ gun
103 ๐Ÿ’‡ haircut
104 ๐Ÿ” hamburger
105 ๐Ÿ”จ hammer
106 ๐Ÿน hamster
107 โœ‹ hand
108 ๐Ÿ‘œ handbag
109 ๐ŸŽง headphones
110 โค๏ธ heart
111 ๐Ÿš helicopter
112 ๐ŸŒฟ herb
113 ๐Ÿ honeybee
114 ๐Ÿด horse
115 ๐Ÿฅ hospital
116 ๐Ÿจ hotel
117 โŒ› hourglass
118 ๐Ÿ  house
119 ๐Ÿฆ icecream
120 โ‰๏ธ interrobang
121 ๐Ÿ‘– jeans
122 ๐Ÿ˜‚ joy
123 ๐Ÿ”‘ key
124 ๐Ÿ‘˜ kimono
125 ๐Ÿ’‹ kiss
126 ๐Ÿจ koala
127 ๐Ÿƒ leaves
128 ๐Ÿ‹ lemon
129 ๐Ÿ”— link
130 ๐Ÿ‘„ lips
131 ๐Ÿ’„ lipstick
132 ๐Ÿ”’ lock
133 ๐Ÿญ lollipop
134 ๐Ÿ“ซ mailbox
135 ๐Ÿ‘จ man
136 ๐Ÿˆ melon
137 ๐Ÿš‡ metro
138 ๐ŸŽค microphone
139 ๐Ÿ”ฌ microscope
140 ๐Ÿ’ monkey
141 ๐ŸŒ” moon
142 ๐Ÿญ mouse
143 ๐Ÿ’ช muscle
144 ๐Ÿ„ mushroom
145 ๐Ÿ‘” necktie
146 ๐Ÿ“ฐ newspaper
147 9๏ธโƒฃ nine
148 ๐Ÿ‘ƒ nose
149 ๐Ÿ““ notebook
150 ๐Ÿ™ octopus
151 1๏ธโƒฃ one
152 ๐Ÿ“Ž paperclip
153 ๐Ÿ…ฟ๏ธ parking
154 ๐Ÿ‘ peach
155 ๐Ÿ pear
156 ๐Ÿ“ pencil
157 ๐Ÿง penguin
158 โ˜Ž๏ธ phone
159 ๐Ÿท pig
160 ๐Ÿ’Š pill
161 ๐Ÿ pineapple
162 ๐Ÿ• pizza
163 ๐Ÿฉ poodle
164 ๐Ÿ’ฉ poop
165 ๐Ÿ“ฎ postbox
166 ๐Ÿ‘› purse
167 ๐Ÿ“Œ pushpin
168 โ“ question
169 ๐Ÿฐ rabbit
170 ๐Ÿ“ป radio
171 ๐ŸŒˆ rainbow
172 ๐Ÿœ ramen
173 ๐Ÿ€ rat
174 โ™ป๏ธ recycle
175 ๐ŸŽ€ ribbon
176 ๐Ÿ’ ring
177 ๐Ÿš€ rocket
178 ๐ŸŒน rose
179 ๐Ÿšฃ rowboat
180 ๐Ÿƒ runner
181 ๐Ÿƒ running
182 โ›ต sailboat
183 ๐Ÿ‘ก sandal
184 ๐ŸŽ… santa
185 ๐ŸŽท saxophone
186 ๐Ÿซ school
187 โœ‚๏ธ scissors
188 ๐Ÿ˜ฑ scream
189 ๐Ÿ’บ seat
190 7๏ธโƒฃ seven
191 ๐Ÿ‘ sheep
192 ๐Ÿš shell
193 ๐Ÿšข ship
194 ๐Ÿ‘• shirt
195 ๐Ÿ‘ž shoe
196 ๐Ÿšฟ shower
197 6๏ธโƒฃ six
198 ๐ŸŽฟ ski
199 ๐Ÿ’€ skull
200 ๐Ÿšฌ smoking
201 ๐ŸŒ snail
202 ๐Ÿ snake
203 ๐Ÿ‚ snowboarder
204 โ„๏ธ snowflake
205 โ›„ snowman
206 โšฝ soccer
207 ๐Ÿ”‰ sound
208 ๐Ÿ spaghetti
209 ๐Ÿšค speedboat
210 :squirrel: squirrel
211 โญ star
212 ๐Ÿ“ strawberry
213 ๐ŸŒป sunflower
214 ๐Ÿ˜Ž sunglasses
215 โ˜€๏ธ sunny
216 ๐ŸŒ… sunrise
217 ๐Ÿ„ surfer
218 ๐Ÿฃ sushi
219 ๐ŸŠ swimmer
220 ๐Ÿš• taxi
221 ๐Ÿต tea
222 ๐Ÿ”ญ telescope
223 ๐ŸŽพ tennis
224 โ›บ tent
225 3๏ธโƒฃ three
226 ๐Ÿฏ tiger
227 ๐Ÿšฝ toilet
228 ๐Ÿ… tomato
229 ๐Ÿ‘… tongue
230 ๐Ÿšœ tractor
231 ๐Ÿš‹ train
232 ๐ŸšŠ tram
233 ๐Ÿ† trophy
234 ๐Ÿšš truck
235 ๐ŸŽบ trumpet
236 ๐Ÿ‘• tshirt
237 ๐ŸŒท tulip
238 ๐Ÿข turtle
239 ๐Ÿ“บ tv
240 2๏ธโƒฃ two
241 โ˜” umbrella
242 ๐Ÿ‡บ๐Ÿ‡ธ us
243 ๐ŸŽป violin
244 ๐ŸŒ‹ volcano
245 โš ๏ธ warning
246 ๐Ÿ‰ watermelon
247 ๐Ÿณ whale
248 โ™ฟ wheelchair
249 ๐Ÿบ wolf
250 ๐Ÿ‘ฉ woman
251 ๐Ÿ”ง wrench
252 โŒ x
253 โšก zap
254 0๏ธโƒฃ zero
255 ๐Ÿ’ค zzz

From mnemonic to seed

Follow instructions in BIP39. Please use word associated with emoji from the table above instead of it's UTF-8 representation.

Notes

This document is highly inspired by BIP39 and was published on April Fools 2017.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment