-
Notifications
You must be signed in to change notification settings - Fork 62
MaxCoin Addresses
Addresses within MaxCoin are almost identical to those in Bitcoin. A MaxCoin address is a base58-encoded hash of a public key and a network identifier, or version. The address also contains a checksum in the final 4 bytes. The encoding can be outlined as follows:
version = 110
hash = RIPEMD160(SHA256(public_key))
versioned_hash = concatenate(version, hash)
checksum = substr(SHA3(versioned_hash), 0, 4)
address = BASE58(concatenate(versioned_hash, checksum))
This is essentially the same as with Bitcoin except using a single round of Keccak instead of a double round of SHA256 when calculating the checksum.
To create the Wallet Import Format (WIF) private key for a MaxCoin address, a similar method is employed:
version = 128 // 0x80
versioned_key = concatenate(version, private_key)
hash = SHA3(versioned_key)
checksum = substr(versioned_key, 0, 4)
wif = BASE58(concatenate(versioned_key, checksum))
Examples of how to generate MaxCoin addresses in a variety of languages can be found here.
MaxCoin addresses always begin with an 'm', encoded by a bye with a decimal value of 110. MaxCoin private keys always begin with a byte with a decimal value of 128.