Address Shortener

What is is naming convention, a project and a website.

A (the naming convention) is a codename assigned to an Ethereum address. The codenames are not unique, but there are enough possible combinations to be useful in social media and chain analysis reports. The idea is to have a short, easy to remember, name that we can use in reports and discussion instead of a cryptic 0xabcdf000000... address. For instance, instead of listing the top 10 (the project), is taking the form of libraries (for now, only javascript) that will facilitate the integration of in websites and other tools (the website) is providing a simple method to convert an ethereum address to a, and a to its known addresses (remember, there could be several for a single address. A DB is used to record the known associations.

Why not use ENS?
The Ethereum Name Service is a fantastic project that provides unique and verifiable names to Ethereum addresses. ENS names are unique, which is great, but they are optional. Most ethereum addresses don't super have an associated ENS name so it cannot be used for chain analysis.

How are assigned? is based on the npm library @codenamize/codenamize, itself a port of the Python codenamize library. The output is deterministically based on the lowercase Ethereum address. A hash is generated and used to pick 2 adjectives and 1 noun from a predetermined list. To keep short, each word is 5 characters or less, so the resulting word is always less than 16 characters.

Number of adjectives: 325
Number of nouns: 742

Total number of combinations: 325 * 325 * 742 = 78,373,750 unique 0xna.mes

How about name-space collisions?
They are virtually guaranteed. There are over 50M known Ethereum addresses (that is, they sent or received Ether at least once) and ony 78M super 0xna.mes. Probabilities will tell us that most addresses will collide with another of the 50M addresses.

But, in the context of chain analysis and social media discussions, the odds are much smaller. If someone tracks 1000 addresses, the odds of a collision are less than 1%, which can be considered quite high. That's why are useful where the context can be restricted to less than 500 addresses.

To put things in perspective, it is common in the above context to use a subset of addresses with the first 6 or 7 characters. For instance "0xa0b1c3b..." which has greater odds of collision that a 0xname. 16^7 = 16,777,216

We shouldn't have to say it, but in case someone isn't paying attention: DO NOT USE 0xNAMES FOR TRANSACTIONS OR TO VERIFY IDENTITIES