Wallet Shape Address Human-friendly Visualization of Wallet Address : Momcode


Oh yeah, I forgot we’re using 2 lists pgp style for error redundancy, IMO a proper checksum is defiantly a better than 2x tables. and this application could work universally across crypto addresses most Hex or encoding of hex, we add then base58check >> hash140 and would instantly work for bitcoin.

This might be the safest way to transmit a wallet address over the phone today with 16 words +distinguishable +checksum!

Great idea, I looked up the subject there is 8% of men with color blindness!

I’ve just added a Dictionary that supports color-blindless, and it dosn’t look bad at all!
ex. random 0xbdd8fe2a864cfa165b1266649996e976dcc99483 >>

or square


here is how the entire new dictionary looks for people with Deuteranomaly (which is the most common type ~5% of total men has it)

https://momcode.io/lab/ >> list #225b


Glad you liked it, even more glad you immediately acted upon it! :slightly_smiling_face::clap::pray:

I think it would be super awesome if you focus on that in future. :blush:


Yes. I thought that ENS is a good solution to this general problem. After all, email addresses are readily recognizable.


@Cygnusfear @drhus @gluk64
I was working on something similar the other day:
It’s still a work in progress. Somebody proposed adding checksums: Bijective Mnemonic Phrases for addresses, hashes, etc
Maybe it can inspire something new.


Also relevant to this topic:


As a first step, I don’t understand why wallet addresses can’t at least start with the currency code: BTC1Co7WbQJzesUgLuQtr7bFWEUfnDFuBS2nm or ETH0xa5b7d615c99f011a22f16f5809890ca6911200a3, etc. so that new users to crypto have some easy way of making sure they’re sending the right currency to the right address.


Very well done @osolmaz this is useful for matching and comparing as well as for transmitting addresses over the phone, (btw have you considered the odd/even error detection scheme, similar to PGP word list cc @gluk64? this would be really useful!)

@Cygnusfear Emoji checksumming is :sunglasses: but as visual checksum only, and I can’t envision several use cases? possibly for etherscan like your chrome extension, however, I still prefer your color highlighting approach.

I’m working on an appealing Square/Circle visualization of momcode to test for identicons…

actually Prefix with separator " : " is supported by most wallets!
Ethereum:0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413 << this URL shall open with wallet directly if you’ve one installed that support prefix.

and some addresses format has explicit prefix structure like XRP addresses start with " r " as rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh, EOS start with " EOS " as EOS8RTr8MFSP37tUQCZspPCDpyphed9noU6zTKjqHh93U2DThjdVr and CashAdd of BTC start with " q " as qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a litecoin L etc


:man: :sunny::smile: :ab:
:tiger2: :mailbox: :m::camera:
:flight_departure: :balloon: :triangular_ruler: :previous_track_button:
:fountain::eye: :weary:

With 1024 emoji you can do something similar to the bijective mnemonic @osolmaz proposed (for example: https://github.com/keith-turner/ecoji), but with icons (so you can communicate the icons verbally). Emoji are supported by most chat applications so there’s native support for the visuals.

The 3 emoji checksum is not bi-directional. With a 1024 emoji list you can get a public key down to 15 characters and still allow decoding. Biggest issue here is similar emoji. Probably should implement a last character that allows the decoder to checksum the input.

address: '0x03236033522cdCBaC862afBeb56a951649082b78',
emoji: '☀️ 👨 ☀️ 😄 🆎 🐅 📫 Ⓜ️ 📷 🛫 🎈 📐 ⏮ ⛲️ 👁 😩',
text: 'sunny man sunny smile ab tiger2 mailbox m camera airplane_departure balloon triangular_ruler black_left_pointing_double_triangle_with_vertical_bar fountain eye weary'

Of course there is a relevant XKCD for this: https://www.xkcd.com/936/

Considering people traditionally remember narratives easily, “Plane taking off to the sun” etc. I’m imagining a lookup table of narratives.

Having background colors for each row is an option, but it’s not so elegant.

Interesting reference: