Are ethereum addresses actually case sensitive? I noticed that both lower case and upper case version of eth address works quite well, does it really matter?
As far as I know, Ethereum addresses are case insensitive, which means that you can use both lowercase and uppercase versions of the address to send transactions. I am getting the best essays to submit my thesis task on time. This is true for all of the addresses on the Ethereum blockchain, whether they’re ERC-20 tokens or not. Ethereum addresses are case sensitive and the lowercase version is not always used. The reason for this is that Ethereum uses Unicode characters and some of them can be in either upper or lower case.
No, they are not case-sensitive. Ethereum addresses are displayed in HEX, ( hexadecimal, 0-9 & A-F ). Capital “A” would essentially mean the same as lower case “a”. The capitalization is meant for the purpose of optional checksum. The Checksum mechanism is encoded in the address variation that consists capitalization. It is impossible to check the validity of a particular address if it only contains letters in lowercase. However, either variation will work fine as an address. As a matter of fact, you could even randomly capitalize or lower-case the letters and it will still work just fine! ( But don’t capitalize the prefix “0x”)
In case you are interested, this is how the checksum works:
- Start with the lowercase address and the prefix 0x is removed.
- sha3 hash the string of letters
- change the capitalization of the address letter corresponding to the nth letter of the hash following the rule below
0/1/2/3/4/5/6/7 → Lowercase
8/9/a/b/c/d/e/f → Uppercase
Basically, you sha3 hash your original address with 0x removed, and examine each Nth character of the sha3 hash result. If the Nth character is from 0-7, the corresponding Nth character in your address is in lowercase. On the other hand, if the Nth character is from 8-9 or a-f, the corresponding Nth character in your address is in uppercase.
Here’s the link to the code and implementation.