Bitcoin address versions are described on the Address wiki page:

Normal addresses currently always start with 1, though this might change in a future version. Testnet addresses usually start with m or n.

The Protocol specification gives a bit more technical detail:

Version = 1 byte of 0 (zero); on the test network, this is 1 byte of 111

Aside from distinguishing real and testnet addresses, what is the meaning and purpose of the address version? How and why will it change in future?

1 Answer 1


Last time I heard of it, the future of version bytes was still unsettled. Currently, they are used to force incompatibilities between several base58-encoded data structures:

  • addresses / private keys
  • testnet / realnet
  • alternative-chains variants (namecoin etc…)

This way, you cannot misuse one for the other.

Someday, it might also be used as a real version number (the current SHA-256 + RIPEMD-160 + base58-encoding for keys could become obsolete).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.