The bitcoin address
1Wh4bh looks so short. Is it even a valid address?
If yes, can we send bitcoins to it?
As to elaborate on why this is accepted at all at blockchain.info, 1Wh4bh is:
>>> import base58 >>> bytes.hex(base58.b58decode('1Wh4bh')) '001406e058'
Following https://en.bitcoin.it/wiki/Protocol_documentation#Addresses, it only contains the preface of a bitcoin address ('0x00'), and the checksum: '1406e958'. In fact, the double SHA256 of 0x00 (as the hash160 of the public key is not indicated) is:
The first 4 bytes coincide, so the checksum is right.
Because of this, the bitcoin address could be well formed... in a sense.... I suppose this is the reason why blockchain doesn't reject it.
But in fact, as no public key is indicated at all because no public key would produce a hash160 equal to the null string, it cannot be used for any purpose.
Note, also, that a null (or less than 160 bits) hashed public key is incorrect even in the case of (all) leading zeros, because Base58Check algorithm used by bitcoin preserves all leading zeroes.
No, it is not valid as explained here:
A Bitcoin address, or simply address, is an identifier of 26-35 alphanumeric characters, beginning with the number 1 or 3, that represents a possible destination for a bitcoin payment. Addresses can be generated at no cost by any user of Bitcoin. For example, using Bitcoin Core, one can click "New Address" and be assigned an address. It is also possible to get a Bitcoin address using an account at an exchange or online wallet service.
There are different levels of correctness here.
A bitcoin address uses a simple checksum, whose purpose is just to detect accidental mistyping of an address in the hopes of preventing transactions going wrong due to simple typos. Credit card numbers also use a simple checksum for the same purpose, though in the case of bitcoin it's a 32-bit portion of a SHA256 so much less likely to match by chance, but not cryptographically so - it is after all only for detecting mistyping.
The checksum is easy and fast to calculate so a form on a page can do a quick check to validate the number without having to do any heavy processing or contact any third parties.
In this case, the address passes the checksum test but results in an address that is too short. A form on a page should not accept this as a valid bitcoin address even though the checksum is valid, because it should fail a length test. In fact, as stated in another answer this is a "null" (one zero byte) bitcoin address with a checksum.
Even if a bitcoin address passes the checksum and length test would still not indicate that using it would be successful. For example, padding this address out and re-checksumming it would still not be usable.